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

📄 mainu.pas

📁 DELPHI编写的商场收银POS机源代码
💻 PAS
📖 第 1 页 / 共 4 页
字号:
  RESULT := CNT;
END;

FUNCTION UPLOAD_TABLE(TABLE_NAME, PRIMARY_FIELD, FILE_NAME:STRING):INTEGER;
VAR I, J, CNT : INTEGER;
      FILENAME,
      SQL_STR, STR, TMP,
      PRIMARY_VALUE: STRING;
      TF : TEXTFILE;
      QCHECK, QINS : 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 := 'MAIN';
   QINS   := TQUERY.Create(APPLICATION.Owner);
   QINS  .DatabaseName := 'MAIN';
  
   QCHECK.SQL.Clear;
   QCHECK.SQL.ADD('SELECT * FROM '+TABLE_NAME);
   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);
     RESET(TF);
     GGAUGE.MaxValue := 0;
     GGAUGE.Progress := 0;
     WHILE NOT EOF(TF) DO
       BEGIN
       READLN(TF,STR);
       GGAUGE.MaxValue := GGAUGE.MaxValue + 1;
       END;
     CloseFile(TF);
  
     AssignFile(TF,FILE_NAME);
     RESET(TF);
  
     WHILE NOT EOF(TF) DO
       BEGIN
       GGAUGE.AddProgress(1);
       READLN(TF,STR);
       IF TRIM(STR) = '' THEN CONTINUE;
       PRIMARY_VALUE := TRIM(COPY(STR,1,QCHECK.Fields.Fields[0].DataSize));
       if TABLECHECK_RE1(TABLE_NAME,PRIMARY_FIELD,PRIMARY_VALUE) > 0 THEN CONTINUE;
  
       SQL_STR := '';
       SQL_STR := SQL_STR+'INSERT INTO '+TABLE_NAME +#13;
       SQL_STR := SQL_STR+'('                       +#13;
  
       FOR I := 0 TO QCHECK.FieldCount-1 DO
           BEGIN
           SQL_STR := SQL_STR+QCHECK.Fields.Fields[I].FieldName;
           IF I < QCHECK.FieldCount-1 THEN SQL_STR := SQL_STR + ','+#13;
           END;
       SQL_STR := SQL_STR+')VALUES('                +#13;
  
       J := 1;
       FOR I := 0 TO QCHECK.FieldCount-1 DO
           BEGIN
           IF QCHECK.Fields.Fields[I].DataType = ftString   THEN
              BEGIN
              SQL_STR := SQL_STR + ''''+TRIM(COPY(STR,J,QCHECK.Fields.Fields[I].DataSize))+'''';
              J := J + QCHECK.Fields.Fields[I].DataSize;
              END;
           IF QCHECK.Fields.Fields[I].DataType = ftFloat    THEN
              BEGIN
              TMP := TRIM(COPY(STR,J,8));
              IF CHECK_FLOATINT(TMP) = TRUE THEN SQL_STR := SQL_STR + TMP
                                            ELSE SQL_STR := SQL_STR + '0';
              J := J + 8;
              END;
           IF QCHECK.Fields.Fields[I].DataType = ftDateTime THEN
              BEGIN
              TMP := TRIM(COPY(STR,J,10));
              IF CHECK_EDATE(TMP,FALSE) = TRUE THEN SQL_STR := SQL_STR + _DT+TMP+_DT
                                               ELSE SQL_STR := SQL_STR + _DT+'1989/1/1'+_DT;
              J := J + 10;
              END;
           IF QCHECK.Fields.Fields[I].DataType = ftBoolean  THEN
              BEGIN
              TMP := TRIM(COPY(STR,J,QCHECK.Fields.Fields[I].DataSize));
              IF TMP = 'Tr' THEN SQL_STR := SQL_STR + '1';
              IF TMP = 'Fa' THEN SQL_STR := SQL_STR + '0';
              J := J + QCHECK.Fields.Fields[I].DataSize;
              END;

           IF I < QCHECK.FieldCount-1 THEN SQL_STR := SQL_STR + ','+#13;
           END;
       SQL_STR := SQL_STR+')'                       +#13;

       QINS.SQL.Text := SQL_STR;
       QINS.EXECSQL;
       INC(CNT);
       END;



     CloseFile(TF);
     END;

  FINALLY
  QCHECK.Free;
  QINS.FREE;

  GFORM.Free;
  END;

  RESULT := CNT;
END;

FUNCTION UPLOAD_TABLE2(TABLE_NAME, PRIMARY_FIELD1, PRIMARY_FIELD2, FILE_NAME:STRING):INTEGER;
VAR I, J, CNT : INTEGER;
    FILENAME,
    SQL_STR, STR, TMP,
    PRIMARY_VALUE1, PRIMARY_VALUE2: STRING;
    TF : TEXTFILE;
    QCHECK, QINS : 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 := 'MAIN';
   QINS   := TQUERY.Create(APPLICATION.Owner);
   QINS  .DatabaseName := 'MAIN';
  
   QCHECK.SQL.Clear;
   QCHECK.SQL.ADD('SELECT * FROM '+TABLE_NAME);
   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);
     RESET(TF);
     GGAUGE.MaxValue := 0;
     GGAUGE.Progress := 0;
     WHILE NOT EOF(TF) DO
       BEGIN
       READLN(TF,STR);
       GGAUGE.MaxValue := GGAUGE.MaxValue + 1;
       END;
     CloseFile(TF);
  
     AssignFile(TF,FILE_NAME);
     RESET(TF);
  
     WHILE NOT EOF(TF) DO
       BEGIN
       GGAUGE.AddProgress(1);
       READLN(TF,STR);
       PRIMARY_VALUE1 := TRIM(COPY(STR,1,QCHECK.Fields.Fields[0].DataSize));
       PRIMARY_VALUE2 := TRIM(COPY(STR,QCHECK.Fields.Fields[0].DataSize+1,QCHECK.Fields.Fields[1].DataSize));
       if TABLECHECK_RE2(TABLE_NAME,PRIMARY_FIELD1,PRIMARY_FIELD2,PRIMARY_VALUE1,PRIMARY_VALUE2) > 0 THEN
          BEGIN
          SQL_STR := '';
          SQL_STR := SQL_STR+'UPDATE '+TABLE_NAME +#13;
          SQL_STR := SQL_STR+'SET'                +#13;
  
          J := 1;
          FOR I := 0 TO QCHECK.FieldCount-1 DO
              BEGIN
              SQL_STR := SQL_STR+QCHECK.Fields.Fields[I].FieldName+' = ';
  
              IF QCHECK.Fields.Fields[I].DataType = ftString   THEN
                 BEGIN
                 SQL_STR := SQL_STR + ''''+TRIM(COPY(STR,J,QCHECK.Fields.Fields[I].DataSize))+'''';
                 J := J + QCHECK.Fields.Fields[I].DataSize;
                 END;
              IF QCHECK.Fields.Fields[I].DataType = ftFloat    THEN
                 BEGIN
                 TMP := TRIM(COPY(STR,J,8));
                 IF CHECK_FLOATINT(TMP) = TRUE THEN SQL_STR := SQL_STR + TMP
                                               ELSE SQL_STR := SQL_STR + '0';
                 J := J + 8;
                 END;
              IF QCHECK.Fields.Fields[I].DataType = ftDateTime THEN
                 BEGIN
                 TMP := TRIM(COPY(STR,J,10));
                 IF CHECK_EDATE(TMP,FALSE) = TRUE THEN SQL_STR := SQL_STR + _DT+TMP+_DT
                                                  ELSE SQL_STR := SQL_STR + _DT+'1989/1/1'+_DT;
                 J := J + 10;
                 END;
              IF QCHECK.Fields.Fields[I].DataType = ftBoolean  THEN
                 BEGIN
                 TMP := TRIM(COPY(STR,J,QCHECK.Fields.Fields[I].DataSize));
                 IF TMP = 'Tr' THEN SQL_STR := SQL_STR + '1';
                 IF TMP = 'Fa' THEN SQL_STR := SQL_STR + '0';
                 J := J + QCHECK.Fields.Fields[I].DataSize;
                 END;
  
              IF I < QCHECK.FieldCount-1 THEN SQL_STR := SQL_STR + ','+#13;
              END;
          SQL_STR := SQL_STR+#13+'WHERE '+PRIMARY_FIELD1+' = '''+PRIMARY_VALUE1+''''+#13;
          SQL_STR := SQL_STR+#13+'  AND '+PRIMARY_FIELD2+' = '''+PRIMARY_VALUE2+''''+#13;
          QINS.SQL.Text := SQL_STR;
          QINS.EXECSQL;
          INC(CNT);
          END ELSE BEGIN
          SQL_STR := '';
          SQL_STR := SQL_STR+'INSERT INTO '+TABLE_NAME +#13;
          SQL_STR := SQL_STR+'('                       +#13;
  
          FOR I := 0 TO QCHECK.FieldCount-1 DO
              BEGIN
              SQL_STR := SQL_STR+QCHECK.Fields.Fields[I].FieldName;
              IF I < QCHECK.FieldCount-1 THEN SQL_STR := SQL_STR + ','+#13;
              END;
          SQL_STR := SQL_STR+')VALUES('                +#13;
  
          J := 1;
          FOR I := 0 TO QCHECK.FieldCount-1 DO
              BEGIN
              IF QCHECK.Fields.Fields[I].DataType = ftString   THEN
                 BEGIN
                 SQL_STR := SQL_STR + ''''+TRIM(COPY(STR,J,QCHECK.Fields.Fields[I].DataSize))+'''';
                 J := J + QCHECK.Fields.Fields[I].DataSize;
                 END;
              IF QCHECK.Fields.Fields[I].DataType = ftFloat    THEN
                 BEGIN
                 TMP := TRIM(COPY(STR,J,8));
                 IF CHECK_FLOATINT(TMP) = TRUE THEN SQL_STR := SQL_STR + TMP
                                               ELSE SQL_STR := SQL_STR + '0';
                 J := J + 8;
                 END;
              IF QCHECK.Fields.Fields[I].DataType = ftDateTime THEN
                 BEGIN
                 TMP := TRIM(COPY(STR,J,10));
                 IF CHECK_EDATE(TMP,FALSE) = TRUE THEN SQL_STR := SQL_STR + _DT+TMP+_DT
                                                  ELSE SQL_STR := SQL_STR + _DT+'1989/1/1'+_DT;
                 J := J + 10;
                 END;
              IF QCHECK.Fields.Fields[I].DataType = ftBoolean  THEN
                 BEGIN
                 TMP := TRIM(COPY(STR,J,QCHECK.Fields.Fields[I].DataSize));
                 IF TMP = 'Tr' THEN SQL_STR := SQL_STR + '1';
                 IF TMP = 'Fa' THEN SQL_STR := SQL_STR + '0';
                 J := J + QCHECK.Fields.Fields[I].DataSize;
                 END;
  
              IF I < QCHECK.FieldCount-1 THEN SQL_STR := SQL_STR + ','+#13;
              END;
          SQL_STR := SQL_STR+')'                       +#13;
          QINS.SQL.Text := SQL_STR;
          QINS.EXECSQL;
          INC(CNT);
          END;   // IF
  
       END;  // WHILE NOT


     CloseFile(TF);
     END;

  FINALLY
    QCHECK.Free;
    QINS.FREE;
    GFORM.Free;
  END;

  RESULT := CNT;
END;

FUNCTION DOWNLOAD_DATASET(Q:TQUERY; FILE_NAME, TCAPTION:STRING):INTEGER;
VAR I, J, CNT : INTEGER;
    FILENAME , STR: STRING;
    TF : TEXTFILE;
    QCHECK : TQUERY;
    GFORM  : TFORM;
    GGAUGE : TGAUGE;
BEGIN
  CNT := 0;

  TRY
   GFORM  := TFORM .Create(APPLICATION.Owner);
   GFORM.Position := POSCREENCENTER;
   GFORM.Caption := TCAPTION;
   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 := '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);
     REWRITE(TF);
  
     GGAUGE.MaxValue := QCHECK.RecordCount;
     GGAUGE.Progress := 0;
     QCHECK.FIRST;
     WHILE NOT QCHECK.EOF DO
       BEGIN
       GGAUGE.AddProgress(1);
       
       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,'');

⌨️ 快捷键说明

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