📄 mainu.pas
字号:
unit mainU;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Dialogs,
StdCtrls, WinTypes, WinProcs, FORMS, DB, DBTables, Gauges;
//库存资料
FUNCTION BGDS_UPDATE_BGQTN(T_BGENO:STRING;T_BGCNT:INTEGER):BOOLEAN;
// 打印 销售 明细查询
PROCEDURE DISP_DETAIL_POSA_OPEN(T_SQL:STRING); //打印明细查询
FUNCTION DISP_DETAIL_POSA(T_KIND:STRING):TSTRINGS; //打印明细计算
//试用版记录数限定
FUNCTION CHECK_DEMO_VERSION_RECCNT(T_TABLE:STRING):BOOLEAN;
//查询FORM -
//字符串查询
FUNCTION FINDFORM_WHEREKEY_STRING (F_NAME, T_STR1,T_STR2:STRING):STRING;
//数字查询
FUNCTION FINDFORM_WHEREKEY_INTEGER(F_NAME, T_INT1,T_INT2:STRING):STRING;
//日期查询
FUNCTION FINDFORM_WHEREKEY_DATE (F_NAME, T_DATE1,T_DATE2:STRING):STRING;
//查询 排序 //ORDER BYE=======================================
FUNCTION FINDFORM_ORDERBY3(F_NAME1,F_NAME2,F_NAME3:STRING; I_1, I_2, I_3 :INTEGER):STRING;
// 检查个人信息
FUNCTION POS_CHECK_PERSONAL_MESSAGE(T_BNENO:STRING):STRING;
FUNCTION POS_DEL_PERSONAL_MESSAGE(T_BNENO:STRING):STRING;
//密码检查权限
FUNCTION PERMISSION_CHECK(T_USER, PMSFUN :STRING):BOOLEAN;
FUNCTION READ_BMAN_PMS(BNENO,PMSFUN :STRING):BOOLEAN;
FUNCTION WRITE_BMAN_PMS(BNENO,PMSFUN:STRING;VALUE :BOOLEAN ):BOOLEAN;
//修改编号限定
FUNCTION CHANGE_BGENO(S_BGENO,T_BGENO:STRING):BOOLEAN;
FUNCTION CHANGE_BMENO(S_BMENO,T_BMENO:STRING):BOOLEAN;
FUNCTION CHANGE_BSENO(S_BSENO,T_BSENO:STRING):BOOLEAN;
FUNCTION CHANGE_BCENO(S_BCENO,T_BCENO:STRING):BOOLEAN;
FUNCTION CHANGE_BNENO(S_BNENO,T_BNENO:STRING):BOOLEAN;
FUNCTION DOWNLOAD_TABLE(TABLE_NAME, FILE_NAME:STRING):INTEGER;
FUNCTION DOWNLOAD_TABLEADD(TABLE_NAME, FILE_NAME:STRING):INTEGER;
FUNCTION UPLOAD_TABLE(TABLE_NAME, PRIMARY_FIELD, FILE_NAME:STRING):INTEGER;
FUNCTION UPLOAD_TABLE2(TABLE_NAME, PRIMARY_FIELD1, PRIMARY_FIELD2, FILE_NAME:STRING):INTEGER;
FUNCTION DOWNLOAD_DATASET(Q:TQUERY; FILE_NAME, TCAPTION:STRING):INTEGER;
FUNCTION DOWNLOAD_DATASETADD(Q:TQUERY; FILE_NAME:STRING):INTEGER;
FUNCTION TABLE_TO_TABLE(Q:TQUERY; DATABASE_NAME, TABLE_NAME:STRING):INTEGER;
FUNCTION TABLE_TO_CLEAN(DATABASE_NAME, TABLE_NAME:STRING):BOOLEAN;
// 检查 档案的最大编号
FUNCTION CHECK_BASE_TABLE_NO(TABLE_NAME,FIELD_NAME:STRING):STRING;
FUNCTION HOTKEY_LIST(KEY_INDEX:INTEGER):STRING;
FUNCTION SYSLOG_INSERT(T_SGKIN,T_PAIDE,T_SGMRK:STRING):BOOLEAN;
FUNCTION SYSLOG_COUNT (T_DATE, T_SGKIN,T_PAIDE,T_BNENO:STRING):TSTRINGS;
implementation
USES UN_UTL, DB_UTL, SYSINI, MAIND;
FUNCTION BGDS_UPDATE_BGQTN(T_BGENO:STRING;T_BGCNT:INTEGER):BOOLEAN;
VAR QCHECK : TQUERY;
BEGIN
TRY
QCHECK := TQUERY.Create(APPLICATION.Owner); QCHECK.DatabaseName := 'MAIN';
QCHECK.SQL.Clear;
QCHECK.SQL.Add('UPDATE BGDS SET ');
QCHECK.SQL.Add('BGQTN = BGQTN + '+INTTOSTR(T_BGCNT)+',');
QCHECK.SQL.Add('BGDTC = '+_DT + DATETOSTR(DATE)+_DT+' ');
QCHECK.SQL.Add('WHERE BGENO = '''+T_BGENO+'''');
QCHECK.ExecSQL;
RESULT := TRUE;
FINALLY
QCHECK.Free;
END;
END;
PROCEDURE DISP_DETAIL_POSA_OPEN(T_SQL:STRING); //打印明细计算
BEGIN
WITH FMMAIND.QUERY DO
BEGIN
CLOSE;
SQL.CLEAR;
SQL.ADD(T_SQL);
OPEN;
END;
END;
FUNCTION DISP_DETAIL_POSA(T_KIND:STRING):TSTRINGS; //打印明细计算
VAR ANS , INV: TSTRINGS;
T_BGCOT, T_PACNA : INTEGER;
T_BGCOT1, T_PACNA1 : INTEGER;
T_BGCOT2, T_PACNA2 : INTEGER;
T_T1, T_T2, T_T3, T_T4, T_T5 : INTEGER;
T_M1, T_M2, T_M3 : INTEGER;
T_IV1, T_IV2 : STRING;
BEGIN
ANS := TSTRINGLIST.Create;
INV := TSTRINGLIST.Create;
ANS.Clear;
ANS.Add('选择错误, 无资料! ');
INV.Clear;
T_BGCOT := 0;
T_BGCOT1:= 0;
T_BGCOT2:= 0;
T_PACNA := 0;
T_PACNA1:= 0;
T_PACNA2:= 0;
T_T1 := 0; T_T2 := 0; T_T3 := 0; T_T4 := 0; T_T5 := 0;
T_M1 := 0; T_M2 := 0; T_M3 := 0;
T_IV1:=''; T_IV2:='';
WITH FMMAIND.QUERY DO
BEGIN
FIRST;
WHILE NOT Eof DO
BEGIN
//发票起始号码
IF TRIM(FieldByName('PAIVO').AsSTRING) <> '' THEN
BEGIN
IF T_IV1 = '' THEN T_IV1 := FieldByName('PAIVO').AsSTRING;
T_IV2 := FieldByName('PAIVO').AsSTRING;
END;
//发票 金额 明细
IF TRIM(FieldByName('PAIVO').AsSTRING) <> '' THEN
BEGIN
INV.Add( FieldByName('PAIVO').AsSTRING + '='+
REPLICATE(' ',6-LENGTH(FieldByName('BGCOT').AsSTRING))+
FieldByName('BGCOT').AsSTRING + '+'+
REPLICATE(' ',6-LENGTH(FieldByName('PACNA').AsSTRING))+
FieldByName('PACNA').AsSTRING );
END;
// 金额计算
T_BGCOT := T_BGCOT + FieldByName('BGCOT').AsINTEGER;
T_PACNA := T_PACNA + FLOATTOINT(STRTOFLOATDEF(FieldByName('PACNA').AsString,0));
INC(T_M1);
IF TRIM(FieldByName('BMENO').AsSTRING) = '' THEN
BEGIN
INC(T_M3);
END ELSE BEGIN
INC(T_M2);
END;
IF FieldByName('PABCK').AsBOOLEAN = TRUE THEN INC(T_T5);
IF FieldByName('PAIPN').AsBOOLEAN = TRUE THEN
BEGIN
INC(T_T3);
T_BGCOT1 := T_BGCOT1 + FieldByName('BGCOT').AsINTEGER+ FLOATTOINT(STRTOFLOATDEF(FieldByName('PACNA').AsString,0));
END ELSE BEGIN
INC(T_T4);
T_BGCOT2 := T_BGCOT2 + FieldByName('BGCOT').AsINTEGER+ FLOATTOINT(STRTOFLOATDEF(FieldByName('PACNA').AsString,0));
END;
IF FieldByName('PACKD').AsSTRING = 'GFT' THEN
BEGIN //礼券
INC(T_T2);
T_PACNA1 := T_PACNA1 + FLOATTOINT(STRTOFLOATDEF(FieldByName('PACNA').AsString,0));
END;
IF (FieldByName('PACKD').AsSTRING = 'CRD') AND
(STRTOINTDEF(FieldByName('PACNA').AsSTRING,-1)>0) THEN
BEGIN //刷卡
INC(T_T1);
T_PACNA2 := T_PACNA2 + FLOATTOINT(STRTOFLOATDEF(FieldByName('PACNA').AsString,0));
END;
Next;
END;
END;
IF T_KIND = 'MONEY' THEN
BEGIN
ANS.Clear;
ANS.Add('+实收现金总和: '+REPLICATE(' ',7-LENGTH(INTTOSTR(T_BGCOT )))+ INTTOSTR(T_BGCOT ) + '元' );
ANS.Add('+刷卡礼券总和: '+REPLICATE(' ',7-LENGTH(INTTOSTR(T_PACNA )))+INTTOSTR(T_PACNA ) + '元' );
ANS.Add(' ├信用卡 : '+REPLICATE(' ',7-LENGTH(INTTOSTR(T_PACNA2)))+INTTOSTR(T_PACNA2) + '元' );
ANS.Add(' └礼 券 : '+REPLICATE(' ',7-LENGTH(INTTOSTR(T_PACNA1)))+INTTOSTR(T_PACNA1) + '元' );
ANS.Add('─────────');
ANS.Add('=今日销售总和: '+REPLICATE(' ',7-LENGTH(INTTOSTR(T_BGCOT + T_PACNA)))+INTTOSTR(T_BGCOT + T_PACNA) + '元' );
ANS.Add(' ├已开发票 : '+REPLICATE(' ',7-LENGTH(INTTOSTR(T_BGCOT1) ))+INTTOSTR(T_BGCOT1) + '元' );
ANS.Add(' └未开发票 : '+REPLICATE(' ',7-LENGTH(INTTOSTR(T_BGCOT2) ))+INTTOSTR(T_BGCOT2) + '元' );
END;
IF T_KIND = 'COUNT' THEN
BEGIN
ANS.Clear;
ANS.Add('刷卡人数: '+INTTOSTR(T_T1 ) );
ANS.Add('礼券张数: '+INTTOSTR(T_T2 ) );
ANS.Add('已开发票张数: '+INTTOSTR(T_T3 ) );
ANS.Add('未开发票张数: '+INTTOSTR(T_T4 ) );
ANS.Add('作废发票张数: '+INTTOSTR(T_T5 ) );
ANS.Add('总计结帐次数: '+INTTOSTR(T_M1 ) );
END;
IF T_KIND = 'DATE' THEN
BEGIN
ANS.Clear;
ANS.Add('');
ANS.Add('------------------------');
ANS.Add('+实收现金总和: '+REPLICATE(' ',7-LENGTH(INTTOSTR(T_BGCOT )))+INTTOSTR(T_BGCOT ) + '元' );
ANS.Add('+刷卡礼券总和: '+REPLICATE(' ',7-LENGTH(INTTOSTR(T_PACNA )))+INTTOSTR(T_PACNA ) + '元' );
ANS.Add(' ├信用卡 : '+REPLICATE(' ',7-LENGTH(INTTOSTR(T_PACNA2)))+INTTOSTR(T_PACNA2) + '元' );
ANS.Add(' └礼 券 : '+REPLICATE(' ',7-LENGTH(INTTOSTR(T_PACNA1)))+INTTOSTR(T_PACNA1) + '元' );
ANS.Add('────────────');
ANS.Add('=今日销售总和: '+REPLICATE(' ',7-LENGTH(INTTOSTR(T_BGCOT + T_PACNA)))+INTTOSTR(T_BGCOT + T_PACNA) + '元' );
ANS.Add(' ├已开发票 : '+REPLICATE(' ',7-LENGTH(INTTOSTR(T_BGCOT1) ))+INTTOSTR(T_BGCOT1) + '元' );
ANS.Add(' └未开发票 : '+REPLICATE(' ',7-LENGTH(INTTOSTR(T_BGCOT2) ))+INTTOSTR(T_BGCOT2) + '元' );
ANS.Add('');
ANS.Add('------------------------');
ANS.Add('刷卡人数: '+INTTOSTR(T_T1 ) );
ANS.Add('礼券张数: '+INTTOSTR(T_T2 ) );
ANS.Add('已开发票张数: '+INTTOSTR(T_T3 ) );
ANS.Add('未开发票张数: '+INTTOSTR(T_T4 ) );
ANS.Add('作废发票张数: '+INTTOSTR(T_T5 ) );
ANS.Add('');
ANS.Add('总计结帐次数: '+INTTOSTR(T_M1 ) );
ANS.Add('是会员人数: '+INTTOSTR(T_M2 ) );
ANS.Add('非会员人数: '+INTTOSTR(T_M3 ) );
END;
IF T_KIND = 'INVOICE' THEN
BEGIN
ANS.Clear;
ANS.Add('发票号码');
ANS.Add('起始号码- '+T_IV1);
ANS.Add('结束号码- '+T_IV2);
END;
IF T_KIND = 'INV' THEN
BEGIN
ANS.Clear;
ANS := INV;
END;
RESULT := ANS;
END;
FUNCTION PERMISSION_CHECK(T_USER, PMSFUN :STRING):BOOLEAN;
VAR
QDBCHECK : TQUERY;
BEGIN
TRY
QDBCHECK := TQUERY.Create(APPLICATION.Owner);
QDBCHECK.DatabaseName := 'MAIN';
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('SELECT * FROM SYSPMS');
QDBCHECK.SQL.Add('WHERE BNENO = '''+T_USER +'''');
QDBCHECK.SQL.Add(' AND PMSFUN = '''+PMSFUN+'''');
TRY
QDBCHECK.Close;
QDBCHECK.Open;
EXCEPT
SHOWMESSAGE('权限表无法打开, 无法打开权限!'); RESULT := FALSE;
END;
IF QDBCHECK.Eof = FALSE THEN RESULT := QDBCHECK.FieldByName('PMSPMS').AsBOOLEAN;
IF QDBCHECK.Eof = TRUE THEN RESULT := FALSE;
//特殊权限
IF T_USER = _SUPER_USER_ID THEN RESULT := TRUE;
IF T_USER = 'admin' THEN RESULT := TRUE;
IF RESULT = FALSE THEN SHOWMESSAGE('很抱歉, 目前您没有权限使用此功能!');
FINALLY
QDBCHECK.Free;
END;
END;
FUNCTION READ_BMAN_PMS(BNENO,PMSFUN :STRING):BOOLEAN;
VAR QDBCHECK : TQUERY;
BEGIN
TRY
QDBCHECK := TQUERY.Create(APPLICATION.Owner);
QDBCHECK.DatabaseName := 'MAIN';
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('SELECT * FROM SYSPMS');
QDBCHECK.SQL.Add('WHERE BNENO = '''+BNENO +'''');
QDBCHECK.SQL.Add(' AND PMSFUN = '''+PMSFUN+'''');
QDBCHECK.Close;
QDBCHECK.Open;
IF QDBCHECK.Eof = FALSE THEN RESULT := QDBCHECK.FieldByName('PMSPMS').AsBOOLEAN;
IF QDBCHECK.Eof = TRUE THEN RESULT := FALSE;
FINALLY
QDBCHECK.Free;
END;
END;
FUNCTION WRITE_BMAN_PMS(BNENO,PMSFUN:STRING;VALUE :BOOLEAN ):BOOLEAN;
VAR QDBCHECK : TQUERY;
BEGIN
TRY
QDBCHECK := TQUERY.Create(APPLICATION.Owner);
QDBCHECK.DatabaseName := 'MAIN';
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('SELECT * FROM SYSPMS');
QDBCHECK.SQL.Add('WHERE BNENO = '''+BNENO +'''');
QDBCHECK.SQL.Add(' AND PMSFUN = '''+PMSFUN+'''');
QDBCHECK.Close;
QDBCHECK.Open;
TRY
IF QDBCHECK.Eof = FALSE THEN
BEGIN //FOUND
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('UPDATE SYSPMS SET ');
QDBCHECK.SQL.Add('PMSPMS = '+BOOLEANTOSTR(VALUE)+'');
QDBCHECK.SQL.Add('WHERE BNENO = '''+BNENO +'''');
QDBCHECK.SQL.Add(' AND PMSFUN = '''+PMSFUN+'''');
QDBCHECK.ExecSQL;
END ELSE BEGIN // NOT FOUND
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('INSERT INTO SYSPMS');
QDBCHECK.SQL.Add('( BNENO, PMSFUN, PMSPMS )');
QDBCHECK.SQL.Add('VALUES ');
QDBCHECK.SQL.Add('('''+BNENO +''',');
QDBCHECK.SQL.Add(' '''+PMSFUN +''',');
QDBCHECK.SQL.Add(' '''+BOOLEANTOSTR(VALUE) +''')');
QDBCHECK.ExecSQL;
END;
RESULT := TRUE;
EXCEPT
RESULT := FALSE;
END;
FINALLY
QDBCHECK.Free;
END;
END;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -