📄 unit1.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 + -