📄 unit4.pas
字号:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, FR_DSet, FR_DBSet, FR_Class, DB, ADODB, StdCtrls, Buttons,
ExtCtrls;
type
TForm4 = class(TForm)
GroupBox1: TGroupBox;
Panel1: TPanel;
ComboBox1: TComboBox;
ListBox1: TListBox;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
Label3: TLabel;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
frReport1: TfrReport;
frDBDataSet1: TfrDBDataSet;
ADOConnection1: TADOConnection;
RadioGroup1: TRadioGroup;
procedure LoadDWtoList(strxt:string);
procedure selectDB(_strsql:string;_Query: TADOQuery;select:boolean);
function getSqlstr(tj:string):string;
procedure LoadXTtoList();
procedure FormCreate(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure radioGroup1Click(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
function tform4.getSqlstr(tj:string):string;
var
strsql:string;
strxt,strdw:string;
begin
strdw:= listbox1.Items.Strings[listbox1.ItemIndex];
strxt:=combobox1.Text;
if listbox1.ItemIndex =0 then begin
if combobox1.ItemIndex =0 then begin
if tj='全部' then
strsql:='select * from try order by 单位'
else
strsql:='select * from try where '+tj+' between '''+edit1.Text+
''' and '''+edit2.Text+'''order by 单位';
end
else begin
if tj='全部' then
strsql:='select * from try where 单位 in(select 单位 from tdw where '
+'所属系统 ='''+strxt+''') order by 单位'
else
strsql:='select * from try where 单位 in(select 单位 from tdw where '
+'所属系统 ='''+strxt+''') and '+tj+' between '''+edit1.Text+
''' and '''+edit2.Text+''' order by 单位';
end;
end
else begin
if tj='全部' then
strsql:='select * from try where 单位='''+strdw+''' order by 单位'
else
strsql:='select * from try where 单位='''+strdw+''' and '+tj+' between '''+edit1.Text+
''' and '''+edit2.Text+''' order by 单位';
end;
result:=strsql;
end;
procedure tform4.LoadDWtoList(strxt:string);
var
strsql:string;
begin
if strxt='所有单位' then
strsql:='select 单位 from tdw order by 单位编号'
else
strsql:='select 单位 from tdw where 所属系统='''+strxt+''' order by 单位编号';
selectdb(strsql,adoquery1,true);
listbox1.Clear;
if adoquery1.RecordCount =0 then begin
exit;
end;
listbox1.Items.BeginUpdate;
listbox1.Items.Add('所有单位');
while not adoquery1.Eof do
begin
listbox1.Items.Add(adoquery1.FieldValues['单位']);
ADOquery1.Next;
end;
ADOquery1.Close;
listbox1.Items.EndUpdate;
//combobox1.ItemIndex :=0;
end;
procedure TForm4.selectDB(_strsql:string;_Query: TADOQuery;select:boolean);
begin
_query.Close;
_query.SQL.Text:= _strsql;
if select then _query.Open
else
_query.ExecSQL;
end;
procedure TForm4.LoadXTtoList();
var
strsql:string;
begin
strsql:='select 所属系统 from txt order by 系统编号';
selectdb(strsql,adoquery1,true);
combobox1.Items.Clear;
if adoquery1.RecordCount =0 then begin
exit;
end;
combobox1.Items.BeginUpdate;
combobox1.Items.Add('所有单位');
adoquery1.First;
while not adoquery1.Eof do
begin
combobox1.Items.Add(adoquery1.FieldValues['所属系统']);
//tmptree.ImageIndex:=0;
ADOquery1.Next;
end;
combobox1.Items.EndUpdate ;
ADOquery1.Close;
//combobox1.Items :=listbox1.Items ;
combobox1.ItemIndex:=0;
end;
procedure TForm4.FormCreate(Sender: TObject);
begin
LoadXTtoList();
LoadDWtoList('所有单位');
end;
procedure TForm4.ComboBox1Change(Sender: TObject);
begin
loaddwtolist(combobox1.Text);
end;
procedure TForm4.BitBtn2Click(Sender: TObject);
var
_tj:string;
strsql:string;
begin
if listbox1.ItemIndex<0 then begin
showmessage('请先选择要打印的单位');
listbox1.SetFocus;
exit;
end;
case RadioGroup1.ItemIndex of
0:
_tj:='全部';
1: begin
_tj:='档案号';
if (edit1.Text='') or (edit2.Text='') then begin
showmessage('您选择了按档案号打印,请输入要打印的档案号范围');
edit1.SetFocus;
exit;
end;
if edit1.Text > edit2.Text then begin
showmessage('您输入的档案号下标范围大于上标范围,这是不正确的');
edit1.SetFocus;
exit;
end;
end;
2: begin
_tj:='人事代理合同编号';
if (edit1.Text='') or (edit2.Text='') then begin
showmessage('您选择了按人事代理合同编号打印,请输入要打印的人事代理合同编号范围');
edit1.SetFocus;
exit;
end;
if edit1.Text > edit2.Text then begin
showmessage('您输入的人事代理合同编号下标范围大于上标范围,这是不正确的');
edit1.SetFocus;
exit;
end;
end;
end;
strsql:=getSqlstr(_tj);
//showmessage(getSqlstr(_tj));
try
selectdb(strsql,adoquery1,true);
//datasource1.DataSet:=adoquery1;
frReport1.ShowReport;
except
showmessage('生成报表时发生错误,建议仔细阅读帮助文件的打印部分,如果问题依旧,请联系我们');
end;
end;
procedure TForm4.BitBtn1Click(Sender: TObject);
var
_tj:string;
strsql:string;
begin
if listbox1.ItemIndex <0 then begin
showmessage('请先选择要打印的单位');
listbox1.SetFocus;
exit;
end;
case RadioGroup1.ItemIndex of
0:
_tj:='全部';
1: begin
_tj:='档案号';
if (edit1.Text='') or (edit2.Text='') then begin
showmessage('您选择了按档案号打印,请输入要打印的档案号范围');
edit1.SetFocus;
exit;
end;
if edit1.Text > edit2.Text then begin
showmessage('您输入的档案号下标范围大于上标范围,这是不正确的');
edit1.SetFocus;
exit;
end;
end;
2: begin
_tj:='人事代理合同编号';
if (edit1.Text='') or (edit2.Text='') then begin
showmessage('您选择了按人事代理合同编号打印,请输入要打印的人事代理合同编号范围');
edit1.SetFocus;
exit;
end;
if edit1.Text > edit2.Text then begin
showmessage('您输入的人事代理合同编号下标范围大于上标范围,这是不正确的');
edit1.SetFocus;
exit;
end;
end;
end;
strsql:=getSqlstr(_tj);
//showmessage(getSqlstr(_tj));
try
selectdb(strsql,adoquery1,true);
//datasource1.DataSet:=adoquery1;
frReport1.PrepareReport;
frReport1.PrintPreparedReportDlg;
except
showmessage('生成报表时发生错误,建议仔细阅读帮助文件的打印部分,如果问题依旧,请联系我们');
end;
end;
procedure TForm4.BitBtn4Click(Sender: TObject);
begin
self.Close;
end;
procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
end;
procedure TForm4.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0: begin
edit1.Enabled:=false;
edit2.enabled:=false;
end
else begin
edit1.enabled:=true;
edit2.enabled:=true;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -