sjd_zhcx_tj.pas
来自「人事管理程序源码」· PAS 代码 · 共 454 行
PAS
454 行
unit sjd_zhcx_tj;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls, ComCtrls, Mask;
type
TForm_sjd_zhcx_tj = class(TForm)
Panel1: TPanel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
field_name: TComboBox;
sjf: TComboBox;
jg_edit: TEdit;
jg_combo: TComboBox;
lj_sjf: TComboBox;
BitBtn1: TBitBtn;
memo_cxtj: TMemo;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
Panel6: TPanel;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn5: TBitBtn;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
jg_sj: TMaskEdit;
Panel7: TPanel;
Label13: TLabel;
sd_dw: TComboBox;
sd_bm: TComboBox;
Label14: TLabel;
Panel8: TPanel;
Label1: TLabel;
Label15: TLabel;
cx_tjmc: TEdit;
procedure FormShow(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure field_nameEnter(Sender: TObject);
procedure field_nameExit(Sender: TObject);
procedure lj_sjfChange(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure field_nameChange(Sender: TObject);
procedure sjfChange(Sender: TObject);
procedure jg_comboChange(Sender: TObject);
procedure lj_sjfKeyPress(Sender: TObject; var Key: Char);
procedure jg_editChange(Sender: TObject);
procedure jg_editKeyPress(Sender: TObject; var Key: Char);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure jg_sjChange(Sender: TObject);
procedure sd_dwChange(Sender: TObject);
procedure jg_editExit(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure cx_tjmcExit(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form_sjd_zhcx_tj: TForm_sjd_zhcx_tj;
ls_cxtj:string;
implementation
uses U_gzda_dm;
{$R *.DFM}
procedure TForm_sjd_zhcx_tj.FormShow(Sender: TObject);
begin
with gzda_dm.ADODataSet10 do begin
if active then active:=false;
commandtext:='select * from dwbmb order by dwbm';
open;
first;
sd_dw.Items.Clear;
while not eof do begin
sd_dw.Items.Add(fieldbyname('dwbm').AsString+'.'+fieldbyname('dwmc').AsString);
next;
end;
end;
with gzda_dm.ADODataSet10 do begin
if active then active:=false;
commandtext:='select * from daxm_xz order by bh';
open;
first;
field_name.Items.Clear;
while not eof do begin
field_name.Items.Add(fieldbyname('mc').AsString);
next;
end;
end;
jg_combo.Items.Clear;
memo_cxtj.Lines.Text:='';
memo_cxtj.Refresh ;
end;
procedure TForm_sjd_zhcx_tj.BitBtn5Click(Sender: TObject);
begin
if Application.MessageBox('确实要放弃设定查询条件吗?','提示',MB_YesNO+ MB_DEFBUTTON2) <> IDYes then
Abort;
memo_cxtj.Lines.Text:='';
memo_cxtj.Refresh ;
close;
end;
procedure TForm_sjd_zhcx_tj.BitBtn3Click(Sender: TObject);
begin
memo_cxtj.Lines.Text:='';
memo_cxtj.Refresh ;
field_name.Enabled:=true;
field_name.SetFocus;
field_name.Text:='';
sjf.Text:='';
jg_combo.Text:='';
lj_sjf.Text:='';
bitbtn2.Enabled:=false;
bitbtn3.Enabled:=false;
end;
procedure TForm_sjd_zhcx_tj.BitBtn1Click(Sender: TObject);
var
bmbh,bmmc,ls_mc:string;
begin
ls_mc:=copy(field_name.Text,1,4);
if sjf.Text<>'like' then
begin
if jg_edit.Visible then
begin
IF ls_cxtj<>'gzze' then
ls_cxtj:='('+ls_cxtj+sjf.Text +''''+jg_edit.text+''''+')'
else
ls_cxtj:='('+ls_cxtj+sjf.Text +jg_edit.text+')';
end;
if jg_sj.Visible then
ls_cxtj:='('+ls_cxtj+sjf.Text +''''+jg_sj.text+''''+')';
if jg_combo.Visible then
begin
if ls_mc='部门' then
begin
bmmc:=jg_combo.Text; //取出部门名称
with gzda_dm.ADODataSet10 do begin
if active then active:=false;
commandtext:='select bh from fzsj where (mc=:bmmc) and (fzsjxmbh=10)';
Parameters.ParamByName('bmmc').Value:=bmmc;
open;
if recordcount<>0 then
begin
if fieldbyname('bh').AsInteger<10 then
bmbh:='0'+fieldbyname('bh').AsString
else
bmbh:=fieldbyname('bh').AsString;
end
else
abort;
close;
ls_cxtj:='('+'zgxh like '+QuotedStr(bmbh+'%')+')';
end;
end
else
ls_cxtj:='('+ls_cxtj+sjf.Text +''''+jg_combo.text+''''+')';
end;
end
else
begin
if jg_edit.Visible then
begin
IF ls_cxtj<>'gzze' then
ls_cxtj:='('+ls_cxtj+' '+sjf.Text +' '+''''+'%'+jg_edit.text+'%'+''''+')'
else
ls_cxtj:='('+ls_cxtj+'='+jg_edit.text+')' ;
end;
if jg_sj.Visible then
ls_cxtj:='('+ls_cxtj+'='+''''+jg_sj.text+''''+')';
if jg_combo.Visible then
ls_cxtj:='('+ls_cxtj+' '+sjf.Text +' '+''''+'%'+jg_combo.text+'%'+''''+')';
end;
if lj_sjf.Text='且' then ls_cxtj:=ls_cxtj+' and ';
if lj_sjf.Text='或' then ls_cxtj:=ls_cxtj+' or ';
memo_cxtj.Lines.Text:=memo_cxtj.Lines.Text+ls_cxtj;
memo_cxtj.Refresh;
if ((lj_sjf.Text='') or (lj_sjf.Text='无')) then
begin
field_name.Enabled:=false;
sjf.Enabled:=false;
jg_combo.Enabled:=false;
jg_edit.Enabled:=false;
jg_sj.Enabled:=false;
lj_sjf.Enabled:=false;
bitbtn2.Enabled:=true;
bitbtn3.Enabled:=true;
bitbtn2.SetFocus;
bitbtn1.Enabled:=false;
end
else
begin
field_name.Enabled:=true;
field_name.SetFocus;
sjf.Enabled:=false;
jg_combo.Enabled:=false;
jg_edit.Enabled:=false;
jg_sj.Enabled:=false;
lj_sjf.Enabled:=false;
bitbtn1.Enabled:=false;
end;
end;
procedure TForm_sjd_zhcx_tj.field_nameEnter(Sender: TObject);
begin
ls_cxtj:='';
sjf.Text:='';
jg_combo.text:='';
jg_edit.Text:='';
lj_sjf.Text:='';
//jg_sj.Date:=now;
end;
procedure TForm_sjd_zhcx_tj.field_nameExit(Sender: TObject);
var
zdmc:string;
begin
zdmc:=copy(field_name.text,1,pos('(',field_name.text)-1);
ls_cxtj:=copy(field_name.text,pos('(',field_name.text)+1,pos(')',field_name.text)-pos('(',field_name.text)-1);
with gzda_dm.ADODataSet10 do begin
if active then active:=false;
commandtext:='select sj.bh,sj.mc from fzsj sj,fzsjxm xm where (sj.fzsjxmbh=xm.fzsjxmbh) and (xm.mc like :cx_mc) order by sj.bh';
Parameters.ParamByName('cx_mc').Value:='%'+zdmc+'%';
open;
end;
if gzda_dm.ADODataSet10.RecordCount<>0 then //实例为组合框
begin
jg_edit.Visible:=false;
jg_sj.Visible:=false;
jg_combo.Visible:=true;
jg_combo.Items.Clear;
with gzda_dm.ADODataSet10 do begin
while not eof do begin
jg_combo.Items.Add(fieldbyname('mc').AsString);
next;
end;
end;
end
else
begin
if (pos('学历',zdmc)<>0) or (pos('部门',zdmc)<>0) then
begin
with gzda_dm.ADODataSet10 do begin
if active then active:=false;
commandtext:='select bh,mc from fzsj where (fzsjxmbh=:xh) order by bh';
if (pos('学历',zdmc)<>0) then
Parameters.ParamByName('xh').Value:=6
else
Parameters.ParamByName('xh').Value:=10;
open;
end;
if gzda_dm.ADODataSet10.RecordCount<>0 then //实例为组合框
begin
jg_edit.Visible:=false;
jg_sj.Visible:=false;
jg_combo.Visible:=true;
jg_combo.Items.Clear;
with gzda_dm.ADODataSet10 do begin
while not eof do begin
jg_combo.Items.Add(fieldbyname('mc').AsString);
next;
end;
end;
end ;
end
else
begin
if pos('时间',zdmc)<>0 then //时间选项 实例为jg_sj
begin
jg_combo.Visible:=false;
jg_edit.Visible:=false;
jg_sj.Visible:=true;
end
else
begin
jg_combo.Visible:=false;
jg_edit.Visible:=true;
jg_sj.Visible:=false;
end;
end;
end;
end;
procedure TForm_sjd_zhcx_tj.lj_sjfChange(Sender: TObject);
begin
field_name.Enabled:=false;
sjf.Enabled:=false;
jg_combo.Enabled:=false;
jg_edit.Enabled:=false;
jg_sj.Enabled :=false;
end;
procedure TForm_sjd_zhcx_tj.BitBtn2Click(Sender: TObject);
var
cd:integer;
dwbm:string;
begin
dwbm:='';
if sd_dw.Text<>'' then
dwbm:=dwbm+copy(sd_dw.Text,1,2);
if sd_bm.Text<>'' then
dwbm:=dwbm+copy(sd_bm.Text,1,2);
cd:=length(trim(memo_cxtj.lines.text));
if cd>200 then
begin
showmessage('查询条件太复杂,请清除后重新设置!!');
abort;
end;
if trim(copy(trim(memo_cxtj.Lines.Text),cd-2,3))='and' then
memo_cxtj.Lines.Text:=copy(trim(memo_cxtj.Lines.Text),1,cd-3);
if trim(copy(trim(memo_cxtj.Lines.Text),cd-2,2))='or' then
memo_cxtj.Lines.Text:=copy(trim(memo_cxtj.lines.text),1,cd-2);
if memo_cxtj.Lines.Text<>'' then
begin
if dwbm<>'' then
memo_cxtj.Lines.Text:='(zgxh like '+QuotedStr(dwbm+'%')+') and '+memo_cxtj.Lines.Text;
end
else
begin
if dwbm<>'' then
memo_cxtj.Lines.Text:='(zgxh like '+QuotedStr(dwbm+'%')+')';
end;
close;
end;
procedure TForm_sjd_zhcx_tj.field_nameChange(Sender: TObject);
begin
sjf.Enabled:=true;
end;
procedure TForm_sjd_zhcx_tj.sjfChange(Sender: TObject);
begin
jg_combo.Enabled:=true;
jg_edit.Enabled:=true;
jg_sj.Enabled:=true;
end;
procedure TForm_sjd_zhcx_tj.jg_comboChange(Sender: TObject);
begin
lj_sjf.Enabled:=true;
bitbtn1.Enabled:=true;
end;
procedure TForm_sjd_zhcx_tj.lj_sjfKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then bitbtn1.SetFocus
else
key:=#0;
end;
procedure TForm_sjd_zhcx_tj.jg_editChange(Sender: TObject);
begin
lj_sjf.Enabled:=true;
bitbtn1.Enabled:=true;
end;
procedure TForm_sjd_zhcx_tj.jg_editKeyPress(Sender: TObject;
var Key: Char);
begin
ls_cxtj:=copy(field_name.text,pos('(',field_name.text)+1,pos(')',field_name.text)-pos('(',field_name.text)-1);
if (ls_cxtj='je') or (ls_cxtj='sl') then
if not (key in ['.',#13,#8,'0'..'9']) then key:=#0;
if key=#13 then
begin
if jg_edit.Text='' then abort;
lj_sjf.SetFocus;
end;
end;
procedure TForm_sjd_zhcx_tj.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key =#13 then
begin
Key := #0;
Perform(WM_NEXTDLGCTL,0,0);
end;
end;
procedure TForm_sjd_zhcx_tj.jg_sjChange(Sender: TObject);
begin
lj_sjf.Enabled:=true;
bitbtn1.Enabled:=true;
end;
procedure TForm_sjd_zhcx_tj.sd_dwChange(Sender: TObject);
var
dwbm:string;
begin
sd_bm.Enabled:=true;
bitbtn2.Enabled:=true;
dwbm:=copy(sd_dw.Text,1,2);
with gzda_dm.ADODataSet10 do begin
if active then active:=false;
commandtext:='select * from bmbmb where (dwbm=:dwbm) order by dwbm,bmbm';
Parameters.ParamByName('dwbm').Value:=dwbm;
open;
first;
sd_bm.Items.Clear;
while not eof do begin
sd_bm.Items.Add(fieldbyname('bmbm').AsString+'.'+fieldbyname('bmmc').AsString);
next;
end;
end;
sd_bm.Refresh;
end;
procedure TForm_sjd_zhcx_tj.jg_editExit(Sender: TObject);
var
gzze:real;
begin
if pos('工资总额',field_name.Text)<>0 then
begin
try
gzze:=strtofloat(jg_edit.Text);
except
showmessage('工资总额输入错误,请重新输入!!');
jg_edit.SetFocus;
abort;
end;
end;
end;
procedure TForm_sjd_zhcx_tj.FormActivate(Sender: TObject);
begin
cx_tjmc.Text:='';
cx_tjmc.SetFocus;
end;
procedure TForm_sjd_zhcx_tj.cx_tjmcExit(Sender: TObject);
begin
field_name.SetFocus;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?