📄 payforoffice.pas
字号:
unit payforoffice;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DBCtrls, Grids, DBGrids, DB, DBTables;
type
Tfrm_payforoffice = class(TForm)
label1: TLabel;
DBGrid1: TDBGrid;
Label8: TLabel;
Label5: TLabel;
btncreatedetail: TButton;
btnsavethis: TButton;
qoffice: TQuery;
dspayforoffice: TDataSource;
dsuse: TDataSource;
Edit1: TEdit;
ComboBox1: TComboBox;
qforuse: TQuery;
qforuse2: TQuery;
qforuse3: TQuery;
qpayforoffice: TQuery;
qpayforofficeBDEDesigner: TAutoIncField;
qpayforofficeBDEDesigner2: TStringField;
qpayforofficeBDEDesigner3: TStringField;
qpayforofficeBDEDesigner4: TStringField;
qpayforofficeBDEDesigner5: TStringField;
qpayforofficeBDEDesigner6: TFloatField;
qpayforofficeBDEDesigner7: TFloatField;
qpayforofficeBDEDesigner8: TFloatField;
qpayforofficeBDEDesigner9: TFloatField;
qpayforofficeBDEDesigner10: TStringField;
qpayforofficeBDEDesigner11: TStringField;
ComboBox2: TComboBox;
procedure btncreatedetailClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure btnsavethisClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frm_payforoffice: Tfrm_payforoffice;
implementation
uses data;
{$R *.dfm}
procedure Tfrm_payforoffice.btncreatedetailClick(Sender: TObject);
var
office:string;
year:string;
month:string;
begin
office:=ComboBox2.Text;
year:=Edit1.Text;
month:=ComboBox1.Text;
//判断该办事处名称和年月的组合是否存在,存在,则提出相关人员数据
// 否则,插入相关的人员数据
with qforuse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select * from pub_z_payforoffice where 年=:year and 月=:month and 办事处名称=:office');
parambyname('year').AsString:=year;
parambyname('month').asstring:=month;
parambyname('office').asstring:=office;
open;
//如果没有办事处名称和年月的组合,就插入到pub_z_payforoffice。
if not findfirst then
//提出相关工号:
with qforuse2 do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select * from pub_z_stuff where 办事处名称=:office');
parambyname('office').asstring:=office;
Open;
//循环赋值:
if findfirst then
while not qforuse2.Eof do
with qforuse3 do begin
Close;
UnPrepare ;
SQL.Clear ;
SQL.Add('insert into pub_z_payforoffice values(:office,:name,:gh,:qqtsh,:fdratio,:saleratio,:yearratio,:maintainratio,:year,:month)');
parambyname('office').AsString:=office;
parambyname('name').AsString:=qforuse2.fieldbyname('姓名').Asstring;
parambyname('gh').asstring:=qforuse2.fieldbyname('工号').Asstring;
parambyname('qqtsh').asstring:='0';
parambyname('fdratio').ascurrency:=0;
parambyname('saleratio').ascurrency:=0;
parambyname('yearratio').ascurrency:=0;
parambyname('maintainratio').ascurrency:=0;
parambyname('year').AsString:=year;
parambyname('month').asstring:=month;
ExecSQL;
qforuse2.next;
end ;
end;
end;
with qpayforoffice do begin
if active then close;
parambyname('office').AsString:=office;
parambyname('year').AsString:=year;
parambyname('month').asstring:=month;
Open;
end;
end;
procedure Tfrm_payforoffice.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=cafree;
end;
procedure Tfrm_payforoffice.FormCreate(Sender: TObject);
begin
with qoffice do begin
open;
ComboBox2.Items.Clear ;
while not eof do begin
ComboBox2.Items.Add(fieldbyname('办事处名称').AsString);
next;
end;
end;
end;
procedure Tfrm_payforoffice.btnsavethisClick(Sender: TObject);
begin
with data.zxjxdata do begin
if not DatabaseJxw.intransaction then DatabaseJxw.starttransaction;
try
qpayforoffice.ApplyUpdates;
DatabaseJxw.commit;
//使编辑框和按钮有反应:
except
DatabaseJxw.Rollback;
raise;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -