📄 unit_modesalary.~pas
字号:
sql.Add('delete from modeSalaryDay ');
execsql;
end;
//========清除记录==========
tabledaysalary.close;
Querydaysalary.Close;
queryall.close;
tableall.close;
ename.Text:='';
Form_modeallsalaryprt.close;
Form_modeallsalarychart.close;
Form_modedaysalaryprt.close;
Form_modedaysalarychart.close;
end;
//===================结束=====================
procedure TForm_modesalary.BBPrintClick(Sender: TObject);
begin
if al=1 then
begin
Form_modeallsalaryprt.QRLabeldate.Caption:=datetostr(date);
Form_modeallsalaryprt.QRLabel1.Caption:='整修车间'+'从'+datetostr(DateTimePicker1.date)+'到 '+datetostr(DateTimePicker2.date)+' 工资清单';
Form_modeallsalaryprt.QuickRep1.Preview;
exit
end;
showmessage('请先按“查询”按键!');
end;
procedure TForm_modesalary.BBPicClick(Sender: TObject);
begin
if al=1 then
begin
Form_modeallsalarychart.show;
Form_modeallsalarychart.DBChart1.Title.Text.Text:='整修车间'+'从'+datetostr(DateTimePicker1.date)+'到 '+datetostr(DateTimePicker2.date)+' 工资图表分析';
exit
end;
showmessage('请先按“查询”按键!');
end;
procedure TForm_modesalary.BBCloseClick(Sender: TObject);
begin
close;
end;
procedure TForm_modesalary.BBNextClick(Sender: TObject);
begin
dbgrid2.SetFocus;
queryall.Next;
end;
procedure TForm_modesalary.BBPritClick(Sender: TObject);
begin
dbgrid2.SetFocus;
queryall.Prior;
end;
procedure TForm_modesalary.FormShow(Sender: TObject);
begin
al:=0;
i:=0;
j:=0;
tabledaysalary.open;
//queryall.open;
tableall.open;
ename.Text:='';
DateTimePicker1.date:=date-30;
DateTimePicker2.date:=date;
DateTimePicker3.date:=date-30;
DateTimePicker4.date:=date;
PageControl1.ActivePageIndex :=0;
end;
//=========以下是个人工资查询事件====================
procedure TForm_modesalary.bbdayserchClick(Sender: TObject);
var int0,int1,int2,int3,int4,int5,int6:integer;
f1,f2,f3,f4:real;
begin
if (i<>1) or (ename.text='') then
begin
showmessage('请先输入职工姓名!');
exit;
end;
j:=1;
///======首先清除tabledaysalary记录,为查询做准备===========
with query1all do
begin
close;
sql.Clear;
sql.Add('delete from modeSalaryDay ');
execsql;
end;
//======以下是第一次对query1分组查询过滤============
with querydaysalary do begin
close;
sql.Clear;
Unprepare;
sql.Add('Select zhenxiou.riqi,zhenxiou.prodid,sum(hao)as SumQcNum,sum(xioufei)as SumLackNum,');
//sql.Add('sum(impunum)as SumImpuNum,sum(polenum)as SumPoleNum,sum(ripnum)as SumRipNum,');
sql.Add('sum(SubSalary)as sumsubsalary,');
sql.Add('sum(DisSalary)as sumdissalary,avg(xioujia)as avgUS from zhenxiou,ProdDictionary');
sql.Add (' where name =:index and riqi between :fromdate and :todate and zhenxiou.prodid=ProdDictionary.prodid');
sql.Add ('group by riqi,zhenxiou.prodid');
parambyname('fromdate').asdate:=DateTimePicker3.date;
parambyname('todate').asdate:=DateTimePicker4.date;
parambyname('index').asstring:=ename.text;
Prepare;
open;
if ename.text='' then begin
showmessage('无记录 或没输入职工姓名!');
exit;
end;
end;//with
//=========以上第一次查询结束=======================
//=========以下是向table1中誊写记录=================
tabledaysalary.open;
querydaysalary.First;
while not querydaysalary.eof do
begin
if (querydaysalary.fieldbyname('riqi').asdatetime<strtodate('2000-01-01'))or(querydaysalary.fieldbyname('sumqcnum').asinteger=0) then
begin
querydaysalary.next;
end
else
begin
tabledaysalary.append;
tabledaysalary.FieldByName('name').asstring:=ename.text;
tabledaysalary.FieldByName('tdate').asdatetime:=querydaysalary.fieldbyname('riqi').asdatetime;
tabledaysalary.FieldByName('qcnum').asinteger:=querydaysalary.fieldbyname('sumqcnum').asinteger;
tabledaysalary.FieldByName('subsalary').asfloat:=querydaysalary.fieldbyname('sumsubsalary').asfloat;
tabledaysalary.FieldByName('dissalary').asfloat:=querydaysalary.fieldbyname('sumdissalary').asfloat;
tabledaysalary.FieldByName('unitsalary').asfloat:=querydaysalary.fieldbyname('avgUS').asfloat;
int0:=querydaysalary.fieldbyname('sumqcnum').asinteger;
int1:=querydaysalary.fieldbyname('sumlacknum').asinteger;
//int2:=querydaysalary.fieldbyname('sumimpunum').asinteger;
//int3:=querydaysalary.fieldbyname('sumripnum').asinteger;
//int4:=querydaysalary.fieldbyname('sumpolenum').asinteger;
//int5:=querydaysalary.fieldbyname('sumelsenum').asinteger;
int6:=int1;
tabledaysalary.FieldByName('wasternum').asinteger:=int6;//计算总废品数
f1:=querydaysalary.fieldbyname('sumsubsalary').asfloat;
f2:=querydaysalary.fieldbyname('sumdissalary').asfloat;
f3:=querydaysalary.fieldbyname('avgUS').asfloat;
f4:=f3*int0;
f4:=strtofloat(formatfloat('0.00',f4));
tabledaysalary.FieldByName('daysalary').asfloat:=f4;//计件日工资
tabledaysalary.FieldByName('heji').asfloat:=f4+f1-f2;
tabledaysalary.post;
querydaysalary.next;
end;
end;//while
//========以上抄写记录完成========================
with querydaysalary do begin
close;
sql.Clear;
Unprepare;
sql.Add('Select * from zhengjishigozi');
sql.Add (' where ximi =:index and jsrq between :fromdate and :todate ');
sql.Add ('order by jsrq');
parambyname('fromdate').asdate:=DateTimePicker3.date;
parambyname('todate').asdate:=DateTimePicker4.date;
parambyname('index').asstring:=ename.text;
Prepare;
open;
if recordcount<>0 then
//end;//with
begin
querydaysalary.First;
while not querydaysalary.eof do
begin
tabledaysalary.append;
tabledaysalary.FieldByName('name').asstring:=ename.text;
tabledaysalary.FieldByName('tdate').asdatetime:=querydaysalary.fieldbyname('jsrq').asdatetime;
tabledaysalary.FieldByName('subsalary').asfloat:=querydaysalary.fieldbyname('butie').asfloat;
tabledaysalary.FieldByName('jsrgz').asfloat:=querydaysalary.fieldbyname('jishizi').asfloat;
tabledaysalary.FieldByName('dissalary').asfloat:=querydaysalary.fieldbyname('kou').asfloat;
tabledaysalary.FieldByName('heji').asfloat:=querydaysalary.fieldbyname('rizi').asfloat;
tabledaysalary.post;
querydaysalary.next;
end;//while
end;//with
end;//if
if tabledaysalary.recordcount=0 then
showmessage('无记录!');
end;
procedure TForm_modesalary.PageControl1Change(Sender: TObject);
begin
{
if PageControl1.ActivePageIndex =1 then
begin
FrmSulfDictionary.PageControl1.ActivePageIndex:=1;
//FrmSulfDictionary.ActiveControl:=FrmSulfDictionary.enameid;
FrmSulfDictionary.showmodal;
end;
}
end;
procedure TForm_modesalary.enameEnter(Sender: TObject);
begin
j:=0;
ename.Text:='';
Tabledaysalary.Close;
i:=1;
if CheckBoxdicname.Checked = true then begin
FrmcommqueryID.PageControl1.ActivePageIndex:=0;
if FrmcommqueryID.showmodal=mrok then
begin
ename.text:=FrmcommqueryID.query3.fieldbyname('staffname').asstring;
end;
end;
end;
procedure TForm_modesalary.bbdaychartClick(Sender: TObject);
begin
if (i=1)and(j=1) then //if1
begin
Form_modedaysalarychart.DBChart1.Title.Text.Text:=ename.text+'日工资图表';
Form_modedaysalarychart.show;
exit;
end;
showmessage('请先按“查询”按键!');
j:=0;
end;
procedure TForm_modesalary.bbdayprintClick(Sender: TObject);
begin
if (i=1)and(j=1) then //if1
begin
Form_modedaysalaryprt.QRLabeldate.Caption:=datetostr(date);
Form_modedaysalaryprt.QRLabelname.caption:=ename.text;
Form_modedaysalaryprt.QRLabel1.Caption:='日工资清单';
Form_modedaysalaryprt.QuickRep1.Preview;
exit;
end;
showmessage('请先按“查询”按键!');
j:=0;
end;
procedure TForm_modesalary.bbdaynextClick(Sender: TObject);
begin
dbgrid1.SetFocus;
tabledaysalary.next;
end;
procedure TForm_modesalary.bbdaypriorClick(Sender: TObject);
begin
dbgrid1.SetFocus;
tabledaysalary.Prior;
end;
procedure TForm_modesalary.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure TForm_modesalary.TabSheet1Show(Sender: TObject);
begin
queryall.Close;
Tabledaysalary.Close;
end;
procedure TForm_modesalary.TabSheet2Exit(Sender: TObject);
begin
Tabledaysalary.Close;
end;
procedure TForm_modesalary.TabSheet1Exit(Sender: TObject);
begin
Queryall.Close;
end;
procedure TForm_modesalary.DateTimePicker1Change(Sender: TObject);
begin
al:=0;
queryall.Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -