📄 unit2.pas
字号:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, DBCtrls, Grids, DBGrids, DB, ADODB,
ComCtrls, XPMenu,inifiles;
type
Tform2 = class(TForm)
adoque: TADOQuery;
adoqueDSDesigner: TWideStringField;
adoqueDSDesigner2: TWideStringField;
adoqueDSDesigner3: TWideStringField;
adoqueDSDesigner4: TWideStringField;
adoqueDSDesigner5: TWideStringField;
adoqueDSDesigner6: TWideStringField;
adoqueDSDesigner7: TWideStringField;
adoqueDSDesigner8: TDateTimeField;
adoqueDSDesigner9: TBooleanField;
adods: TDataSource;
dbnav: TDBNavigator;
ADOCom: TADOCommand;
cbotype: TComboBox;
cboarea: TComboBox;
Label1: TLabel;
Label2: TLabel;
btnprint: TBitBtn;
btnreoprtcreate: TBitBtn;
GroupBox1: TGroupBox;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
PageControl2: TPageControl;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
Label7: TLabel;
cbounit: TComboBox;
dbgrid: TDBGrid;
rdoreport: TRadioGroup;
GroupBox2: TGroupBox;
edtreportname: TEdit;
lblreportcreate: TLabel;
Label3: TLabel;
btnreportcreate: TBitBtn;
GroupBox3: TGroupBox;
Label4: TLabel;
cbodataopen: TComboBox;
button4: TBitBtn;
GroupBox4: TGroupBox;
Label6: TLabel;
cbooldtable: TComboBox;
GroupBox5: TGroupBox;
memosql: TMemo;
btnsql: TBitBtn;
procedure btnreportcreateClick(Sender: TObject);
procedure cboareaChange(Sender: TObject);
procedure cbotypeChange(Sender: TObject);
procedure cbodataopenDropDown(Sender: TObject);
procedure cbodataopenChange(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure TabSheet2Show(Sender: TObject);
procedure cbooldtableDropDown(Sender: TObject);
procedure cbooldtableChange(Sender: TObject);
procedure btnreoprtcreateClick(Sender: TObject);
procedure btnprintClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btnsqlClick(Sender: TObject);
procedure cbounitChange(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
form2: Tform2;
tablename :string;
typeall,type1,type2,type3,type4,type5,type7:string;//保养报表类别
myinifile:tinifile;
implementation
uses Unit1,Unit3,Unit5,Unit6;
const
ScreenWidth: LongInt = 800;
ScreenHeight: LongInt = 600;
{$R *.dfm}
procedure Tform2.btnreportcreateClick(Sender: TObject);
begin
tablename:=edtreportname.Text;
btnprint.Enabled:=true;
if edtreportname.Text <>'' then
begin
case rdoreport.ItemIndex of
0:adocom.CommandText:='select * into '+edtreportname.Text +' from e_table where 类别="1"';
1:adocom.CommandText:='select * into '+edtreportname.Text +' from e_table where 类别="2"';
2:adocom.CommandText:='select * into '+edtreportname.Text +' from e_table where 类别="3"';
3:adocom.CommandText:='select * into '+edtreportname.Text +' from e_table where 类别="4"';
4:adocom.CommandText:='select * into '+edtreportname.Text +' from e_table where 类别="5"';
5:adocom.CommandText:='select * into '+edtreportname.Text +' from e_table where 类别="7"';
6:adocom.CommandText:='select * into '+edtreportname.Text +' from e_table where 类别="8"';
7:adocom.CommandText:='select * into '+edtreportname.Text +' from e_table where 类别="1" or 类别="2"';
8:adocom.CommandText:='select * into '+edtreportname.Text +' from e_table where 类别="1" or 类别="2" or 类别="7" or 类别="8"';
9:adocom.CommandText:='select * into '+edtreportname.Text +' from e_table where 类别="7" or 类别="8"';
10:adocom.CommandText:='select * into '+edtreportname.Text +' from e_table where 类别="1" or 类别="2" or 类别="3"';
11:adocom.CommandText:='select * into '+edtreportname.Text +' from e_table where 类别="1" or 类别="2" or 类别="3 or 类别="4"';
end;
adocom.Execute;
adoque.SQL.Clear;
adoque.SQL.Add('select * from '+edtreportname.Text );
adoque.Open;
frmmain.mnuprint.Enabled:=true;//打印菜单有效
ShowMessage('报表已成功创建');
end;
end;
procedure Tform2.cboareaChange(Sender: TObject);
begin
with adoque do
begin
if cboarea.Text='ALL' then
begin
close;
sql.clear;
sql.Add('select * from '+tablename );
open;
end
else
begin
close;
sql.clear;
sql.Add('select * from'+' '+ tablename +' where 区域='+'"'+cboarea.Text +'"' );
open;
end;
frmmain.statusbar1.Panels[1].Text:='共查询到'+inttostr(adoque.RecordCount)+'条信息'
end;
end;
procedure Tform2.cbotypeChange(Sender: TObject);
begin
with adoque do
begin
close;
sql.clear;
case strtoint(cbotype.Text) of
0:sql.Add('select * from'+' '+tablename );
1:sql.Add('select * from'+' '+tablename +' where 类别='+'"1"' );
2:sql.Add('select * from'+' '+tablename +' where 类别='+'"2"' );
3:sql.Add('select * from'+' '+tablename +' where 类别='+'"3"' );
4:sql.Add('select * from'+' '+tablename +' where 类别='+'"4"' );
7:sql.Add('select * from'+' '+tablename +' where 类别='+'"7"' );
8:sql.Add('select * from'+' '+tablename +' where 类别='+'"8"' );
end;
open;
frmmain.statusbar1.Panels[1].Text:='共查询到'+inttostr(adoque.RecordCount)+'条信息'
end;
end;
procedure Tform2.cbodataopenDropDown(Sender: TObject);
begin
try
frmmain.adocon.Open;
with Sender as TComboBox do
if Items.Count < 1 then
frmmain.adocon.GetTableNames(Items);
cbodataopen.Refresh ;
except
end;
cbodataopen.Items.Delete(cbodataopen.Items.IndexOf('e_table'));
cbodataopen.Items.Delete(cbodataopen.Items.IndexOf('pass'));
end;
procedure Tform2.cbodataopenChange(Sender: TObject);
begin
if cbodataopen.Text<>'' then
begin
tablename:=cbodataopen.Text;
btnprint.Enabled:=true;
adoque.Close;
adoque.SQL.Clear;
adoque.SQL.add('select * from '+cbodataopen.Text );
adoque.Open;
adods.DataSet:=adoque;
dbgrid.DataSource:=adods;
cboarea.Enabled:=true;
cbotype.Enabled:=true;
cbounit.Enabled:=true;
frmmain.mnuprint.Enabled:=true;//打印菜单有效
end
else
begin
button4.Enabled:=false;
end;
end;
procedure Tform2.Button4Click(Sender: TObject);
var msg:integer;
begin
msg:=messagedlg('确定要删除该数据表吗?',mtconfirmation,mbokcancel,1);
if msg=1 then
begin
adocom.CommandText:='drop table '+cbodataopen.Text;
adocom.Execute;
cbodataopen.DeleteSelected;
cbodataopen.Refresh;
end
else
begin
end;
end;
procedure Tform2.TabSheet2Show(Sender: TObject);
begin
edtreportname.Text:=formatdatetime('yymmdd',date);
edtreportname.SetFocus;
end;
procedure Tform2.cbooldtableDropDown(Sender: TObject);
begin
try
frmmain.adocon.Open;
with Sender as TComboBox do
if Items.Count < 1 then
frmmain.adocon.GetTableNames(Items);
cbooldtable.Refresh ;
except
end;
cbooldtable.Items.Delete(cbooldtable.Items.IndexOf('e_table'));
cbooldtable.Items.Delete(cbooldtable.Items.IndexOf('pass'));
end;
procedure Tform2.cbooldtableChange(Sender: TObject);
begin
if cbooldtable.Text<>'' then
begin
tablename:=cbooldtable.Text;
btnprint.Enabled:=true;
adoque.Close;
adoque.SQL.Clear;
adoque.SQL.add('select * from '+cbooldtable.Text );
adoque.Open;
adods.DataSet:=adoque;
dbgrid.DataSource:=adods;
cboarea.Enabled:=true;
cbotype.Enabled:=true;
cbounit.Enabled:=true;
frmmain.mnuprint.Enabled:=true;//打印菜单有效
end;
end;
procedure Tform2.btnreoprtcreateClick(Sender: TObject);
begin
application.CreateForm(Tfrmmaintable, frmmaintable);
frmmaintable.show;
end;
procedure Tform2.btnprintClick(Sender: TObject);
begin
application.CreateForm(Tfrmprint, frmprint);
frmprint.Close;
frmprint.QuickRep1.DataSet:=adoque;
frmprint.QRDBText1.DataSet:=adoque;
frmprint.QRDBText2.DataSet:=adoque;
frmprint.QRDBText3.DataSet:=adoque;
frmprint.QRDBText4.DataSet:=adoque;
frmprint.QRDBText5.DataSet:=adoque;
frmprint.QRDBText6.DataSet:=adoque;
frmprint.QRDBText7.DataSet:=adoque;
frmprint.QRDBText8.DataSet:=adoque;
frmprint.QRDBText9.DataSet:=adoque;
frmprint.QRDBText1.DataField:='单位';
frmprint.QRDBText2.DataField:='区域';
frmprint.QRDBText3.DataField:='类别';
frmprint.QRDBText4.DataField:='项目';
frmprint.QRDBText5.DataField:='工具';
frmprint.QRDBText6.DataField:='保养人';
frmprint.QRDBText7.DataField:='确认人';
frmprint.QRDBText8.DataField:='完成日';
frmprint.QRDBText9.DataField:='';
frmprint.quickrep1.preview;
end;
procedure Tform2.FormCreate(Sender: TObject);
begin
myinifile:=tinifile.Create(extractfilepath(paramstr(0))+'data.ini');
myinifile.ReadSection('username',(dbgrid.Columns.Items[5].PickList));// 读取INI文件中的用户
myinifile.ReadSection('username',(dbgrid.Columns.Items[6].PickList));
myinifile.ReadSection('area',(dbgrid.Columns.Items[1].PickList));
form2.Height:=300;
form2.Width:=500;
scaled := true;
if (screen.width <> ScreenWidth) then
begin
height := longint(height) * longint(screen.height) div ScreenHeight;
width := longint(width) * longint(screen.width) div ScreenWidth;
scaleBy(screen.width, ScreenWidth);
end;
end;
procedure Tform2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree; //关闭子窗体
frmmain.mnuprint.Enabled:=false; //打印菜单无效
end;
procedure Tform2.btnsqlClick(Sender: TObject);
begin
if memosql.Text <>'' then
begin
with adoque do
begin
close;
sql.clear;
sql.Add( memosql.Text);
open;
frmmain.statusbar1.Panels[1].Text:='共查询到'+inttostr(adoque.RecordCount)+'条信息'
end;
end;
end;
procedure Tform2.cbounitChange(Sender: TObject);
begin
with adoque do
begin
if cbounit.Text='ALL' then
begin
close;
sql.clear;
sql.Add('select * from '+tablename);
open;
frmmain.statusbar1.Panels[1].Text:='共有'+inttostr(adoque.RecordCount)+'条信息'
end
else
begin
close;
sql.clear;
sql.Add('select * from '+ tablename +' where 单位 = '+'"'+cbounit.Text+'"' );
open;
frmmain.statusbar1.Panels[1].Text:='共查询到'+inttostr(adoque.RecordCount)+'条信息'
end;
end;
end;
procedure Tform2.FormActivate(Sender: TObject);
var username:string;
begin
username:=frmmain.StatusBar1.Panels[3].Text;
if username<>'' then
begin
dbgrid.Enabled:=true;
end
else
begin
if (username<>'普通用户') and (username<>'') then
begin
button4.Enabled:=true;
end
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -