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

📄 mainu.pas

📁 DELPHI编写的商场收银POS机源代码
💻 PAS
📖 第 1 页 / 共 4 页
字号:
       QCHECK.NEXT;
       INC(CNT);
       END;
  
     CloseFile(TF);
     END;

  FINALLY
    QCHECK.Free;
    GFORM.Free;
  END;
  
  RESULT := CNT;
END;

FUNCTION DOWNLOAD_DATASETADD(Q:TQUERY; FILE_NAME:STRING):INTEGER;
VAR I, J, CNT : INTEGER;
    FILENAME , STR: STRING;
    TF : TEXTFILE;
    QCHECK : TQUERY;
BEGIN
  CNT := 0;

  TRY
   QCHECK := TQUERY.Create(APPLICATION.Owner);
   QCHECK.DatabaseName := 'MAIN';
   QCHECK.SQL.TEXT := Q.SQL.Text;
   QCHECK.CLOSE;
   QCHECK.OPEN;
  
   IF FileExists(FILENAME) = FALSE THEN FILE_CREATE(FILE_NAME);
   IF TEST_OPEN_FILE(FILE_NAME) = TRUE THEN
     BEGIN
     AssignFile(TF,FILE_NAME);
     APPEND(TF);
  
     QCHECK.FIRST;
     WHILE NOT QCHECK.EOF DO
       BEGIN
  
       FOR I := 0 TO QCHECK.FieldCount-1 DO
           BEGIN
           IF QCHECK.Fields.Fields[I].DataType = ftString   THEN
              BEGIN
              STR := COPY(QCHECK.Fields.Fields[I].AsString,1,QCHECK.Fields.Fields[I].DataSize);
              STR := STR+ REPLICATE(' ',QCHECK.Fields.Fields[I].DataSize-LENGTH(STR));
              END;
           IF QCHECK.Fields.Fields[I].DataType = ftFloat    THEN
              BEGIN
              STR := COPY(QCHECK.Fields.Fields[I].AsString,1,8);
              STR := STR+ REPLICATE(' ',8-LENGTH(STR));
              END;
           IF QCHECK.Fields.Fields[I].DataType = ftDateTime THEN
              BEGIN
              STR := COPY(QCHECK.Fields.Fields[I].AsString,1,10);
              STR := STR+ REPLICATE(' ',10-LENGTH(STR));
              END;
           IF QCHECK.Fields.Fields[I].DataType = ftBoolean  THEN
              BEGIN
              STR := COPY(QCHECK.Fields.Fields[I].AsString,1,QCHECK.Fields.Fields[I].DataSize);
              STR := STR+ REPLICATE(' ',QCHECK.Fields.Fields[I].DataSize-LENGTH(STR));
              END;
  
           WRITE(TF,STR);
           END;
       WRITELN(TF,'');
       QCHECK.NEXT;
       INC(CNT);
       END;
  
     CloseFile(TF);
     END;

  FINALLY
    QCHECK.Free;
  END;

  RESULT := CNT;
END;

FUNCTION TABLE_TO_TABLE(Q:TQUERY; DATABASE_NAME, TABLE_NAME:STRING):INTEGER;
VAR I, J, CNT : INTEGER;
      SQL_STR, TMP    : STRING;
      TF : TEXTFILE;
      QCHECK : TQUERY;
      GFORM  : TFORM;
      GGAUGE : TGAUGE;
BEGIN
  CNT := 0;
  
  TRY
   GFORM  := TFORM .Create(APPLICATION.Owner);
   GFORM.Position := POSCREENCENTER;
   GFORM.Caption := '进度';
   GFORM.HEIGHT  := 70;
   GFORM.WIDTH   := 200;
  
   GGAUGE := TGAUGE.Create(APPLICATION.Owner);
   GGAUGE.Parent := GFORM;
   GGAUGE.ForeColor := CLRED;
   GGAUGE.Left := 2;
   GGAUGE.TOP  := 10;
   GGAUGE.Width := 185;
   GGAUGE.Height := 30;
   GFORM.Show;
  
   QCHECK := TQUERY.Create(APPLICATION.Owner);
   QCHECK.DatabaseName := DATABASE_NAME;
  
   GGAUGE.Progress := 0;
   IF (Q.RecordCount >0) AND (Q.RecordCount <1000000) THEN
       GGAUGE.MAXValue := Q.RecordCount;
   Q.FIRST;
   WHILE NOT Q.EOF DO
     BEGIN
     GGAUGE.AddProgress(1);
     SQL_STR := '';
     SQL_STR := SQL_STR+'INSERT INTO '+TABLE_NAME +#13;
     SQL_STR := SQL_STR+'('                       +#13;
  
  
     FOR I := 0 TO Q.FieldCount-1 DO
         BEGIN
         SQL_STR := SQL_STR + Q.Fields.Fields[I].FieldName;
         IF I < Q.FieldCount-1 THEN SQL_STR := SQL_STR + ',';
         END;
     SQL_STR := SQL_STR+')VALUES('                +#13;
  
     FOR I := 0 TO Q.FieldCount-1 DO
         BEGIN
         IF Q.Fields.Fields[I].DataType = ftString   THEN
            BEGIN
            SQL_STR := SQL_STR + ''''+ TRIM(Q.Fields.Fields[I].ASSTRING)+'''';
            END;
         IF Q.Fields.Fields[I].DataType = ftFloat    THEN
            BEGIN
            TMP := TRIM(Q.Fields.Fields[I].ASSTRING);
            IF CHECK_FLOATINT(TMP) = TRUE THEN SQL_STR := SQL_STR + TMP
                                          ELSE SQL_STR := SQL_STR + '0';
            END;
         IF Q.Fields.Fields[I].DataType = ftDateTime THEN
            BEGIN
            TMP := TRIM(Q.Fields.Fields[I].ASSTRING);
            IF CHECK_EDATE(TMP,FALSE) = TRUE THEN SQL_STR := SQL_STR + _DT+TMP+_DT
                                             ELSE SQL_STR := SQL_STR + _DT+'1989/1/1'+_DT;
            END;
         IF Q.Fields.Fields[I].DataType = ftBoolean  THEN
            BEGIN
            TMP := TRIM(Q.Fields.Fields[I].ASSTRING);
            IF POS('T',TMP) >0 THEN SQL_STR := SQL_STR + '1';
            IF POS('F',TMP) >0 THEN SQL_STR := SQL_STR + '0';
            END;
         IF Q.Fields.Fields[I].DataType = ftMEMO   THEN
            BEGIN
            SQL_STR := SQL_STR + ''''+ TRIM(Q.Fields.Fields[I].ASSTRING)+'''';
            END;
  
  
         IF I < Q.FieldCount-1 THEN SQL_STR := SQL_STR + ','+#13;
         END;
     SQL_STR := SQL_STR+')'                       +#13;
  
     QCHECK.SQL.CLEAR;
     QCHECK.SQL.TEXT := SQL_STR;
     QCHECK.EXECSQL;

     Q.NEXT;
     END;

  FINALLY
    QCHECK.Free;
    GFORM.Free;
  END;

  RESULT := CNT;
END;

FUNCTION TABLE_TO_CLEAN(DATABASE_NAME, TABLE_NAME:STRING):BOOLEAN;
VAR QCHECK : TQUERY;
BEGIN
  QCHECK := TQUERY.Create(APPLICATION.Owner);
  QCHECK.DatabaseName := DATABASE_NAME;
  QCHECK.SQL.CLEAR;
  QCHECK.SQL.ADD('DELETE FROM '+TABLE_NAME );
  QCHECK.EXECSQL;
  QCHECK.Free;
  RESULT := TRUE;
END;

// 检查 档案的最大编号
FUNCTION CHECK_BASE_TABLE_NO(TABLE_NAME,FIELD_NAME:STRING):STRING;
VAR QDBCHECK : TQUERY;
BEGIN
  IF (TABLE_NAME='') THEN EXIT;
  IF (FIELD_NAME='') THEN EXIT;
   QDBCHECK := TQUERY.Create(APPLICATION.Owner);
   QDBCHECK.DatabaseName := 'MAIN';
   QDBCHECK.SQL.Clear;
   QDBCHECK.SQL.Add('SELECT MAX('+FIELD_NAME+') AS MAX FROM '+TABLE_NAME);
   TRY
     QDBCHECK.Close;
     QDBCHECK.Open;
   EXCEPT
     RESULT := '';
   END;

   IF QDBCHECK.Eof = FALSE THEN RESULT := QDBCHECK.FieldByName('MAX').AsString;
   IF QDBCHECK.Eof = TRUE  THEN RESULT := '';
END;










FUNCTION HOTKEY_LIST(KEY_INDEX:INTEGER):STRING;
BEGIN
CASE KEY_INDEX OF
   0 : RESULT := 'ESC';
   1 : RESULT := 'F1';
   2 : RESULT := 'F2';
   3 : RESULT := 'F3';
   4 : RESULT := 'F4';
   5 : RESULT := 'F5';
   6 : RESULT := 'F6';
   7 : RESULT := 'F7';
   8 : RESULT := 'F8';
   9 : RESULT := 'F9';
  10 : RESULT := 'F10';
  11 : RESULT := 'F11';
  12 : RESULT := 'F12';
  13 : RESULT := 'CTRL+A';
  14 : RESULT := 'CTRL+B';
  15 : RESULT := 'CTRL+C';
  16 : RESULT := 'CTRL+D';
  17 : RESULT := 'CTRL+E';
  18 : RESULT := 'CTRL+F';
  19 : RESULT := 'CTRL+G';
  20 : RESULT := 'CTRL+H';
  21 : RESULT := 'CTRL+I';
  22 : RESULT := 'CTRL+J';
  23 : RESULT := 'CTRL+K';
  24 : RESULT := 'CTRL+L';
  25 : RESULT := 'CTRL+M';
  26 : RESULT := 'CTRL+N';
  27 : RESULT := 'CTRL+O';
  28 : RESULT := 'CTRL+P';
  29 : RESULT := 'CTRL+Q';
  30 : RESULT := 'CTRL+R';
  31 : RESULT := 'CTRL+S';
  32 : RESULT := 'CTRL+T';
  33 : RESULT := 'CTRL+U';
  34 : RESULT := 'CTRL+V';
  35 : RESULT := 'CTRL+W';
  36 : RESULT := 'CTRL+X';
  37 : RESULT := 'CTRL+Y';
  38 : RESULT := 'CTRL+Z';
  ELSE RESULT := 'ESC';
END;
END;











FUNCTION SYSLOG_INSERT(T_SGKIN,T_PAIDE,T_SGMRK:STRING):BOOLEAN;
VAR QCHECK : TQUERY;
BEGIN
  TRY
   QCHECK := TQUERY.Create(APPLICATION.Owner);
   QCHECK.DatabaseName := 'MAIN';
   QCHECK.SQL.Clear;
   QCHECK.SQL.Add('INSERT INTO SYSLOG');
   QCHECK.SQL.Add('( SGENO, SGKIN, PAIDE, BNENO , SGDAT , SGTME , SGMRK  ');
   QCHECK.SQL.Add(') VALUES (');
   QCHECK.SQL.Add(''''+TABLEFINDMAXCNT('SYSLOG','SGENO',9,1)+''',');
   QCHECK.SQL.Add(''''+T_SGKIN            +''',');
   QCHECK.SQL.Add(''''+T_PAIDE            +''',');
   QCHECK.SQL.Add(''''+_USER_ID           +''',');
   QCHECK.SQL.Add(''''+DATETOSTR(DATE)    +''',');
   QCHECK.SQL.Add(''''+TIME_GET_24H(TIME) +''',');
   QCHECK.SQL.Add(''''+T_SGMRK            +''' )');
   QCHECK.EXECSQL;
  FINALLY
    QCHECK.Free;
  END;
END;


FUNCTION SYSLOG_COUNT (T_DATE, T_SGKIN,T_PAIDE,T_BNENO:STRING):TSTRINGS;
VAR QCHECK : TQUERY;
    ANS : TSTRINGS;
    T_SLG : INTEGER; //登入记录
    T_SPW : INTEGER; //改密码记录
    T_SPM : INTEGER; //改权限记录

    T_CBX : INTEGER; //开钱箱记录
    T_CBM : INTEGER; //改会员等级记录
    T_PBK : INTEGER; //发票作废记录
    T_PCN : INTEGER; //发票回复记录
    T_BAK : INTEGER; //备份资料记录
BEGIN
  ANS := TSTRINGLIST.Create;
  T_SLG :=0; //登入记录
  T_SPW :=0; //改密码记录
  T_SPM :=0; //改权限记录

  T_CBX :=0; //开钱箱记录
  T_CBM :=0; //改会员等级记录
  T_PBK :=0; //发票作废记录
  T_PCN :=0; //发票回复记录
  T_BAK :=0; //备份资料记录

  TRY
   QCHECK := TQUERY.Create(APPLICATION.Owner);
   QCHECK.DatabaseName := 'MAIN';
   QCHECK.SQL.Clear;
   QCHECK.SQL.Add('SELECT * FROM SYSLOG');
   QCHECK.SQL.Add(' WHERE SGENO IS NOT NULL ');
   IF CHECK_EDATE(T_DATE,FALSE)=TRUE THEN QCHECK.SQL.Add('  AND SGDAT = '+_DT+ T_DATE+_DT+' ');
   IF TRIM(T_SGKIN)<>'' THEN QCHECK.SQL.Add('  AND SGKIN = '''+ T_SGKIN +''' ');
   IF TRIM(T_PAIDE)<>'' THEN QCHECK.SQL.Add('  AND PAIDE = '''+ T_PAIDE +''' ');
   IF TRIM(T_BNENO)<>'' THEN QCHECK.SQL.Add('  AND BNENO = '''+ T_BNENO +''' ');
   QCHECK.CLOSE;
   QCHECK.OPEN;

   WITH QCHECK DO
     BEGIN
     FIRST;
     WHILE NOT Eof DO
       BEGIN
       IF (FieldByName('SGKIN').AsSTRING='SLG') THEN INC(T_SLG); //登入记录
       IF (FieldByName('SGKIN').AsSTRING='SPW') THEN INC(T_SPW); //改密码记录
       IF (FieldByName('SGKIN').AsSTRING='SPM') THEN INC(T_SPM); //改权限记录

       IF (FieldByName('SGKIN').AsSTRING='CBX') THEN INC(T_CBX); //开钱箱记录
       IF (FieldByName('SGKIN').AsSTRING='CBM') THEN INC(T_CBM); //改会员等级记录
       IF (FieldByName('SGKIN').AsSTRING='PBK') THEN INC(T_PBK); //发票作废记录
       IF (FieldByName('SGKIN').AsSTRING='PCN') THEN INC(T_PCN); //发票回复记录
       IF (FieldByName('SGKIN').AsSTRING='BAK') THEN INC(T_BAK); //备份资料记录

       Next;
       END;
     END;


   ANS.Clear;
   IF (T_SGKIN='')OR(T_SGKIN='SLG') THEN ANS.Add('登入记录      '+ INTTOSTR(T_SLG) );
   IF (T_SGKIN='')OR(T_SGKIN='SPW') THEN ANS.Add('改密码记录    '+ INTTOSTR(T_SPW) );
   IF (T_SGKIN='')OR(T_SGKIN='SPM') THEN ANS.Add('改权限记录    '+ INTTOSTR(T_SPM) );
   IF (T_SGKIN='')OR(T_SGKIN='CBX') THEN ANS.Add('开钱箱记录    '+ INTTOSTR(T_CBX) );
   IF (T_SGKIN='')OR(T_SGKIN='CBM') THEN ANS.Add('改会员等级记录'+ INTTOSTR(T_CBM) );
   IF (T_SGKIN='')OR(T_SGKIN='PBK') THEN ANS.Add('发票作废记录  '+ INTTOSTR(T_PBK) );
   IF (T_SGKIN='')OR(T_SGKIN='PCN') THEN ANS.Add('发票回复记录  '+ INTTOSTR(T_PCN) );
   IF (T_SGKIN='')OR(T_SGKIN='BAK') THEN ANS.Add('备份资料记录  '+ INTTOSTR(T_BAK) );
   
  FINALLY
    RESULT := ANS;
    QCHECK.Free;
  END;
END;


end.

⌨️ 快捷键说明

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