⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit2.pas

📁 一个DEPHI设备保养系统全套,不错的设计参考
💻 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 + -