📄 tgl.~pas
字号:
unit tgl;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, WinSkinData, SkinCaption, DB, ADODB, StdCtrls, Buttons, Grids,
DBGrids, ExtCtrls, ImgList, AppEvnts, AAFont, AACtrls, AAFontDialog,
Menus;
type
TForm1 = class(TForm)
SkinData1: TSkinData;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
ADOConnection1: TADOConnection;
GroupBox1: TGroupBox;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
BitBtn1: TBitBtn;
CheckBox4: TCheckBox;
BitBtn2: TBitBtn;
Timer1: TTimer;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
ImageList1: TImageList;
ApplicationEvents1: TApplicationEvents;
SkinCaption1: TSkinCaption;
GroupBox2: TGroupBox;
AALabel1: TAALabel;
AALabel2: TAALabel;
GroupBox3: TGroupBox;
GroupBox4: TGroupBox;
GroupBox5: TGroupBox;
CheckBox5: TCheckBox;
ADOQlist1: TADOQuery;
DataSlist1: TDataSource;
DBGrid2: TDBGrid;
ADOQlist1no: TAutoIncField;
ADOQlist1ch: TStringField;
ADOQlist1gd: TStringField;
ADOQlist1fcsj: TDateTimeField;
ADOQlist1hs: TStringField;
ADOQlist1jh: TStringField;
DBGrid3: TDBGrid;
ADOQlist2: TADOQuery;
DataSlist2: TDataSource;
DBGrid4: TDBGrid;
DataSlist3: TDataSource;
ADOQlist3: TADOQuery;
ApplicationEvents2: TApplicationEvents;
ApplicationEvents3: TApplicationEvents;
ApplicationEvents4: TApplicationEvents;
ADOQcount: TADOQuery;
ADOQsl: TADOQuery;
ADOQlist2no: TAutoIncField;
ADOQlist2ch: TStringField;
ADOQlist2gd: TStringField;
ADOQlist2fcsj: TDateTimeField;
ADOQlist2hs: TStringField;
ADOQlist2jh: TStringField;
ADOQlist3no: TAutoIncField;
ADOQlist3ch: TStringField;
ADOQlist3gd: TStringField;
ADOQlist3fcsj: TDateTimeField;
ADOQlist3hs: TStringField;
ADOQlist3jh: TStringField;
GroupBox6: TGroupBox;
AALabel3: TAALabel;
cbrq: TCheckBox;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
ADOClist: TADOConnection;
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure ApplicationEvents2Message(var Msg: tagMSG;
var Handled: Boolean);
procedure ApplicationEvents3Message(var Msg: tagMSG;
var Handled: Boolean);
procedure ApplicationEvents4Message(var Msg: tagMSG;
var Handled: Boolean);
procedure DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure DBGrid3DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure DBGrid4DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure AALabel3Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Uabout, Ulist;
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
var s1,a1,a2,a3,a4,a5:string;
bt:LONGBOOL;
begin
form1.Caption:='砼生产监视系统[v3.010] -----'+'当前(生产)日期:'+ formatdatetime('yyyy-mm-dd',now)+'(系统运行时必须保证日期正确)';
IF NOW()>STRTODATE('2007-12-31') THEN
BEGIN
SHOWMESSAGE('对不起,软件过期,请联系作者:林金杉 13857655787 付费800元!');
exit
END;
s1:='fzt='''+'test'+'''';
if checkbox1.Checked=true then s1:=s1+'or FZt='''+'正在生产'+'''';
if checkbox2.Checked=true then s1:=s1+'or FZt='''+'等待生产'+'''';
if checkbox3.Checked=true then s1:=s1+'or FZt='''+'生产完成'+'''';
if checkbox5.Checked=true then s1:=s1+'or FZt='''+'等待配比'+'''';
//showmessage('select fzt,FHtdw,FGcmc,FJzbw,FJzfs,FGls,FJhrq,FTpz,FTld,FJhsl,FScbt,FWcsl,FLjcs from TRwd where '+s1);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select frwdh,fhtbh,fzt,FHtdw,FGcmc,FJzbw,FJzfs,FGls,FJhrq,FTpz,FTld,FJhsl,FScbt,FWcsl,FLjcs from TRwd where '+s1+' order by FJhrq');
adoquery1.Open;
dbgrid1.Columns[0].FieldName:='frwdh';
dbgrid1.Columns[0].Title.caption:='任务单';
dbgrid1.Columns[0].Width:=45;
///FGcmc,FJzbw,FJzfs,FGls,FJhrq,FTpz,FTld,FJhsl,FScbt,FWcsl,FLjcs
dbgrid1.Columns[1].FieldName:='Fhtbh';
dbgrid1.Columns[1].Title.caption:='合同号';
dbgrid1.Columns[1].Width:=60;
dbgrid1.Columns[2].FieldName:='fhtdw';
dbgrid1.Columns[2].Title.caption:='施工单位';
dbgrid1.Columns[2].Width:=130;
///FGcmc,FJzbw,FJzfs,FGls,FJhrq,FTpz,FTld,FJhsl,FScbt,FWcsl,FLjcs
dbgrid1.Columns[3].FieldName:='FGcmc';
dbgrid1.Columns[3].Title.caption:='工地名称';
dbgrid1.Columns[3].Width:=170;
dbgrid1.Columns[4].FieldName:='FJzbw';
dbgrid1.Columns[4].Title.caption:='施工部位';
dbgrid1.Columns[4].Width:=140;
dbgrid1.Columns[5].FieldName:='FJhsl';
dbgrid1.Columns[5].Title.caption:='预计量';
dbgrid1.Columns[5].Width:=60;
dbgrid1.Columns[6].FieldName:='FWcsl';
dbgrid1.Columns[6].Title.caption:='发货量';
dbgrid1.Columns[6].Width:=60;
dbgrid1.Columns[9].FieldName:='FJzfs';
dbgrid1.Columns[9].Title.caption:='泵否';
dbgrid1.Columns[9].Width:=43;
//dbgrid1.Columns[4].FieldName:='FGls';
//dbgrid1.Columns[4].Title.caption:='运距';
//dbgrid1.Columns[4].Width:=40;
//dbgrid1.Columns[5].FieldName:='FJhrq';
//dbgrid1.Columns[5].Title.caption:='生产日期';
//dbgrid1.Columns[5].Width:=100;
dbgrid1.Columns[7].FieldName:='FTpz';
dbgrid1.Columns[7].Title.caption:='砼型号';
dbgrid1.Columns[7].Width:=65;
dbgrid1.Columns[8].FieldName:='FTld';
dbgrid1.Columns[8].Title.caption:='塌落度';
dbgrid1.Columns[8].Width:=65;
dbgrid1.Columns[10].FieldName:='Fzt';
dbgrid1.Columns[10].Title.caption:='生产状态';
dbgrid1.Columns[10].Width:=58;
dbgrid1.Columns[11].FieldName:='FJhrq';
dbgrid1.Columns[11].Title.caption:='生产日期';
dbgrid1.Columns[11].Width:=68;
//dbgrid1.Columns[9].FieldName:='FLjcs';
//dbgrid1.Columns[9].Title.caption:='已发车数';
//dbgrid1.Columns[9].Width:=60;
//dbgrid1.Columns[10].FieldName:='FScbt';
//dbgrid1.Columns[10].Title.caption:='机号';
//dbgrid1.Columns[10].Width:=35;
tstringgrid(dbgrid1).DefaultRowHeight :=24;
//进行计算//////////////////
if cbrq.Checked=false then
s1:='fscbt='''+'1'+''' and fscrq='''+formatdatetime('yyyy-mm-dd',now)+''''
else
s1:='fscbt='''+'1'+'''';
adoqcount.Close;
adoqcount.SQL.Clear;
adoqcount.SQL.Add('select top 10 * from tjlb where '+s1+' order by fscrq desc,fccsj desc');
adoqcount.Open;
//清空表//
adoqsl.Close;
adoqsl.SQL.Clear;
adoqsl.SQL.Add('delete from list1');
adoqsl.ExecSQL;
//写入//
while not adoqcount.Eof do
begin
a1:=(adoqcount.fieldbyname('fshch').AsString+'>'+adoqcount.fieldbyname('fsjxm').AsString);
//showmessage(a1);
a2:=(adoqcount.fieldbyname('fgcmc').AsString);
a3:=(adoqcount.fieldbyname('fccsj').AsString);
try
a4:=(floattostr(round((strtotime(adoqcount.fieldbyname('fccsj').AsString)-strtotime(adoqcount.fieldbyname('fdcsj').AsString))/3*4*24*60)));
///////
if strtofloat(a4)>0 then
begin
if strtofloat(a4)>30 then a4:='超时'
else a4:=a4+'分';
end
else
begin
a4:=floattostr(strtofloat(a4)+24*60);
a4:=a4+'分';
end;
///////
except
a4:='不明';
end;
a5:=(adoqcount.fieldbyname('fscrq').AsString);
//判断是否是过期数据(6小时后数据过期)/有点问题没解决/
try
if cbrq.Checked=false then
bt:=((round((strtotime(formatdatetime('hh:nn',now))-strtotime(adoqcount.fieldbyname('fccsj').AsString))*24*60)<360))
else
bt:=false;
//bt:=((round((strtotime(formatdatetime('hh:nn',now))-strtotime(adoqcount.fieldbyname('fccsj').AsString))*24*60)>360) or (round((strtotime(formatdatetime('hh:nn',now))-strtotime(adoqcount.fieldbyname('fccsj').AsString))*24*60)<0));
except
bt:=false;
end;
if not bt then
//if ((round((strtotime(formatdatetime('hh:nn',now))-strtotime(adoqcount.fieldbyname('fccsj').AsString))*24*60)<360)) then
begin
////写入数据////////////////////////////
adoqsl.Close;
adoqsl.SQL.Clear;
adoqsl.SQL.Add('insert into list1(ch,gd,fcsj,hs,jh,rq) values('''+a1+''','''+a2+''','''+a3+''','''+a4+''','''+'1'+''','''+a5+''')');
adoqsl.ExecSQL;
end;
adoqcount.Next;
end;
///////////////////////////
///1号机///////////////
s1:='jh='''+'1'+'''';
adoqlist1.Close;
adoqlist1.SQL.Clear;
adoqlist1.SQL.Add('select * from list1 where '+s1+' order by rq desc,fcsj desc');
adoqlist1.Open;
dbgrid2.Columns[0].FieldName:='ch';
dbgrid2.Columns[0].Title.caption:='车号';
dbgrid2.Columns[0].Width:=65;
dbgrid2.Columns[1].FieldName:='gd';
dbgrid2.Columns[1].Title.caption:='工地';
dbgrid2.Columns[1].Width:=161;
dbgrid2.Columns[2].FieldName:='fcsj';
dbgrid2.Columns[2].Title.caption:='发车';
dbgrid2.Columns[2].Width:=45;
dbgrid2.Columns[3].FieldName:='hs';
dbgrid2.Columns[3].Title.caption:='耗时';
dbgrid2.Columns[3].Width:=33;
TStringGrid(DBGrid2).DefaultRowHeight:=24;
///////////////////////
//进行计算//222222////////////////
if cbrq.Checked=false then
s1:='fscbt='''+'2'+''' and fscrq='''+formatdatetime('yyyy-mm-dd',now)+''''
else
s1:='fscbt='''+'2'+'''';
adoqcount.Close;
adoqcount.SQL.Clear;
adoqcount.SQL.Add('select top 10 * from tjlb where '+s1+' order by fscrq desc,fccsj desc');
adoqcount.Open;
//写入//
while not adoqcount.Eof do
begin
a1:=(adoqcount.fieldbyname('fshch').AsString+'>'+adoqcount.fieldbyname('fsjxm').AsString);
//showmessage(a1);
a2:=(adoqcount.fieldbyname('fgcmc').AsString);
a3:=(adoqcount.fieldbyname('fccsj').AsString);
try
a4:=(floattostr(round((strtotime(adoqcount.fieldbyname('fccsj').AsString)-strtotime(adoqcount.fieldbyname('fdcsj').AsString))/3*4*24*60)));
///////
if strtofloat(a4)>0 then
begin
if strtofloat(a4)>30 then a4:='超时'
else a4:=a4+'分';
end
else
begin
a4:=floattostr(strtofloat(a4)+24*60);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -