📄 meal.pas
字号:
with dbgrid do
begin
for i:=1 to fcount do
if dbgrid.SelectedIndex =findex[i] then
begin
fsort[i]:='ASC';
exit;
end;
if fcount<5 then
begin
fcount:=fcount+1;
findex[fcount]:=dbgrid.selectedindex;
fsort[fcount]:='ASC';
dbgrid.Columns[dbgrid.selectedindex].Color :=clgray;
end;
end;
end;
procedure TFormmeal.N2Click(Sender: TObject);
var i:integer;
dbgrid:Tdbgrid;
begin
if fcount>0 then
if db<>pagecontrol1.ActivePageIndex then
begin
dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(db+1)));
with dbgrid do
begin
for i:=1 to fcount do
dbgrid.Columns[findex[i]].Color :=clwindow;
end;
fcount:=0;
end;
db:=pagecontrol1.ActivePageIndex;
dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(db+1)));
with dbgrid do
begin
for i:=1 to fcount do
if dbgrid.SelectedIndex =findex[i] then
begin
fsort[i]:='DESC';
exit;
end;
if fcount<5 then
begin
fcount:=fcount+1;
findex[fcount]:=dbgrid.selectedindex;
fsort[fcount]:='DESC';
dbgrid.Columns[dbgrid.selectedindex].Color :=clgray;
end;
end;
end;
procedure TFormmeal.N4Click(Sender: TObject);
var i:1..5;
sortexp:string;
dbgrid:Tdbgrid;
begin
if db<>pagecontrol1.ActivePageIndex then
begin
dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(db+1)));
with dbgrid do
begin
for i:=1 to fcount do
dbgrid.Columns[findex[i]].Color :=clwindow;
end;
fcount:=0;
exit;
end;
sortexp:='';
for i:=1 to fcount do
begin
dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(db+1)));
with dbgrid do
begin
if dbgrid.Columns[findex[i]].Color=clgray then
begin
sortexp :=sortexp+dbgrid.Columns[findex[i]].FieldName+' '+fsort[i];
if i<fcount then sortexp:=sortexp+',';
end;
end;
end;
if sortexp<>'' then
case pagecontrol1.ActivePageIndex of
0: ADOmealrecord.Sort :=sortexp;
1: ADOmealtotal.sort:=sortexp;
// 1: ADOunusual.sort:=sortexp;
end;
end;
procedure TFormmeal.N3Click(Sender: TObject);
var i:1..5;
dbgrid:Tdbgrid;
begin
dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(pagecontrol1.ActivePageIndex+1)));
with dbgrid do
begin
for i:=1 to fcount do
dbgrid.Columns[findex[i]].Color :=clwindow;
end;
fcount:=0;
end;
procedure TFormmeal.MaskEdit2Exit(Sender: TObject);
var s1,s2,str,s3:string;
begin
s1:='';s2:='';s3:='';
if trim(edit1.text)<>'' then
s1:=' (workno='''+edit1.text+''' or cardno='''+edit1.text+''' or name='''+edit1.text+''') ';
if trim(maskedit2.text)<>fmat1 then
if (not isdate(maskedit1.Text)) or (not isdate(maskedit2.text)) then
begin
Application.MessageBox('对不起,您输入的不是有效日期','Warning',mb_ok+mb_iconwarning);
maskedit1.SetFocus;
exit;
end
else s2:=' and (rq<='''+maskedit2.text+''' and rq>='''+maskedit1.text+''')';
if trim(combobox1.text)='' then
combobox1.Text:='全部';
if combobox1.Text<>'全部' then
s3:=' and dept='''+combobox1.text+'''';
str:=s1+s2+s3;
if trim(str)<>'' then
if s1<>'' then
str:=copy(str,1,length(str))
else
str:=copy(str,pos(' and',str)+5,length(str));
adomealrecord.Close;
adomealrecord.Prepared:=True;
if trim(str)<>'' then
adomealrecord.CommandText:='Select * From mel04010 where '+str
else
adomealrecord.CommandText:='Select * From mel04010';
Adomealrecord.Open;
end;
procedure TFormmeal.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (activecontrol=dbgrid1) or (activecontrol=dbgrid2) then
exit;
if key=#13 then
begin
selectnext(activecontrol,true,true);
key:=#0;
end;
end;
procedure TFormmeal.ToolButton5Click(Sender: TObject);
begin
case pagecontrol1.ActivePageIndex of
0:begin
adomealrecord.close;
adomealrecord.Filtered:=false;
adomealrecord.commandText:='select * from mel04010 order by rq ';
adomealrecord.Open;
maskedit1.text:=fmat1;
maskedit2.Text:=fmat1;
combobox1.Text:='';
Combobox2.text:='';
Combobox3.text:='';
end;
2:begin
adomealtotal.close;
adomealtotal.Filter:='';
adomealtotal.Filtered:=True;
adomealtotal.CommandText:='select * from mel05010 order by rq ';
adomealtotal.Prepared:=True; //进行优化
adomealtotal.Open;
adodataset1.Close;
adodataset1.CommandText:='select * from mel08010 where workno=:workno and left(convert(varchar,rq,111),7)=:rq ';
adodataset1.Open;
maskedit3.Text:=fmat2;
end;
1:begin
AdoDataSet2.Close;
AdoDataSet3.Close;
AdoDataSet2.CommandText:='Select * From mel08010 order by rq ';
AdoDataSet3.CommandText:='Select * From mel04010 where convert(varchar(10),rq,111)=:rq and workno=:workno';
AdoDataSet2.Open;
AdoDataSet3.Open;
MaskEdit4.Text:=fmat1;
MaskEdit5.Text:=fmat1;
Edit3.Text:='';
end;
end;
end;
procedure TFormmeal.MaskEdit3Exit(Sender: TObject);
var s1,s2,str,s3:string;
begin
s1:='';s2:='';s3:='';
if trim(edit2.text)<>'' then
s1:=' (workno='''+edit2.text+''' or cardno='''+edit2.text+''' or name='''+edit2.text+''') ';
if trim(maskedit3.text)<>fmat then
s2:=' and (rq='''+maskedit3.text+''')';
if trim(combobox2.Text)='' then
combobox2.Text:='全部';
if combobox2.Text<>'全部' then
s3:=' and deptno='''+combobox2.text+'''';
str:=s1+s2+s3;
if trim(str)<>'' then
if s1<>'' then
str:=copy(str,1,length(str))
else
str:=copy(str,pos(' and',str)+5,length(str));
adomealtotal.Close;
if trim(str)<>'' then
adomealtotal.CommandText:='select * from mel05010 where '+str
else
adomealtotal.CommandText:='select * From mel05010';
adomealtotal.Open;
end;
procedure TFormmeal.Edit2Exit(Sender: TObject);
begin
// if trim(edit2.text)<>'' then
// begin
// adomealtotal.Filtered :=false;
// adomealtotal.Filter :='workno='''+edit2.text+''' or name='''+edit2.text+''' or deptno='''+edit2.text+''' or cardno='''+Edit2.Text+'''';
// adomealtotal.Filtered :=true;
// end;
end;
procedure TFormmeal.Edit3Exit(Sender: TObject);
begin
if (pageControl1.ActivePageIndex=2)and(Edit3.Text<>'') and (MaskEdit4.Text<>' / / ')and (MaskEdit5.Text<>' / / ')then
begin
AdoDataSet2.Close;
AdoDataSet2.CommandText:='Select * From mel08010 where rq between '''+MaskEdit4.Text+''' and '''+MaskEdit5.Text+''' and workno='''+Edit3.Text+''' or cardno='''+Edit3.Text+''' or name='''+Edit3.Text+''' or dept='''+Edit3.Text+'''order by dept,workno';
AdoDataSet2.Prepared:=True;
AdoDataSet2.Open;
end
else if (pageControl1.ActivePageIndex=2) and (Edit3.Text<>'') and (MaskEdit4.Text=' / / ')and (MaskEdit5.Text=' / / ')then
begin
AdoDataSet2.Close;
AdoDataSet2.CommandText:='Select * From mel08010 where workno='''+Edit3.Text+''' or cardno='''+Edit3.Text+''' or name='''+Edit3.Text+''' or dept='''+Edit3.Text+''' order by dept,workno';
AdoDataSet2.Prepared:=True;
AdoDataSet2.Open;
end;
end;
procedure TFormmeal.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_F1 then
begin
Application.HelpFile :=Extractfilepath(application.ExeName)+ 'help\pasahelp.hlp';
application.HelpJump('SHM_CONTENTS0037');
end;
end;
procedure TFormmeal.tbnprintClick(Sender: TObject);
begin
Formmealprint:=TFormmealprint.create(Application);
Formmealprint.showmodal;
end;
procedure TFormmeal.DBGrid3TitleClick(Column: TColumn);
begin
if f='DESC' THEN
F:='ASC'
ELSE
F:='DESC';
AdoDataSet2.sort:=column.fieldname+' '+f;
end;
procedure TFormmeal.DBGrid7TitleClick(Column: TColumn);
begin
if f='DESC' THEN
F:='ASC'
ELSE
F:='DESC';
AdoDataSet3.sort:=column.fieldname+' '+f;
end;
procedure TFormmeal.Edit1Exit(Sender: TObject);
begin
if (pageControl1.ActivePageIndex=0) and (Edit1.Text<>'') and (MaskEdit1.Text<>' / / ')and (MaskEdit2.Text<>' / / ')then
begin
Adomealrecord.Close;
Adomealrecord.CommandText:='Select * From mel04010 where rq between '''+MaskEdit1.Text+''' and '''+MaskEdit2.Text+''' and (workno='''+Edit1.Text+''' or cardno='''+Edit1.Text+''' or name='''+Edit1.Text+''' or dept='''+Edit1.Text+''' or mealname='''+Edit1.Text+''' or mealtype='''+Edit1.Text+''') order by dept,workno';
Adomealrecord.Prepared:=True;
Adomealrecord.Open;
end
else if (pageControl1.ActivePageIndex=0) and (Edit1.Text<>'') and (MaskEdit1.Text=' / / ')and (MaskEdit2.Text=' / / ')then
begin
Adomealrecord.Close;
Adomealrecord.CommandText:='Select * From mel04010 where workno='''+Edit1.Text+''' or cardno='''+Edit1.Text+''' or name='''+Edit1.Text+''' or dept='''+Edit1.Text+''' or mealname='''+Edit1.Text+''' or mealtype='''+Edit1.Text+''' order by dept,workno';
Adomealrecord.Prepared:=True;
Adomealrecord.Open;
end;
end;
procedure TFormmeal.MaskEdit5Exit(Sender: TObject);
var s1,s2,str,s3:string;
begin
s1:='';s2:='';s3:='';
if trim(edit3.text)<>'' then
s1:=' (workno='''+edit3.text+''' or cardno='''+edit3.text+''' or name='''+edit3.text+''') ';
if trim(maskedit5.text)<>fmat1 then
if (not isdate(maskedit4.Text)) or (not isdate(maskedit5.text)) then
begin
Application.MessageBox('对不起,您输入的不是有效日期','Warning',mb_ok+mb_iconwarning);
maskedit4.SetFocus;
exit;
end
else s2:=' and (rq<='''+maskedit5.text+''' and rq>='''+maskedit4.text+''')';
if trim(combobox3.text)='' then
combobox3.Text:='全部';
if combobox3.Text<>'全部' then
s3:=' and dept='''+combobox3.text+'''';
str:=s1+s2+s3;
if trim(str)<>'' then
if s1<>'' then
str:=copy(str,1,length(str))
else
str:=copy(str,pos(' and',str)+5,length(str));
adodataset2.Close;
adodataset2.Prepared:=True;
if trim(str)<>'' then
adodataset2.CommandText:='Select * From mel08010 where '+str
else
adodataset2.CommandText:='Select * From mel08010';
adodataset2.Open;
adodataset3.Close;
adodataset3.CommandText:='Select * From mel04010 where rq=:rq and workno=:workno';
adodataset3.Open;
end;
procedure TFormmeal.ComboBox1Change(Sender: TObject);
begin
// ADOmealrecord.Close;
// if (sender as TCombobox).text='全部' then
// ADOmealrecord.CommandText:='select * from mel04010 order by dept,rq,workno'
// else
///// ADOmealrecord.CommandText:='select * from mel04010 where dept='''+(sender as TCombobox).text+''' order by dept,rq,workno';
// ADOmealrecord.Open;
end;
procedure TFormmeal.ComboBox2Change(Sender: TObject);
begin
// ADOmealtotal.close;
// if Tcombobox(Sender).Text='全部' then
// ADOmealtotal.CommandText:='select * from mel05010 order by deptno,rq,workno'
// else
// ADOmealtotal.CommandText:='select * from mel05010 where deptno='''+Tcombobox(Sender).Text+'''order by deptno,rq,workno';
// ADOmealtotal.Open;
end;
procedure TFormmeal.ComboBox3Change(Sender: TObject);
begin
// ADODataSet2.close;
// if TCombobox(Sender).Text='全部' then
// ADODataSet2.commandtext:='Select * From mel08010 order by dept,rq,workno'
// else
// ADODataSet2.commandtext:='Select * From mel08010 where dept='''+TCombobox(Sender).Text+''' order by dept,rq,workno';
// ADODataSet2.open;
end;
procedure TFormmeal.BitBtn2Click(Sender: TObject);
var i:string;
begin
if messagedlg('注意:移除前,请确认为已无效的数据'+#13+'是否要进行移除',mtinformation,[mbyes,mbno],0)=mryes then
begin
Animate1.Active:=true;
adoquery1.Close;
adoquery1.SQL.Clear;
label23.Caption:='正在移除资料,请稍後........';
label23.Visible:=true;
label23.Update;
adoquery1.SQL.text:='exec mealbk ''1'','''+formatdatetime('yyyy/mm/dd',DateTimePicker3.DateTime)+''','''+formatdatetime('yyyy/mm/dd',DateTimePicker4.datetime)+'''';
try
adoquery1.ExecSQL;
except
;
end;
label23.Caption:='移除完毕';
label23.Update;
ADOmealrecord.close;
ADOmealrecord.commandtext:='select * from mel04010 order by dept,workno ';
ADOmealrecord.Open;
messagedlg('移除成功,谢谢使用!!!!',mtinformation,[mbok],0);
Animate1.Active:=false;
label23.Visible:=false;
end;
end;
procedure TFormmeal.BitBtn3Click(Sender: TObject);
var i:string;
begin
if messagedlg('注意:是否进行还原!!!!',mtinformation,[mbyes,mbno],0)=mryes then
begin
Animate1.Active:=true;
adoquery1.Close;
adoquery1.SQL.Clear;
label23.Caption:='正在还原资料,请稍後........';
label23.Visible:=true;
label23.Update;
adoquery1.SQL.text:='exec mealbk ''0'','''+formatdatetime('yyyy/mm/dd',DateTimePicker3.DateTime)+''','''+formatdatetime('yyyy/mm/dd',DateTimePicker4.datetime)+'''';
try
adoquery1.ExecSQL;
except
;
end;
label23.Caption:='还原完毕';
label23.Update;
ADOmealrecord.close;
ADOmealrecord.commandtext:='select * from mel04010 order by dept,workno ';
ADOmealrecord.Open;
messagedlg('还原成功,谢谢使用!!!!',mtinformation,[mbok],0);
Animate1.Active:=false;
label23.Visible:=false;
end;
end;
procedure TFormmeal.BitBtn1Click(Sender: TObject);
begin
panel6.Visible:=false;
end;
procedure TFormmeal.ToolButton4Click(Sender: TObject);
begin
panel6.Visible:=true;
datetimepicker3.SetFocus;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -