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