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

📄 mainu.pas

📁 DELPHI编写的商场收银POS机源代码
💻 PAS
📖 第 1 页 / 共 4 页
字号:
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 + -