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

📄 ql_data.pas

📁 delphi6.0电子寻更源程序,用来计算保安有无查抄
💻 PAS
字号:
unit ql_data;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls,dbtables,db, ExtCtrls, ComCtrls,bde, Buttons, RXDice, RXCtrls;

type
  TclearForm = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Bevel1: TBevel;
    E_DATE1: TDateTimePicker;
    E_DATE2: TDateTimePicker;
    Button1: TBitBtn;
    Label1: TLabel;
    Label2: TLabel;
    BitBtn1: TBitBtn;
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure bfyear(date1,date2:tdate);
    procedure FormShow(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  clearForm: TclearForm;

implementation

uses dm_xjysxx_view_pas;

{$R *.DFM}

procedure TclearForm.Button2Click(Sender: TObject);
begin
  close;
end;

procedure TclearForm.FormCreate(Sender: TObject);
begin
  E_DATE1.DATE:=date;
  E_DATE2.DATE:=date;

end;


procedure TclearForm.Button1Click(Sender: TObject);
var
  year1,year2,mm,dd:word;
  L_m1,l_m2,L_M12:tdate;
  l_I:INTEGER;
begin
  try
    if E_DATE2.DATE<E_Date1.DATE then
       begin
         Application.MessageBox('起始日期必須小於等於結束日期','消息',MB_ICONINFORMATION);
         exit;
       end;
  except
    on e:EConvertError do
       begin
         Application.MessageBox('輸入的時間不正確','消息',MB_ICONINFORMATION);
         exit;
       end;
  end;
  if Application.MessageBox('確實要清理巡更資訊嗎?','消息', MB_ICONINFORMATION+MB_OKCANCEL) = IDCANCEL then
     exit;
  decodedate(E_DATE1.DATE,year1,mm,dd);
  decodedate(E_DATE2.DATE,year2,mm,dd);
  if year1<year2 then
    BEGIN
      L_M1:=strtodate(inttostr(year1)+'-12-31');
      L_m2:=strtodate(inttostr(year2)+'-01-01');
      BFYEAR(E_DATE1.DATE,L_m1);
      BFYEAR(L_M2,E_DATE2.DATE);
      FOR l_i:=YEAR1+1 to year2-1 do
        BEGIN
          l_M12:=STRTODATE(INTtOSTR(L_I)+'-12-31');
          l_m1:=strtodate(inttostr(l_i)+'-01-01');
          bfyear(l_m1,l_m12);
        end;
    end
  ELSE
  	BFYEAR(E_DATE1.DATE,E_DATE2.DATE);
  Application.MessageBox('資料清理完畢!','消息',MB_ICONINFORMATION);
  clearForm.Close;
  with dm_xjysxx_view.q_temp do
    begin
    close;
    open;
    dm_xjysxx_view.q_del.close;
    dm_xjysxx_view.q_del.sql.clear;
    dm_xjysxx_view.q_del.sql.Add('delete  from temp');
    dm_xjysxx_view.q_del.execsql;
    dm_xjysxx_view.q_del.close;
    dm_xjysxx_view.q_del.sql.clear;
    dm_xjysxx_view.q_del.sql.Add('select * from temp');
    dm_xjysxx_view.q_del.open;
     while not eof do
       begin
       dm_xjysxx_view.q_del.append;
       dm_xjysxx_view.q_del.edit;
       dm_xjysxx_view.q_del.fieldbyname('pdate').asdatetime:=fieldbyname('pdate').asdatetime;
       dm_xjysxx_view.q_del.fieldbyname('ptime').asdatetime:=fieldbyname('ptime').asdatetime;
       dm_xjysxx_view.q_del.fieldbyname('pencode').asstring:=fieldbyname('pencode').asstring;
       dm_xjysxx_view.q_del.fieldbyname('workercode').asstring:=fieldbyname('workercode').asstring;
       dm_xjysxx_view.q_del.fieldbyname('node').asstring:=fieldbyname('node').asstring;
       dm_xjysxx_view.q_del.fieldbyname('pstatu').asstring:=fieldbyname('pstatu').asstring;
       dm_xjysxx_view.q_del.fieldbyname('linename').asstring:=fieldbyname('linename').asstring;
       dm_xjysxx_view.q_del.fieldbyname('nodeplace').asstring:=fieldbyname('nodeplace').asstring;
       dm_xjysxx_view.q_del.fieldbyname('nodename').asstring:=fieldbyname('nodename').asstring;
       dm_xjysxx_view.q_del.fieldbyname('lseq').asstring:=fieldbyname('lseq').asstring;
       dm_xjysxx_view.q_del.fieldbyname('workername').asstring:=fieldbyname('workername').asstring;
       dm_xjysxx_view.q_del.post;
       next;
       end;
    dm_xjysxx_view.q_xjysxx_view.close;
    dm_xjysxx_view.q_xjysxx_view.open;
    dm_xjysxx_view.q_xjysxx_view.Filter:='';
    dm_xjysxx_view.q_xjysxx_view.Filtered:=false;
    end;
end;

procedure tclearform.bfyear(date1:tdate;date2:tdate);
const
  DescStr = 'Driver Name: %s'#13#10'AliasName: %s'#13#10 +
            'Text: %s'#13#10'Physical Name/Path: %s';
var
  sql1:tquery;
  l_filename:string;
  yearnow,mm,dd:word;
  tablecc:ttable;
  dbDes: DBDesc;
begin
	  Check(DbiGetDatabaseDesc('GYXGDB', @dbDes));
    sql1:=tquery.create(clearform);
    sql1.DatabaseName:='GYXGDB';
//    sql1.datasource:=dm_xjysxx_viewDataSourcet_opera;
    sql1.SQL.clear;
    sql1.sql.add('SELECT * FROM PATROLREC WHERE (Pdate >=:l_p1) and (Pdate <=:l_p2)');
    sql1.close;
    sql1.prepare;
    sql1.params[0].asdate:=date1;
    sql1.params[1].asdate:=date2;
    sql1.execsql;
    sql1.active:=true;
    if sql1.isempty then
         exit
    else
      begin
        decodedate(date1,yearnow,mm,dd);
		    l_filename:=dbdes.szphyname+'\bf'+inttostr(yearnow)+'.db';
//        l_filename:='bf'+inttostr(yearnow)+'.db';
        tablecc:=ttable.create(clearform);
        if fileexists(l_filename) then
           begin
             tablecc.DatabaseName := 'GYXGDB';
             tablecc.TableType := ttParadox	;
             tablecc.tablename:=l_filename;
             tablecc.batchmove(sql1,batAppend);
             dm_xjysxx_view.t_PATROLREC.batchmove(sql1,batdelete);
           end
        else
           begin
//             if not Tablecc.Exists then
                 with Tablecc do
                 begin
                     Active := False;
                     DatabaseName := 'GYXGDB';
                     TableType := ttParadox	;
                     TableName := l_filename;
                   with FieldDefs do
                      begin
                       Clear;
                       Add('Dataseq',ftAutoInc,0,false);
                       Add('Pdate', ftdate, 0,false);
                       Add('Ptime', fttime, 0, False);
                       Add('Pencode', ftString, 2, False);
                       Add('node', ftString, 4, False);
                       Add('Workercode', ftString, 2, False);
                       Add('nodename', ftString, 20, False);
                       Add('nodeplace', ftString, 20, False);
                       Add('workername', ftString, 20, False);
                       Add('Linename', ftString, 20, False);
                       Add('Lseq', ftinteger, 0, False);
                       Add('pStatu',ftString,8,False);
                      end;
                   with IndexDefs do
                     begin
                       Clear;
                       Add('dataseq', 'dataseq', [ixPrimary]);
                       add('DateLT','PDATE;LINENAME;PTIME', []);
                       add('Date1','Pdate',[ixCaseInsensitive]);//必须加ixCaseInsensitive  属性
                     end;
                 CreateTable;
                 tablecc.batchmove(sql1,batAppend);
                 dm_xjysxx_view.T_PATROLREC.batchmove(sql1,batdelete);
                 end;
           end;
      end;
end;

procedure TclearForm.FormShow(Sender: TObject);
begin
E_DATE2.DateTime:=now;
E_DATE1.DateTime:=now; { scaled:=true;
  height:=round(height*longint(screen.height)*96 / 600/screen.pixelsperinch);
  width :=round( width *longint(screen.width)*96 / 800/screen.pixelsperinch);
  ScaleControls(screen.width, 800);
  ScaleControls(96,screen.pixelsperinch);  }
end;

procedure TclearForm.BitBtn1Click(Sender: TObject);
begin
  close;

end;

end.

⌨️ 快捷键说明

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