📄 input.pas
字号:
Edit1.Text := s2;
loadfm.Close;
Edit2.setfocus;
end;
key := #0;
end;
end;
procedure Tinputfm.Edit39DblClick(Sender: TObject);
var sqltxt: string;
begin
sqltxt := 'select bmbh as 部门编号,bmmc as 部门名称 from bm order by bmmc';
openadoquery(adodm.loadquery, sqltxt);
loadfm.Show;
loadfm.Tag := 1;
mainfm.SetFocus;
end;
procedure Tinputfm.Edit40DblClick(Sender: TObject);
var sqltxt: string;
begin
sqltxt := 'select gzbh as 工种编号,gzmc as 工种名称 from gz';
openadoquery(adodm.loadquery, sqltxt);
loadfm.Show;
loadfm.Tag := 2;
mainfm.SetFocus;
end;
procedure Tinputfm.Edit40KeyPress(Sender: TObject; var Key: Char);
var s1, s2: string;
begin
if (key = #13) and (loadfm.Tag = 2) then
begin
if adodm.loadquery.RecordCount = 0 then Edit40.SetFocus;
if adodm.loadquery.RecordCount > 0 then
begin
s1 := adodm.loadquery.FieldValues['工种名称'];
s2 := adodm.loadquery.FieldValues['工种编号'];
edit40.Text := s1;
Edit5.Text := s2;
loadfm.Close;
edit5.SetFocus;
end;
key := #0;
end;
end;
procedure Tinputfm.Edit40Change(Sender: TObject);
var s1, sqltxt: string;
begin
s1 := trim(edit40.Text);
sqltxt := 'select gzbh as 工种编号,gzmc as 工种名称 from gz where py like ''' + s1 + '%''';
editc(edit40, adodm.loadquery, loadfm, sqltxt)
end;
procedure Tinputfm.Edit40KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_ESCAPE) then loadfm.close;
if (key = vk_UP) then
begin
key := 0;
PostMessage(loadfm.DBGrid1.Handle, WM_KEYDOWN, vk_up, 0);
end
else
PostMessage(loadfm.DBGrid1.Handle, WM_KEYDOWN, key, 0);
end;
procedure Tinputfm.Edit39KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_ESCAPE) then loadfm.close;
if (key = vk_UP) then
begin
key := 0;
PostMessage(loadfm.DBGrid1.Handle, WM_KEYDOWN, vk_up, 0);
end
else
PostMessage(loadfm.DBGrid1.Handle, WM_KEYDOWN, key, 0);
end;
procedure Tinputfm.FormShow(Sender: TObject);
var j: integer;
s: string;
yy, mm, dd: word;
begin
decodedate(Date, yy, mm, dd);
s := inttostr(yy);
if (mm >= 1) and (mm <= 6) then edit31.Text := s + '-1-1';
if (mm >= 7) and (mm <= 12) then edit31.Text := s + '-7-1';
//以下动态生成有规格劳保用品输入框,query1中指向表,有一个字段lbmc(有规格)
adodm.adoquery1.Close;
adodm.adoquery1.Open;
ii := adodm.adoquery1.RecordCount;
adodm.adoquery1.First;
if ii = 0 then exit;
if ii > 0 then SetLength(a, ii);
if ii > 0 then SetLength(b, ii);
if ii > 0 then SetLength(lbname, ii);
//lbname用来保存劳保名称
for ii := 0 to Length(a) - 1 do
begin
a[ii] := Tcombobox.Create(Self);
b[ii] := Tlabel.Create(self);
//在scrollbox1上定位
with b[ii] do
begin
left := 5;
Top := ii * 25 + 10;
Parent := scrollbox1;
end;
with a[ii] do
begin
Parent := scrollbox1;
Left := b[ii].Left + 80;
// Height := 20;
Width := 90;
Top := ii * 25 + 5;
Style := csDropDownList;
lbname[ii] := adodm.adoquery1.FieldValues['lbmc'];
with adodm.ADOQuery2 do //取劳保的各种规格
begin
close;
sql.Clear;
sql.Add('select ggg from lbgg where glbmc=''' + lbname[ii] + '''');
open;
end;
for j := 1 to adodm.ADOQuery2.RecordCount do
begin
a[ii].Items.Add(adodm.ADOQuery2.FieldValues['ggg']);
adodm.ADOQuery2.Next;
end;
b[ii].Caption := lbname[ii] + '规格';
adodm.adoquery1.Next;
end;
end;
end;
// 释放动态生成的标签和combobox
procedure Tinputfm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
adodm.adoquery1.close;
adodm.adoquery1.open;
if ii > 0 then
begin
for ii := 0 to adodm.adoquery1.RecordCount - 1 do
begin
a[ii].free;
b[ii].free;
end;
end;
adodm.adoquery1.close;
adodm.adoquery2.close;
adodm.adoquery3.close;
adodm.adoquery4.close;
adodm.adoquery5.close;
adodm.adoquery6.close;
adodm.adoquery8.close;
adodm.adoquery9.close;
adodm.adoquery24.close;
adodm.adoquery25.close;
adodm.loadquery.close;
adodm.adotable1.close;
// adodm.adotable2.close;
Action := caFree;
end;
procedure Tinputfm.Edit9KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9', #8, #13]) then key := #0;
if key = #13 then edit11.setfocus;
end;
procedure Tinputfm.TabSheet2Show(Sender: TObject);
var sqltxt: string;
i: integer;
begin
sqltxt := 'select bmmc,bmbh from fftmp group by bmmc,bmbh order by bmbh';
openadoquery(adodm.adoquery8, sqltxt);
sqltxt := 'select distinct lbmc from fftmp';
openadoquery(adodm.adoquery9, sqltxt);
listbox1.Clear;
listbox2.Clear;
for i := 1 to adodm.ADOQuery9.RecordCount do
begin
listbox1.Items.Add(adodm.adoquery9.FieldValues['lbmc']);
adodm.ADOQuery9.Next;
end;
end;
procedure Tinputfm.Button1Click(Sender: TObject);
var
s1, s2, s3, lbmc, gg: string;
ir, sl, i: integer;
t: TfrMemoView;
begin
if adodm.ADOQuery8.RecordCount = 0 then exit;
if (adodm.ADOQuery8.RecordCount = 0) then
begin
MessageDlg('没有发放部门!', mtWarning, [mbOk], 0);
exit;
end;
s1 := adodm.ADOQuery8.FieldValues['bmbh'];
s2 := adodm.ADOQuery8.FieldValues['bmmc'];
t := TfrMemoView(frReport2.FindObject('Memo1'));
if t <> nil then
t.Memo.Text := s2 + '劳保用品发放汇总表(' + edit31.Text + ')';
getlist;
//显示单位汇总
s3 := 'select lbmc,gg,sum(sl) as zsl from fftmp ';
s3 := s3 + 'where bmbh=''' + s1 + '''';
s3 := s3 + noprintlb + ' group by lbmc,gg';
openadoquery(adodm.adoquery25, s3);
frreport2.ShowReport;
//清理网格
// StringGrid1.RestoreCells(fillrect(1, 1, 5, stringgrid1.ColCount));
// StringGrid1.ClearCells(fillrect(1, 1, 5, stringgrid1.ColCount));
// stringgrid1.refresh;
// ir := adodm.adoquery9.RecordCount;
// gridinit(StringGrid1, 5, ir + 3, s2 + '劳保用品发放汇总(' + edit31.Text + ')');
// with StringGrid1 do
// begin
// foretexts[4, 2] := '备注';
// foretexts[1, 2] := ' 劳保名称';
// foretexts[2, 2] := ' 规格';
// foretexts[3, 2] := ' 数量';
// end;
// with adodm.adoquery9 do
// begin
// for i := 1 to RecordCount do
// begin
// lbmc := FieldValues['lbmc'];
// gg := FieldValues['gg'];
// sl := FieldValues['zsl'];
// StringGrid1.foretexts[1, i + 2] := lbmc;
// StringGrid1.foretexts[2, i + 2] := gg;
// StringGrid1.foretexts[3, i + 2] := inttostr(sl);
// next;
// end;
// end;
// if fileexists(s1) or fileexists(s2) then
// begin
// MessageDlg('已经存在此部门的发放记录!', mtWarning, [mbOk], 0);
// exit;
// end;
end;
procedure Tinputfm.Button2Click(Sender: TObject);
var
lbmc, gg, sqltxt: string;
ir, i, sl: integer;
t: TfrMemoView;
begin
//显示所有汇总
t := TfrMemoView(frReport2.FindObject('Memo1'));
if t <> nil then
t.Memo.Text := '劳保用品发放汇总表(' + edit31.Text + ')';
getlist;
sqltxt := 'select lbmc,gg,sum(sl) as zsl from fftmp where 1=1 ' + noprintlb + ' group by lbmc,gg';
openadoquery(adodm.adoquery25, sqltxt);
frreport2.ShowReport;
//清理网格
// StringGrid1.RestoreCells(fillrect(1, 1, 5, stringgrid1.ColCount));
// StringGrid1.ClearCells(fillrect(1, 1, 5, stringgrid1.ColCount));
// stringgrid1.refresh;
// ir := adodm.adoquery9.RecordCount;
// gridinit(StringGrid1, 5, ir + 3, '所有部门劳保用品发放汇总(' + edit31.Text + ')');
// with StringGrid1 do
// begin
// foretexts[4, 2] := '备注';
// foretexts[1, 2] := ' 劳保名称';
// foretexts[2, 2] := ' 规格';
// foretexts[3, 2] := ' 数量';
// end;
// with adodm.adoquery9 do
// begin
// for i := 1 to RecordCount do
// begin
// lbmc := FieldValues['lbmc'];
// gg := FieldValues['gg'];
// sl := FieldValues['zsl'];
// StringGrid1.foretexts[1, i + 2] := lbmc;
// StringGrid1.foretexts[2, i + 2] := gg;
// StringGrid1.foretexts[3, i + 2] := inttostr(sl);
// next;
// end;
// end;
end;
procedure Tinputfm.Button3Click(Sender: TObject);
begin
if listbox1.ItemIndex = -1 then
begin
showmessage('没有选择劳保用品');
exit;
end;
listbox2.Items.Add(listbox1.Items[listbox1.ItemIndex]);
listbox1.Items.Delete(listbox1.ItemIndex);
end;
procedure Tinputfm.Button4Click(Sender: TObject);
begin
if listbox2.ItemIndex = -1 then
begin
showmessage('没有选择劳保用品');
exit;
end;
listbox1.Items.Add(listbox2.Items[listbox2.ItemIndex]);
listbox2.Items.Delete(listbox2.ItemIndex);
end;
procedure Tinputfm.getlist;
var s1: string;
i: integer;
begin
if listbox2.Items.Count = 0 then s1 := ''
else
begin
for i := 0 to listbox2.Items.Count - 1 do
begin
s1 := s1 + ' and lbmc<>''' + listbox2.Items[i] + '''';
end;
end;
noprintlb := s1;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -