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

📄 unposa.pas

📁 主要介绍超市管理系统的后台系统,后台程序是系统初始化和系统维护最常使用的一部分程序,主要任务是建产基本数据,进出货盘点和打印报表.后台程序主要负责的都是管理上的功能,当后台建立完整的数据后,前台才能顺
💻 PAS
📖 第 1 页 / 共 2 页
字号:









// HOT KEY =====================================================================================
procedure TFMPOSA.ESCClick(Sender: TObject);
begin
  VAR_INI;     //全部清除
  ED_INPUT_SETFOCUS;

  INC(_TB_ESC_CNT);     //按ESC的次数
  IF (_TB_TOTAL_REC=0)AND(_TB_ESC_CNT >= 3 ) THEN     //按ESC的次数
     BEGIN
     IF Application.FindComponent('FMPOSAKEY')=nil then Application.CreateForm(TFMPOSAKEY,  FMPOSAKEY  );
        FMPOSAKEY.SHOWMODAL;
     _TB_ESC_CNT := 0;
     END;
end;


procedure TFMPOSA.F1Click(Sender: TObject);
VAR S : STRING;
begin
  IF (_TB_MINUSP = FALSE) AND (_TB_TOTAL_PRICE<=0) THEN
     BEGIN
     Case MessageDlg('您输入的总计为负值 '+#10#13+
          '按 Yes 返回销货' +#10#13+
          '按 No  取消销货' +#10#13 ,mtConfirmation,[mbYes,mbNo],0) of
          mrYES : EXIT;
          mrNO  : ESC.Click;
          end;
     END;

  IF _TB_TOTAL_REC = 0 THEN
     BEGIN
     ED_INPUT_SETFOCUS;   EXIT;
     END;

  IF Application.FindComponent('FMPOSAF1')=NIL THEN
     BEGIN
     Application.CreateForm(TFMPOSAF1,  FMPOSAF1  );
     FMPOSAF1.SHOWMODAL;
     END;
  
  ED_INPUT_SETFOCUS;
end;

procedure TFMPOSA.F2Click(Sender: TObject);
begin
  //检查权限============================================
  if PERMISSION_CHECK(_USER_ID, 'UNPOSAC') = FALSE then   EXIT;
  
  //新增开钱箱记录
  SYSLOG_INSERT('CBX',_TB_NUMBER,'手动开钱箱');
  try INVOICE_OPEN_CASHBOX;  except SHOWMESSAGE('钱箱无法开启!');   end;
end;

procedure TFMPOSA.F3Click(Sender: TObject);
VAR Q, P: REAL;
    OLD_AMOUNT : STRING;
begin
  OLD_AMOUNT := OUT_GRID.Cells[3,OUT_GRID.Row];
  
  IF TRIM(OUT_GRID.Cells[1,1]) =  '' THEN EXIT;
  IF TRIM(OUT_GRID.Cells[1,OUT_GRID.Row]) =  '' THEN
     BEGIN
     OUT_GRID.Row := 1;   EXIT;
     END;

  //小数无条件四舍五入
  IF _TB_AUTO_ROUND = TRUE THEN Q := FLOATTOINT_ROUND( STRTOFLOATDEF(ED_INPUT.TEXT,1))
                         ELSE Q := FLOATTOINT( STRTOFLOATDEF(ED_INPUT.TEXT,1));

  P := STRTOFLOATDEF(OUT_GRID.Cells[4,OUT_GRID.Row],0);
  //IF SYS_BACK_MODE = TRUE THEN Q := 0 - Q; //退货模式

  OUT_GRID.Cells[3,OUT_GRID.Row] := FLOATTOSTR(Q);

  //小数无条件四舍五入
  IF _TB_AUTO_ROUND = TRUE THEN OUT_GRID.Cells[5,OUT_GRID.Row] := INTTOSTR(FLOATTOINT_ROUND(Q*P))
                           ELSE OUT_GRID.Cells[5,OUT_GRID.Row] := INTTOSTR(FLOATTOINT(Q*P));

  // 客显 ===============================================================
  DSP_TITLE;
  DSP_TEXT1('Change Single Amount','R');
  DSP_TEXT2(FILL_STR(' ', OLD_AMOUNT, 'L', 7 )+'. -> '+FILL_STR(' ', OUT_GRID.Cells[3,OUT_GRID.Row], 'L', 7 )+'.' ,'R');
  // 客显 ===============================================================

  OUT_Grid.Row := 1;
  ED_INPUT_SETFOCUS;
end;

procedure TFMPOSA.F4Click(Sender: TObject);
VAR Q, P: REAL;
    OLD_PRICE : STRING;
begin
  OLD_PRICE := OUT_GRID.Cells[5,OUT_GRID.Row];

  IF _TB_SET_CHG_PRICE = FALSE THEN
    BEGIN
    ED_INPUT_SETFOCUS;  EXIT;
    END;

  IF TRIM(OUT_GRID.Cells[1,1]) =  '' THEN EXIT;
  IF TRIM(OUT_GRID.Cells[1,OUT_GRID.Row]) =  '' THEN
     BEGIN
     OUT_GRID.Row := 1;   EXIT;
     END;

  IF _TB_SET_WIN_PRICE = TRUE THEN
     BEGIN
     IF Application.FindComponent('FMPOSAPRICE')=nil then Application.CreateForm(TFMPOSAPRICE, FMPOSAPRICE  );
        FMPOSAPRICE.ED_CHANGE_QTY.TEXT := OUT_GRID.Cells[3,OUT_GRID.Row];
        FMPOSAPRICE.SHOWMODAL;
     END ELSE BEGIN
     IF LENGTH(ED_INPUT.TEXT) <=7 THEN
     OUT_GRID.Cells[5,OUT_GRID.Row] := FLOATTOSTR(STRTOFLOATDEF(ED_INPUT.TEXT,1));
     END;

  // 客显 ===============================================================
  DSP_TITLE;
  DSP_TEXT1('Change Single Price!','R');
  DSP_TEXT2(FILL_STR(' ', OLD_PRICE, 'L', 7 )+'. -> '+FILL_STR(' ', OUT_GRID.Cells[5,OUT_GRID.Row], 'L', 7 )+'.' ,'R');
  // 客显 ===============================================================

  OUT_Grid.Row := 1;
  ED_INPUT_SETFOCUS;
end;

procedure TFMPOSA.F5Click(Sender: TObject);
begin
  IF FormExists('FMPOSACARD')=FALSE THEN Application.CreateForm(TFMPOSACARD, FMPOSACARD );
  FMPOSACARD.ED_PACNA.Text := ED_INPUT.Text;
  FMPOSACARD.SHOWMODAL;
  ED_INPUT_SETFOCUS;
end;

procedure TFMPOSA.F6Click(Sender: TObject);
begin
  IF FormExists('FMPOSAGIFT')=FALSE THEN Application.CreateForm(TFMPOSAGIFT, FMPOSAGIFT );
  FMPOSAGIFT.ED_PGCNA.Text := ED_INPUT.Text;
  FMPOSAGIFT.SHOWMODAL;
  ED_INPUT_SETFOCUS;
end;

procedure TFMPOSA.F7Click(Sender: TObject);
begin
  _TB_PACIV := ED_INPUT.TEXT;
  ED_INPUT_SETFOCUS;

  // 客显 ===============================================================
  DSP_TITLE;
  DSP_TEXT1('Standard NO:' ,'R');
  DSP_TEXT2(FILL_STR(' ', _TB_PACIV, 'L', 20 ) ,'R');
  // 客显 ===============================================================
end;

procedure TFMPOSA.F8Click(Sender: TObject);
begin
  IF TRIM(ED_INPUT.TEXT) = '' THEN
     BEGIN
     FIND_BMEM(JINPUTBOX('会员卡输入','请输入会员卡号码',ED_INPUT.TEXT),1);  //找会员
     END ELSE BEGIN
     FIND_BMEM(ED_INPUT.TEXT,1);  //找会员
     END;

  ED_INPUT_SETFOCUS;
end;

procedure TFMPOSA.F9Click(Sender: TObject);
begin
  _TB_DISC_PRICE := STRTOFLOATDEF(ED_INPUT.TEXT,0);
  ED_INPUT.Clear;
  ED_INPUT_SETFOCUS;

  // 客显 ===============================================================
  DSP_TITLE;
  DSP_TEXT1('Discount Price :' ,'R');
  DSP_TEXT2(FILL_STR(' ', FLOATTOSTR(_TB_DISC_PRICE) , 'L', 20 ) ,'R');
  // 客显 ===============================================================
end;

procedure TFMPOSA.F10Click(Sender: TObject);
begin
  _TB_DISC_PERCENT := STRTOFLOATDEF(ED_INPUT.TEXT,1);
  ED_INPUT.Clear;
  ED_INPUT_SETFOCUS;
  
  // 客显 ===============================================================
  DSP_TITLE;
  DSP_TEXT1('Discount Percent :' ,'R');
  DSP_TEXT2(FILL_STR(' ', FLOATTOSTR(_TB_DISC_PERCENT) + ' %' , 'L', 18 ) ,'R');
  // 客显 ===============================================================
end;

procedure TFMPOSA.F11Click(Sender: TObject);
VAR I : INTEGER;
begin
  IF _TB_TMP_GRID = FALSE  THEN  //暂存区是否有东西
     BEGIN
     _TB_TMP_BMENO      := ED_INPUT.Text;   //暂存_会员编号
     _TB_TMP_GRID   := TRUE;  //暂存区是否有东西
     FOR I := 1 TO 200 DO
         BEGIN
         OUT_GRID_TMP.Rows[I].Text := OUT_GRID.Rows[I].Text;
         OUT_GRID.Rows[I].Text := '' ;
         IF TRIM(OUT_GRID.Cells[1,I+1]) =  '' THEN BREAK;
         END;

     VAR_INI;     //全部清除
  
     // 客显 ===============================================================
     DSP_TITLE;
     DSP_TEXT1('Save Data To Memory ! ' ,'R');
     DSP_TEXT2('' ,'R');
     // 客显 ===============================================================

     END ELSE BEGIN
     ED_INPUT.Text := _TB_TMP_BMENO;   //暂存_会员编号
     FIND_BMEM(_TB_TMP_BMENO,1);  //找会员
  
     _TB_TMP_GRID := FALSE;  //暂存区是否有东西
     FOR I := 1 TO 200 DO
         BEGIN
         OUT_GRID.Rows[I].Text := OUT_GRID_TMP.Rows[I].Text;
         OUT_GRID_TMP.Rows[I].Text := '' ;
         IF TRIM(OUT_GRID_TMP.Cells[1,I+1]) =  '' THEN BREAK;
         END;
  
     // 客显 ===============================================================
     DSP_TITLE;
     DSP_TEXT1('Load Data OK ! ' ,'R');
     DSP_TEXT2('' ,'R');
     // 客显 ===============================================================
     END;

  ED_INPUT_SETFOCUS;
end;

procedure TFMPOSA.F12Click(Sender: TObject);
VAR I, TARGET, DEL_REC :INTEGER;
BEGIN
  DEL_REC := _TB_TOTAL_REC - STRTOINTDEF(ED_INPUT.TEXT,-1);
  TARGET  := OUT_GRID.Row;
  IF (STRTOINTDEF(ED_INPUT.TEXT,-1) >= 0) THEN TARGET := DEL_REC + 1;
  
  //条件不合 跳出
  IF (TARGET <= 0) OR (TRIM(OUT_GRID.Cells[1,1])= '') THEN
     BEGIN
     ED_INPUT_SETFOCUS;
     EXIT;
     END;
  
  DEC(_TB_TOTAL_REC);      //删除后上移
  FOR I := TARGET TO 200 DO
      BEGIN
      OUT_GRID.Rows[I].Text := OUT_GRID.Rows[I+1].Text;
      IF TRIM(OUT_GRID.Cells[1,I+1]) =  '' THEN BREAK;
      END;
  
  FOR I := 1 TO 200 DO
      BEGIN
      OUT_GRID.Cells[0,I] := INTTOSTR(_TB_TOTAL_REC-I+1);
      IF TRIM(OUT_GRID.Cells[1,I+1]) =  '' THEN BREAK;
      END;
  
  _TB_DSP_CHANGED:= FALSE;  //已更动, 客显要更新
  ED_INPUT_SETFOCUS;

  // 客显 ===============================================================
  DSP_TITLE;
  DSP_TEXT1('Delete Single Rec !' ,'R');
  DSP_TEXT2('' ,'R');
  // 客显 ===============================================================
end;

procedure TFMPOSA.CTRLLClick(Sender: TObject);
VAR T_SUB, I : INTEGER;
    T_BGCOT  : REAL;
BEGIN
  IF _TB_TOTAL_REC   <=0 THEN EXIT;
  IF _TB_TOTAL_PRICE <=0 THEN EXIT;
  
  T_SUB := STRTOINTDEF(ED_INPUT.TEXT,-1);
  IF T_SUB <=0 THEN EXIT;
  
  IF _TB_LAST_SUB = TRUE THEN
     BEGIN
     _TB_LAST_PRICE  := T_SUB;  //去尾数另外打印
     END ELSE BEGIN
     WHILE T_SUB > 0 DO
       BEGIN
       FOR I := 1 TO 200 DO
         BEGIN
         T_BGCOT := STRTOFLOATDEF(OUT_GRID.Cells[5,I],-1);
         IF T_BGCOT <= 0 THEN CONTINUE;   //小于等于 0 , 不去尾数
  
         OUT_GRID.Cells[5,I] := FLOATTOSTR(T_BGCOT-1);
         DEC(T_SUB);
         IF T_SUB <= 0 THEN
            BEGIN
            ED_INPUT_SETFOCUS;
            EXIT;
            END;
         IF TRIM(OUT_GRID.Cells[1,I+1]) =  '' THEN BREAK;
         END;
         IF TRIM(OUT_GRID.Cells[1,I+1]) =  '' THEN BREAK;
       END;
     END;
  
  _TB_DSP_CHANGED:= FALSE;  //已更动, 客显要更新
  ED_INPUT_SETFOCUS;
end;

procedure TFMPOSA.CTRLCClick(Sender: TObject);
VAR I : INTEGER;
begin
  I := STRTOINTDEF(ED_INPUT.TEXT,0);
  IF I >= 0 THEN _TB_INV_CNT := I;
  ED_INPUT_SETFOCUS;
end;

procedure TFMPOSA.CTRLPClick(Sender: TObject);
begin
  IF _TB_PRN_PRINTING = TRUE THEN //是否打印发票
     BEGIN
     IF _TB_PRN_ALWAYSON = TRUE THEN //预设 强迫 要开发票,就不能不打印发票
        BEGIN
        _TB_PRN_PRINTING := TRUE; //是否打印发票
        END ELSE BEGIN
        _TB_PRN_PRINTING := FALSE; //是否打印发票
        END;
     END ELSE BEGIN
     _TB_PRN_PRINTING := TRUE; //是否打印发票
     END;
end;

procedure TFMPOSA.CTRLHClick(Sender: TObject);
begin
  IF Application.FindComponent('FMPOSAKEY')=nil then Application.CreateForm(TFMPOSAKEY,  FMPOSAKEY  );
  FMPOSAKEY.SHOWMODAL;
end;

procedure TFMPOSA.CTRLIClick(Sender: TObject);
begin
  IF (ED_INPUT.Text<>'') AND (INVOICE_NO_CHECK(ED_INPUT.Text)=TRUE) THEN
     _TB_INV_NO := ED_INPUT.TEXT;

  ED_INPUT_SETFOCUS;
end;

procedure TFMPOSA.CTRLNClick(Sender: TObject);
begin
  IF Application.FindComponent('FMBGDSQ')=nil then
     BEGIN
     Application.CreateForm(TFMBGDSQ, FMBGDSQ );
     FMBGDSQ.SHOWMODAL;
     END;
  ED_INPUT_SETFOCUS;
end;

procedure TFMPOSA.CTRLMClick(Sender: TObject);
begin
  IF Application.FindComponent('FMBMEMQ')=nil then
     BEGIN
     Application.CreateForm(TFMBMEMQ, FMBMEMQ );
     FMBMEMQ.SHOWMODAL;
     END;
  ED_INPUT_SETFOCUS;
end;


procedure TFMPOSA.CTRLSClick(Sender: TObject);
begin
  IF (_USER_ID <> '') THEN
     BEGIN
     IF Application.FindComponent('FMPOSAMESSAGE')=nil then Application.CreateForm(TFMPOSAMESSAGE,  FMPOSAMESSAGE  );
     FMPOSAMESSAGE.SHOWMODAL;
     END;
  ED_INPUT_SETFOCUS;
end;

procedure TFMPOSA.CTRLVClick(Sender: TObject);
begin
  _TB_BACK_MODE := NOT _TB_BACK_MODE; //退货模式
end;

procedure TFMPOSA.CTRLXClick(Sender: TObject);
begin
 {
  IF Application.FindComponent('FMLOG')=nil then Application.CreateForm(TFMLOG,  FMLOG  );
  FMLOG.LOGIN_NAME := '前台';
  FMLOG.ShowModal;
  ED_INPUT_SETFOCUS;}
end;

procedure TFMPOSA.CTRLZClick(Sender: TObject);
begin
  IF Application.FindComponent('FMPOSASINGLE')=nil then
     BEGIN
     Application.CreateForm(TFMPOSASINGLE, FMPOSASINGLE );
     FMPOSASINGLE.SHOWMODAL;
     END;
  ED_INPUT_SETFOCUS;
end;

procedure TFMPOSA.CTRLF8Click(Sender: TObject);
begin
  IF TRIM(ED_INPUT.TEXT) = '' THEN EXIT;
  IF Application.FindComponent('FMBMEMN,')=nil then Application.CreateForm(TFMBMEMN,  FMBMEMN  );
  IF SENDER = CTRLF5  THEN FMBMEMN.SEARCH_BMENO(ED_INPUT.TEXT);
  IF SENDER = CTRLF6  THEN FMBMEMN.SEARCH_BMNAM(ED_INPUT.TEXT);
  IF SENDER = CTRLF7  THEN FMBMEMN.SEARCH_BMTEL(ED_INPUT.TEXT);
  IF SENDER = CTRLF8  THEN FMBMEMN.SEARCH_BMADR(ED_INPUT.TEXT);
  FMBMEMN.SHOWMODAL;

  IF TRIM(_TB_TMP_BMENO) <> '' THEN
     BEGIN
     FIND_BMEM(_TB_TMP_BMENO,1);  //找产品
     END;
  ED_INPUT_SETFOCUS;
end;

procedure TFMPOSA.CTRLF12Click(Sender: TObject);
begin
  IF TRIM(ED_INPUT.TEXT) = '' THEN EXIT;
  IF Application.FindComponent('FMBGDSN,')=nil then Application.CreateForm(TFMBGDSN,  FMBGDSN  );
  IF SENDER = CTRLF9  THEN FMBGDSN.SEARCH_BGENO(ED_INPUT.TEXT);
  IF SENDER = CTRLF10 THEN FMBGDSN.SEARCH_BGNAM(ED_INPUT.TEXT);
  IF SENDER = CTRLF11 THEN FMBGDSN.SEARCH_BSENO(ED_INPUT.TEXT);
  IF SENDER = CTRLF12 THEN FMBGDSN.SEARCH_BGKIN(ED_INPUT.TEXT);
  FMBGDSN.SHOWMODAL;

  ED_INPUT.TEXT := _TB_TMP_BGENO;
  IF TRIM(_TB_TMP_BGENO) <> '' THEN
     BEGIN
     FIND_BGDS(_TB_TMP_BGENO,1);  //找产品
     CHECK_PRICE;  //检查价钱
     GRID_ADD;
     END;
  ED_INPUT_SETFOCUS;
end;

procedure TFMPOSA.CTRLQClick(Sender: TObject);
begin
  CLOSE;
end;
// HOT KEY ====================================================================





end.


⌨️ 快捷键说明

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