📄 mainu.pas
字号:
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 + -