📄 mainpay.pas
字号:
unit mainpay;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ComCtrls, DBTables, Grids, DBGrids, ExtCtrls, StdCtrls,
Mask, DBCtrls;
type
TFrm_mainpay = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Panel1: TPanel;
btn_first: TButton;
btn_prev: TButton;
btn_next: TButton;
btn_last: TButton;
btn_addnew: TButton;
btn_edit: TButton;
btn_save: TButton;
btn_cancel: TButton;
dsmainvw: TDataSource;
Panel3: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
btn_delete: TButton;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
GroupBox4: TGroupBox;
DBGrid1: TDBGrid;
GroupBox5: TGroupBox;
Panel2: TPanel;
btn_brs: TButton;
btn_qry: TButton;
btn_clr: TButton;
btn_prt: TButton;
qmainvw: TQuery;
DBComboBox1: TDBComboBox;
Queryuse: TQuery;
dsmaintb: TDataSource;
qmainvwBDEDesigner: TStringField;
qmainvwBDEDesigner2: TStringField;
qmainvwBDEDesigner3: TStringField;
qmainvwBDEDesigner4: TStringField;
qmainvwBDEDesigner5: TIntegerField;
qmainvwBDEDesigner6: TCurrencyField;
qmainvwBDEDesigner7: TCurrencyField;
qmainvwBDEDesigner8: TCurrencyField;
qmainvwBDEDesigner9: TCurrencyField;
qmainvwBDEDesigner10: TCurrencyField;
qmainvwBDEDesigner11: TCurrencyField;
qmainvwBDEDesigner12: TStringField;
qmainvwBDEDesigner13: TStringField;
qmainvwBDEDesigner14: TStringField;
qmainvwBDEDesigner15: TDateTimeField;
qmainvwField: TFloatField;
cbbsc: TComboBox;
cbht: TComboBox;
GroupBox1: TGroupBox;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label13: TLabel;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
cbywy: TComboBox;
Label7: TLabel;
DBEdit7: TDBEdit;
tbmaintb: TQuery;
uptbmaintb: TUpdateSQL;
tbmaintbBDEDesigner2: TStringField;
tbmaintbBDEDesigner3: TFloatField;
tbmaintbBDEDesigner4: TFloatField;
tbmaintbBDEDesigner5: TFloatField;
tbmaintbBDEDesigner6: TStringField;
tbmaintbBDEDesigner7: TStringField;
tbmaintbBDEDesigner8: TStringField;
tbmaintbBDEDesigner9: TDateTimeField;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btn_firstClick(Sender: TObject);
procedure btn_lastClick(Sender: TObject);
procedure btn_addnewClick(Sender: TObject);
procedure btn_saveClick(Sender: TObject);
procedure btn_prevClick(Sender: TObject);
procedure btn_nextClick(Sender: TObject);
procedure btn_editClick(Sender: TObject);
procedure btn_cancelClick(Sender: TObject);
procedure btn_deleteClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btn_brsClick(Sender: TObject);
procedure btn_qryClick(Sender: TObject);
procedure btn_clrClick(Sender: TObject);
procedure qmainvwAfterOpen(DataSet: TDataSet);
procedure qmainvwCalcFields(DataSet: TDataSet);
procedure TabSheet2Enter(Sender: TObject);
procedure btn_prtClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
procedure LockEdit;
//定义函数,来改变各个输入框是否可以编辑,当用户再增加新记录
//或者编辑记录以前,不可以修改
procedure UnlockEdit;
//定义函数,用来让输入文本框可以编辑
procedure DisableBtn;
//定义过程,用来使某些按钮失效
procedure EnableBtn;
//定义过程,用来使某些按钮有效
function gettbgcjk():real;
//生成"特别工程价款"字段的值
public
{ Public declarations }
end;
var
Frm_mainpay: TFrm_mainpay;
implementation
uses data, rp_mainpay;
{$R *.dfm}
//***************释放空间********************
procedure TFrm_mainpay.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=cafree;
end;
//***************以下是自定义的按纽和编辑的可否应用部分*********************
//自定义过程,用来确定每个Edit空间是否可以编辑
procedure TFrm_mainpay.LockEdit;
begin
{ DBEdit1.ReadOnly :=true;
DBEdit2.ReadOnly :=true;
DBEdit3.ReadOnly :=true;
DBEdit4.ReadOnly :=true;
DBEdit5.ReadOnly :=true;
DBComboBox1.ReadOnly :=true;}
panel3.Enabled :=false;
GroupBox1.Enabled :=false;
end;
procedure TFrm_mainpay.UnlockEdit ;
begin
{ DBEdit1.ReadOnly :=false;
DBEdit2.ReadOnly :=false;
DBEdit3.ReadOnly :=false;
DBEdit4.ReadOnly :=false;
DBEdit5.ReadOnly :=false;
DBComboBox1.ReadOnly :=false;}
panel3.Enabled :=true;
GroupBox1.Enabled :=true;
end;
//自定义过程,用来确定每个按纽是否可用
procedure TFrm_mainpay.DisableBtn ;
begin
btn_first.Enabled :=false;
btn_prev.Enabled :=false;
btn_next.Enabled :=false;
btn_last.Enabled :=false;
btn_addnew.Enabled :=false;
btn_edit.Enabled :=false;
end;
procedure TFrm_mainpay.EnableBtn ;
begin
btn_first.Enabled :=true;
btn_prev.Enabled :=true;
btn_next.Enabled :=true;
btn_last.Enabled :=true;
btn_addnew.Enabled :=true;
btn_edit.Enabled :=true;
end;
//***************以上是自定义的按纽和编辑的可否应用部分*********************
//***************以下是按纽操作。*********************
//第一条
procedure TFrm_mainpay.btn_firstClick(Sender: TObject);
begin
if not tbmaintb.Bof then tbmaintb.First ;
end;
//最后一条
procedure TFrm_mainpay.btn_lastClick(Sender: TObject);
begin
if not tbmaintb.eof then tbmaintb.Last ;
end;
//前一条
procedure TFrm_mainpay.btn_prevClick(Sender: TObject);
begin
if not tbmaintb.Bof then tbmaintb.Prior ;
end;
//后一条
procedure TFrm_mainpay.btn_nextClick(Sender: TObject);
begin
if not tbmaintb.Eof then tbmaintb.Next ;
end;
//新增
procedure TFrm_mainpay.btn_addnewClick(Sender: TObject);
var
Present: TDateTime;
begin
UnlockEdit;
tbmaintb.append;
DisableBtn;
btn_save.Enabled :=true;
btn_cancel.Enabled :=true;
//给下面审核栏默认值:
//日期:
Present:= Now;
tbmaintb.fieldbyname('录入日期').AsString :=datetimetostr(present);
//人名:
with queryuse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select 主管,审核,录入 from pub_z_mainpay');
prepare;
open;
last;
tbmaintb.fieldbyname('主管').AsString:=fieldbyname('主管').AsString;
tbmaintb.fieldbyname('审核').AsString:=fieldbyname('审核').AsString;
tbmaintb.fieldbyname('录入').AsString:=fieldbyname('录入').AsString;
end;
end;
//保存
procedure TFrm_mainpay.btn_saveClick(Sender: TObject);
begin
with data.zxjxdata do begin
if not DatabaseJxw.intransaction then DatabaseJxw.starttransaction;
try
tbmaintb.ApplyUpdates ;
// tbmaintb.CommitUpdates ;
DatabaseJxw.commit;
//使编辑框和按钮有反应:
LockEdit;
EnableBtn ;
btn_save.Enabled :=false;
btn_cancel.Enabled :=false;
except
DatabaseJxw.Rollback;
raise;
end;
end;
{ tbmaintb.Close ;
tbmaintb.Open ;
}
end;
//修改数据
procedure TFrm_mainpay.btn_editClick(Sender: TObject);
begin
tbmaintb.CommitUpdates ;
if tbmaintb.Eof then tbmaintb.FindLast ;
tbmaintb.Edit ;
//让文本框可以编辑
UnlockEdit;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -