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

📄 unit1.pas

📁 一个DEPHI设备保养系统全套,不错的设计参考
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Grids, DBGrids, DBCtrls, ADODB, DB, Buttons,
  ComCtrls, Menus, ImgList, ToolWin, XPMenu,inifiles;

type
  Tfrmmaintable = class(TForm)
    adoque: TADOQuery;
    adoqueDSDesigner: TWideStringField;
    adoqueDSDesigner2: TWideStringField;
    adoqueDSDesigner3: TWideStringField;
    adoqueDSDesigner4: TWideStringField;
    adoqueDSDesigner5: TWideStringField;
    adoqueDSDesigner6: TWideStringField;
    adoqueDSDesigner7: TWideStringField;
    adods: TDataSource;
    Label3: TLabel;
    ToolBar1: TToolBar;
    ImageList1: TImageList;
    tblfirst: TToolButton;
    tblpri: TToolButton;
    tblnext: TToolButton;
    tbllast: TToolButton;
    ToolButton2: TToolButton;
    tbladd: TToolButton;
    tbldel: TToolButton;
    tbledt: TToolButton;
    tblok: TToolButton;
    tblcancel: TToolButton;
    tblref: TToolButton;
    ToolButton1: TToolButton;
    tblprint: TToolButton;
    tblclose: TToolButton;
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    cbotype: TComboBox;
    cboarea: TComboBox;
    Label4: TLabel;
    dbgrid: TDBGrid;
    cbounit: TComboBox;
    Label5: TLabel;
    cboorderby: TComboBox;
    Shape1: TShape;
    adoqueDSDesigner10: TWideStringField;
    adoqueDSDesigner11: TWideStringField;
    procedure FormCreate(Sender: TObject);
    procedure cboareaChange(Sender: TObject);
    procedure cbotypeChange(Sender: TObject);
    procedure mnudataClick(Sender: TObject);
    procedure mnufileprintpreClick(Sender: TObject);
    procedure tblfirstClick(Sender: TObject);
    procedure tblpriClick(Sender: TObject);
    procedure tblnextClick(Sender: TObject);
    procedure tbllastClick(Sender: TObject);
    procedure tbladdClick(Sender: TObject);
    procedure tbldelClick(Sender: TObject);
    procedure tbledtClick(Sender: TObject);
    procedure tblokClick(Sender: TObject);
    procedure tblcancelClick(Sender: TObject);
    procedure tblrefClick(Sender: TObject);
    procedure tbltableClick(Sender: TObject);
    procedure tblprintClick(Sender: TObject);
    procedure tblcloseClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure cbounitChange(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure dbgridDrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure cbounitClick(Sender: TObject);
    procedure cboorderbyChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmmaintable: Tfrmmaintable;
  myinifile:tinifile; //声明INI文件
  tablename :string;   //当前查询表格的名称
  savesql:string;//当前执行的SQL语句的内容
implementation

uses Unit2, Unit3,unit5;


const
  ScreenWidth: LongInt = 800;
  ScreenHeight: LongInt = 600;


{$R *.dfm}

procedure Tfrmmaintable.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));

frmmaintable.Height:=300;          //初始窗体大小
frmmaintable.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;

adoque.Connection:=frmmain.adocon;    //建立数据链接
adoque.SQL.Clear;
tablename:='e_table';
adoque.SQL.Add('select * from '+tablename);
adoque.Open;
adods.DataSet:=adoque;
dbgrid.DataSource:=adods;
savesql:=adoque.SQL.Text;      //保存当前查询语句的内容
frmmain.statusbar1.Panels[1].Text:='共有'+inttostr(adoque.RecordCount)+'条信息' ;
end;

procedure Tfrmmaintable.cboareaChange(Sender: TObject);
begin
with adoque do
begin
if cboarea.Text='ALL' then
begin
close;
sql.clear;
sql.Add('select * from '+tablename);
open;
savesql:=adoque.SQL.Text;      //保存当前查询语句的内容
frmmain.statusbar1.Panels[1].Text:='共有'+inttostr(adoque.RecordCount)+'条信息'
end
else
begin
close;
sql.clear;
sql.Add('select * from e_table where 区域 = '+'"'+cboarea.Text+'"' );
open;
savesql:=adoque.SQL.Text;      //保存当前查询语句的内容:=adoque.SQL.Text;      //保存当前查询语句的内容
frmmain.statusbar1.Panels[1].Text:='共查询到'+inttostr(adoque.RecordCount)+'条信息'
end;
end;
end;

procedure Tfrmmaintable.cbotypeChange(Sender: TObject);
begin
with adoque do
begin
close;
sql.clear;
case strtoint(cbotype.Text) of
0:sql.Add('select * from e_table');
1:sql.Add('select * from e_table where 类别='+'"1"' );
2:sql.Add('select * from e_table where 类别='+'"2"' );
3:sql.Add('select * from e_table  where 类别='+'"3"' );
4:sql.Add('select * from e_table where 类别='+'"4"' );
5:sql.Add('select * from e_table where 类别='+'"5"' );
7:sql.Add('select *  from e_table where 类别='+'"7"' );
8:sql.Add('select * from e_table where 类别='+'"8"' );
end;
open;
savesql:=adoque.SQL.Text;      //保存当前查询语句的内容
frmmain.statusbar1.Panels[1].Text:='共查询到'+inttostr(adoque.RecordCount)+'条信息'
end;
end;


procedure Tfrmmaintable.mnudataClick(Sender: TObject);
begin
form2.Show;
end;

procedure Tfrmmaintable.mnufileprintpreClick(Sender: TObject);
begin
tblprint.Click;
end;


procedure Tfrmmaintable.tblfirstClick(Sender: TObject);
begin
adoque.First;
end;

procedure Tfrmmaintable.tblpriClick(Sender: TObject);
begin
if not adoque.Bof then
begin
adoque.Prior;
end;
end;

procedure Tfrmmaintable.tblnextClick(Sender: TObject);
begin
if not adoque.Eof then
begin
adoque.Next;
end
end;

procedure Tfrmmaintable.tbllastClick(Sender: TObject);
begin
adoque.Last;
end;

procedure Tfrmmaintable.tbladdClick(Sender: TObject);
begin
tblok.Enabled:=true;
tblcancel.Enabled:=true;
adoque.Append;
end;

procedure Tfrmmaintable.tbldelClick(Sender: TObject);
var bldelete :integer;
begin
bldelete:=messagedlg('是否确定要删除这条信息',mtconfirmation,mbokcancel,0);
if bldelete=1 then
adoque.Delete
else
end;

procedure Tfrmmaintable.tbledtClick(Sender: TObject);
begin
tblok.Enabled:=true;
tblcancel.Enabled:=true;
adoque.Edit;
end;

procedure Tfrmmaintable.tblokClick(Sender: TObject);
begin
adoque.UpdateRecord;
end;

procedure Tfrmmaintable.tblcancelClick(Sender: TObject);
begin
adoque.Cancel;
end;

procedure Tfrmmaintable.tblrefClick(Sender: TObject);
begin
adoque.Refresh;
tblok.Enabled:=false;
tblcancel.Enabled:=false;
end;

procedure Tfrmmaintable.tbltableClick(Sender: TObject);
begin
application.CreateForm(Tform2, form2);
form2.show;
end;

procedure Tfrmmaintable.tblprintClick(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 Tfrmmaintable.tblcloseClick(Sender: TObject);
begin
close;
end;



procedure Tfrmmaintable.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
Action := caFree;  //半闭子窗体
frmmain.mnuprint.Enabled:=false;  //打印菜单无效
end;


procedure Tfrmmaintable.FormActivate(Sender: TObject);
var username :string;
begin
username:=frmmain.StatusBar1.Panels[3].Text;
if (username<>'普通用户') and (username<>'')then
begin
frmmaintable.tbladd.Enabled:=true;
frmmaintable.tbladd.Enabled:=true;
frmmaintable.tbldel.Enabled:=true;
frmmaintable.tbledt.Enabled:=true;
frmmaintable.tblref.Enabled:=true;
frmmaintable.dbgrid.ReadOnly:=false;
frmmaintable.dbgrid.Enabled:=true;
end
end;

procedure Tfrmmaintable.dbgridDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var i:integer;
begin
for i:=1 to (adoque.RecordCount -1) do
if adoque.Recordset.Fields['重要性'].Value='yes' then
dbgrid.Canvas.Brush.Color:=clred;
end;



procedure Tfrmmaintable.cbounitChange(Sender: TObject);
begin           //区域列表内容变更

with adoque do
if cbounit.Text='ALL' then
begin
close;
sql.clear;
sql.Add('select * from '+tablename);
open;
savesql:=adoque.SQL.Text;      //保存当前查询语句的内容
frmmain.statusbar1.Panels[1].Text:='共有'+inttostr(adoque.RecordCount)+'条信息'
end
else
begin
close;
sql.clear;
sql.Add('select * from e_table where 单位 = '+'"'+cbounit.Text+'"' );
open;
savesql:=adoque.SQL.Text;      //保存当前查询语句的内容
frmmain.statusbar1.Panels[1].Text:='共查询到'+inttostr(adoque.RecordCount)+'条信息';
end
end;

procedure Tfrmmaintable.cbounitClick(Sender: TObject);
begin
with cboarea do
if cbounit.Text ='PM' then
begin
items.Clear;
items.Add('ALL');
Items.Add('洗净机');
Items.Add('退火炉');
Items.Add('黑化炉');
Items.Add('自动化');
Items.Add('PRESS');
Items.Add('CF机台');
Items.Add('MF机台');
Items.Add('STABI');
Items.Add('ROBOT');
Items.Add('MF点焊机');
Items.Add('CF点焊机');
Items.Add('回归系统');
end
else
begin
if cbounit.Text ='BC' then
begin
items.Clear;
items.Add('ALL');
Items.Add('DAG');
Items.Add('EXP');
Items.Add('MW');
Items.Add('PW');
Items.Add('RES');
Items.Add('MW');
end
else
begin
items.Clear;
items.Add('ALL');
Items.Add('GREEN');
Items.Add('BLUE');
Items.Add('RED');
Items.Add('FILM');
Items.Add('AL');
end
end;
end;

procedure Tfrmmaintable.cboorderbyChange(Sender: TObject);
begin
adoque.Close;
adoque.SQL.Clear;
adoque.SQL.Add(savesql+' order by '+cboorderby.Text);
adoque.Open;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -