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

📄 tgl.~pas

📁 一套专门为商品混凝土生产企业开发的生产部生产状态监控系统~本系统要上海思伟生产系统支持
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
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 + -