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

📄 maint.pas

📁 超市管理系统:完成日常销售任务
💻 PAS
📖 第 1 页 / 共 4 页
字号:
unit MAINT;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Spin, JEdit, ExtCtrls, ComCtrls, Buttons, DBTables, Db, Grids,
  DBGrids, Gauges;

type
  TFMMAINT = class(TForm)
    BTNYES: TBitBtn;
    BTNNO: TBitBtn;
    Memo1: TMemo;
    DatabaseP: TDatabase;
    PUERY: TQuery;
    PINS: TQuery;
    QUERY1: TQuery;
    QINS: TQuery;
    QUERY2: TQuery;
    Gauge: TGauge;
    CB_SYS: TCheckBox;
    CB_BMAN: TCheckBox;
    CB_BGDS: TCheckBox;
    CB_BMEM: TCheckBox;
    CB_POSA: TCheckBox;
    BGDS_DAT1: TJEdit;
    BGDS_DAT2: TJEdit;
    Label1: TLabel;
    BMEM_DAT1: TJEdit;
    Label2: TLabel;
    BMEM_DAT2: TJEdit;
    POSA_DAT1: TJEdit;
    Label3: TLabel;
    POSA_DAT2: TJEdit;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    procedure FormActivate(Sender: TObject);
    procedure BTNYESClick(Sender: TObject);
    procedure BTNNOClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }

    P_DT :STRING;
    PROCEDURE INS_SYSLOG;
    PROCEDURE INS_SYSLST;
    PROCEDURE INS_SYSPMS;
    PROCEDURE INS_SYSPSW;
    PROCEDURE INS_BMAN;
    PROCEDURE INS_BGDS;
    PROCEDURE INS_BMEM;
    PROCEDURE INS_POSA;
    PROCEDURE INS_POSA_PABCK;

    function SQLSERVERFINDFORM_WHEREKEY_DATE(F_NAME, T_DATE1,T_DATE2:STRING):STRING;
  public
    { Public declarations }
  end;

FUNCTION BOOLEANTOSTR(TB : BOOLEAN):STRING;
var
  FMMAINT: TFMMAINT;

implementation

USES UN_UTL, DB_UTL, SYSINI,
     MAIND, MAINU;

{$R *.DFM}

FUNCTION BOOLEANTOSTR(TB : BOOLEAN):STRING;
BEGIN
RESULT := '0';
IF TB= TRUE THEN RESULT := '1' ELSE RESULT := '0';
END;

//ACCESS " DATE " WHERE KEY  ======================
function TFMMAINT.SQLSERVERFINDFORM_WHEREKEY_DATE(F_NAME, T_DATE1,T_DATE2:STRING):STRING;
VAR T1, T2 : STRING;
BEGIN
RESULT := '';

   IF T_DATE1 <> '' THEN T1 := CDATE_TO_EDATE(T_DATE1);
   IF T_DATE2 <> '' THEN T2 := CDATE_TO_EDATE(T_DATE2);
   IF (TRIM(T1)<>'')AND(TRIM(T2)<>'') THEN
      BEGIN
      RESULT := 'AND '+F_NAME+'>='''+ T1 +''' AND '+F_NAME+'<='''+ T2 +'''';
      END ELSE
      BEGIN
      IF TRIM(T1)<>'' THEN RESULT := 'AND '+F_NAME+' = '''+ T1 +'''';
      IF TRIM(T2)<>'' THEN RESULT := 'AND '+F_NAME+' = '''+ T2 +'''';
      END;
END;

PROCEDURE TFMMAINT.INS_SYSLOG;
VAR SGENO,SGKIN,RBPST,PAIDE,BNENO,SGDAT,SGTME,SGMRK : STRING;
BEGIN
MEMO1.Lines.Add('上载系统记录文件');
QUERY1.SQL.CLEAR;      //SERVER===============================
QUERY1.SQL.ADD('SELECT * FROM SYSLOG');
QUERY1.Close;
QUERY1.OPEN;
Gauge.MaxValue := QUERY1.RecordCount;

QUERY1.FIRST;
WHILE NOT QUERY1.EOF DO
 BEGIN
 //抓取系统 SERVER LOG 编号
 SGENO := DBTABLEFINDMAXCNT('MAINP','SYSLOG','SGENO',9,1);
 SGKIN :=           QUERY1.FieldByName('SGKIN' ).AsString;
 RBPST :=           QUERY1.FieldByName('RBPST' ).AsString;
 PAIDE :=           QUERY1.FieldByName('PAIDE' ).AsString;
 BNENO :=           QUERY1.FieldByName('BNENO' ).AsString;
 SGDAT := DATETOSTR(QUERY1.FieldByName('SGDAT' ).AsDATETIME);
 SGTME :=           QUERY1.FieldByName('SGTME' ).AsString;
 SGMRK :=           QUERY1.FieldByName('SGMRK' ).AsString;

 PINS.Close;   // LOCAL INSERT
 PINS.SQL.CLEAR;
 PINS.SQL.Add('INSERT INTO SYSLOG');
 PINS.SQL.Add('( SGENO , SGKIN , RBPST , PAIDE ,');
 PINS.SQL.Add('  BNENO , SGDAT , SGTME , SGMRK  ');
 PINS.SQL.Add(') VALUES (');
 PINS.SQL.Add(''''+SGENO+''', ');
 PINS.SQL.Add(''''+SGKIN+''', ');
 PINS.SQL.Add(''''+RBPST+''', ');
 PINS.SQL.Add(''''+PAIDE+''', ');
 PINS.SQL.Add(''''+BNENO+''', ');
 PINS.SQL.Add(''''+SGDAT+''', ');
 PINS.SQL.Add(''''+SGTME+''', ');
 PINS.SQL.Add(''''+SGMRK+''') ');
 TRY PINS.EXECSQL; EXCEPT MEMO1.Lines.Add('上载系统记录文件 '+PINS.FieldByName('SGENO').AsString+'更新失败');  END;
 QUERY1.Next;
 Gauge.AddProgress(1);
 END;

 QINS.Close;   // LOCAL SYSLOG DELETE
 QINS.SQL.CLEAR;
 QINS.SQL.Add('DELETE FROM SYSLOG');
 TRY QINS.EXECSQL; EXCEPT END;
Gauge.Progress := 0;
END;

PROCEDURE TFMMAINT.INS_SYSLST;
BEGIN
MEMO1.Lines.Add('检查系统设置');
PUERY.SQL.CLEAR;      //SERVER===============================
PUERY.SQL.ADD('SELECT * FROM SYSLST');
PUERY.Close;
PUERY.OPEN;
Gauge.MaxValue := PUERY.RecordCount;

PUERY.FIRST;
WHILE NOT PUERY.EOF DO
 BEGIN
 QUERY1.SQL.CLEAR;      //LOCAL------------------------
 QUERY1.SQL.ADD('SELECT * FROM SYSLST');
 QUERY1.SQL.ADD('WHERE LSTID1 = '''+PUERY.FieldByName('LSTID1').AsString+'''');
 QUERY1.SQL.ADD('  AND LSTID2 = '''+PUERY.FieldByName('LSTID2').AsString+'''');
 QUERY1.Close;
 QUERY1.OPEN;
 IF QUERY1.EOF = FALSE THEN // UPDATE
    BEGIN
//    MEMO1.Lines.Add('更新系统设置 '+PUERY.FieldByName('LSTID1').AsString+PUERY.FieldByName('LSTID2').AsString);
    QINS.Close;   // LOCAL INSERT
    QINS.SQL.CLEAR;
    QINS.SQL.ADD('UPDATE SYSLST ');
    QINS.SQL.ADD('SET ');
    QINS.SQL.ADD('LSTNAM = '''+PUERY.FieldByName('LSTNAM').AsString+''', ');
    QINS.SQL.ADD('LSTMRK = '''+PUERY.FieldByName('LSTMRK').AsString+'''  ');
    QINS.SQL.ADD('WHERE LSTID1 = '''+PUERY.FieldByName('LSTID1').AsString+'''');
    QINS.SQL.ADD('  AND LSTID2 = '''+PUERY.FieldByName('LSTID2').AsString+'''');
    TRY QINS.EXECSQL; EXCEPT MEMO1.Lines.Add('更新系统设置 '+PUERY.FieldByName('LSTID1').AsString+PUERY.FieldByName('LSTID2').AsString+'更新失败');  END;
    END;
 IF QUERY1.EOF = TRUE THEN  //INSERT
    BEGIN
//    MEMO1.Lines.Add('新增系统设置 '+PUERY.FieldByName('LSTID1').AsString+PUERY.FieldByName('LSTID2').AsString);
    QINS.Close;   // LOCAL INSERT
    QINS.SQL.CLEAR;
    QINS.SQL.ADD('INSERT INTO SYSLST ');
    QINS.SQL.ADD(' ( LSTID1, LSTID2, LSTNAM, LSTMRK ) ');
    QINS.SQL.ADD('VALUES (');
    QINS.SQL.ADD(' '''+PUERY.FieldByName('LSTID1').AsString+''', ');
    QINS.SQL.ADD(' '''+PUERY.FieldByName('LSTID2').AsString+''', ');
    QINS.SQL.ADD(' '''+PUERY.FieldByName('LSTNAM').AsString+''', ');
    QINS.SQL.ADD(' '''+PUERY.FieldByName('LSTMRK').AsString+''') ');
    TRY QINS.EXECSQL; EXCEPT MEMO1.Lines.Add('更新系统设置 '+PUERY.FieldByName('LSTID1').AsString+PUERY.FieldByName('LSTID2').AsString+'更新失败');  END;
    END;

 PUERY.Next;
 Gauge.AddProgress(1);
 END;

UNSETWRITE('SYSSET','_DBKIND'  ,'0');
Gauge.Progress := 0;
END;

PROCEDURE TFMMAINT.INS_SYSPMS;
VAR BNENO, PMSFUN, PMSNAM, PMSPMS :STRING;
BEGIN
MEMO1.Lines.Add('检查权限设置');
PUERY.SQL.CLEAR;      //SERVER===============================
PUERY.SQL.ADD('SELECT * FROM SYSPMS');
PUERY.Close;
PUERY.OPEN;
Gauge.MaxValue := PUERY.RecordCount;

PUERY.FIRST;
WHILE NOT PUERY.EOF DO
 BEGIN
 QUERY1.SQL.CLEAR;      //LOCAL------------------------
 QUERY1.SQL.ADD('SELECT * FROM SYSPMS');
 QUERY1.SQL.ADD('WHERE BNENO = '''+PUERY.FieldByName('BNENO').AsString+'''');
 QUERY1.SQL.ADD('  AND PMSFUN= '''+PUERY.FieldByName('PMSFUN').AsString+'''');
 QUERY1.Close;
 QUERY1.OPEN;

 BNENO  := PUERY.FieldByName('BNENO' ).AsString;
 PMSFUN := PUERY.FieldByName('PMSFUN').AsString;
 PMSNAM := PUERY.FieldByName('PMSNAM').AsString;
 PMSPMS := BOOLEANTOSTR(PUERY.FieldByName('PMSPMS').AsBOOLEAN);


 IF QUERY1.EOF = FALSE THEN // UPDATE
    BEGIN
    QINS.Close;   // LOCAL INSERT
    QINS.SQL.CLEAR;
    QINS.SQL.ADD('UPDATE SYSPMS ');
    QINS.SQL.ADD('SET ');
    QINS.SQL.ADD('PMSFUN = '''+PMSFUN+''', ');
    QINS.SQL.ADD('PMSNAM = '''+PMSNAM+''', ');
    QINS.SQL.ADD('PMSPMS =   '+PMSPMS+'    ');
    QINS.SQL.ADD('WHERE BNENO  = '''+BNENO  +'''');
    QINS.SQL.ADD('  AND PMSFUN = '''+PMSFUN +'''');
    TRY QINS.EXECSQL; EXCEPT MEMO1.Lines.Add('更新权限设置 '+PUERY.FieldByName('BNENO').AsString+'更新失败');  END;
    END;
 IF QUERY1.EOF = TRUE THEN  //INSERT
    BEGIN
    QINS.Close;   // LOCAL INSERT
    QINS.SQL.CLEAR;
    QINS.SQL.ADD('INSERT INTO SYSPMS ');
    QINS.SQL.ADD(' ( BNENO, PMSFUN, PMSNAM, PMSPMS ) ');
    QINS.SQL.ADD('VALUES (');
    QINS.SQL.ADD(' '''+BNENO +''', ');
    QINS.SQL.ADD(' '''+PMSFUN+''', ');
    QINS.SQL.ADD(' '''+PMSNAM+''', ');
    QINS.SQL.ADD('   '+PMSPMS+'  ) ');
    TRY QINS.EXECSQL; EXCEPT MEMO1.Lines.Add('更新权限设置 '+PUERY.FieldByName('BNENO').AsString+'更新失败');  END;
    END;

 PUERY.Next;
 Gauge.AddProgress(1);
 END;

Gauge.Progress := 0;
END;

PROCEDURE TFMMAINT.INS_SYSPSW;
VAR BNENO, PSWPSW, PSWPSM, PSWLOG, PSWLOM : STRING;
BEGIN
MEMO1.Lines.Add('检查密码设置');
PUERY.SQL.CLEAR;      //SERVER===============================
PUERY.SQL.ADD('SELECT * FROM SYSPSW');
PUERY.Close;
PUERY.OPEN;
Gauge.MaxValue := PUERY.RecordCount;

PUERY.FIRST;
WHILE NOT PUERY.EOF DO
 BEGIN
 QUERY1.SQL.CLEAR;      //LOCAL------------------------
 QUERY1.SQL.ADD('SELECT * FROM SYSPSW');
 QUERY1.SQL.ADD('WHERE BNENO = '''+PUERY.FieldByName('BNENO').AsString+'''');
 QUERY1.Close;
 QUERY1.OPEN;
 BNENO  := PUERY.FieldByName('BNENO').AsString;
 PSWPSW := PUERY.FieldByName('PSWPSW').AsString;
 PSWPSM := DATETOSTR(PUERY.FieldByName('PSWPSM').AsDATETIME);
 PSWLOG := DATETOSTR(PUERY.FieldByName('PSWLOG').AsDATETIME);
 PSWLOM := PUERY.FieldByName('PSWLOM').AsString;


 IF QUERY1.EOF = FALSE THEN // UPDATE
    BEGIN
    QINS.Close;   // LOCAL INSERT
    QINS.SQL.CLEAR;
    QINS.SQL.ADD('UPDATE SYSPSW ');
    QINS.SQL.ADD('SET ');
//    QINS.SQL.ADD('PSWPSW = '''+PUERY.FieldByName('PSWPSW').AsString+''', ');
    QINS.SQL.ADD('PSWPSW = :PSW ,');
    QINS.SQL.ADD('PSWPSM =  #'+PSWPSM+'# , ');
    QINS.SQL.ADD('PSWLOG =  #'+PSWLOG+'# , ');
    QINS.SQL.ADD('PSWLOM = '''+PSWLOM+'''  ');
    QINS.SQL.ADD('WHERE BNENO = '''+BNENO+'''');
    QINS.ParamByName('PSW').DataType := FTSTRING;
    QINS.ParamByName('PSW').Value    := PSWPSW;

    TRY QINS.EXECSQL; EXCEPT EXIT ; MEMO1.Lines.Add('更新密码设置 '+BNENO+'更新失败');  END;
    END;
 IF QUERY1.EOF = TRUE THEN  //INSERT
    BEGIN
    QINS.Close;   // LOCAL INSERT
    QINS.SQL.CLEAR;
    QINS.SQL.ADD('INSERT INTO SYSPSW ');
    QINS.SQL.ADD(' ( BNENO, PSWPSW, PSWPSM, PSWLOG, PSWLOM ) ');
    QINS.SQL.ADD('VALUES (');
    QINS.SQL.ADD(' '''+BNENO+''', ');
    QINS.SQL.ADD(' :PSW , ');
    QINS.SQL.ADD('  #'+PSWPSM+'# , ');
    QINS.SQL.ADD('  #'+PSWLOG+'# , ');
    QINS.SQL.ADD(' '''+PSWLOM+''') ');
    QINS.ParamByName('PSW').DataType := FTSTRING;
    QINS.ParamByName('PSW').Value    := PSWPSW;
    TRY QINS.EXECSQL; EXCEPT MEMO1.Lines.Add('更新密码设置 '+BNENO+'更新失败');  END;
    END;

 PUERY.Next;
 Gauge.AddProgress(1);
 END;

Gauge.Progress := 0;

⌨️ 快捷键说明

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