📄 wm_tk.pas
字号:
txt_zj.Caption := FloatToStr(v);
end;
end;
function Tfrm_wm_tk.RuleCheck: integer;
var
code1, code2: integer;
v1 : Double;
v2: Double;
v3: Double;
begin
Result := 0;
//
if Trim(txt_sum.Text) = '' then begin
MessageBox(Handle, '请确定退库数量', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_sum.SetFocus;
Result := 1;
Exit;
end else begin
Val(Trim(txt_sum.Text), v1, code1);
if (code1 <> 0) then begin
MessageBox(Handle, '退库数量无效', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_sum.SetFocus;
Result := 1;
Exit;
end else begin
v3 := cur_ck_sum + cur_fk_sum;
if v1 > v3 then begin
MessageBox(Handle, '退库数量超界', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_sum.SetFocus;
Result := 1;
Exit;
end;
end;
end;
//
if Trim(txt_jj.Text) = '' then begin
if v1 < 0.01 then
v2 := 0
else begin
MessageBox(Handle, '请确定返款金额', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_jj.SetFocus;
Result := 1;
Exit;
end;
end else begin
Val(Trim(txt_jj.Text), v2, code2);
if (code2 <> 0) then begin
MessageBox(Handle, '返款金额无效', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_jj.SetFocus;
Result := 1;
Exit;
end else begin
if (v1 < 0.01) and (v2 > 0) then begin
MessageBox(Handle, '没有退货,返款无效', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_jj.SetFocus;
Result := 1;
Exit;
end;
v3 := v1 * cur_dj;
v3 := Int(v3) + Round((Frac(v3)*100))/100;
if v2 > v3 then begin
MessageBox(Handle, '返款金额超界', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_jj.SetFocus;
Result := 1;
Exit;
end;
end;
end;
//
v3 := cur_ck_sum + cur_fk_sum - v1;
if v3 < 0.01 then v3 := 0;
qe_wm.FieldByName('pj_ck_sum').Value := v3;
qe_wm.FieldByName('pj_fk_sum').Value := v1;
v3 := v1 * cur_dj - v2;
if v3 < 0.01 then v3 := 0;
qe_wm.FieldByName('pj_other').Value := v3;
end;
procedure Tfrm_wm_tk.EditInit;
begin
pe_bh.Enabled := False;
pe_info.Enabled := False;
//
cmd_edit.Enabled := False;
cmd_cancel.Enabled := True;
cmd_save.Enabled := False;
cmd_print.Enabled := False;
//
pe_edit.Enabled := True;
txt_sum.SetFocus;
//
cur_dj := qe_wm.FieldByName('pj_dj').Value;
cur_ck_sum := qe_wm.FieldByName('pj_ck_sum').Value;
cur_fk_sum := qe_wm.FieldByName('pj_fk_sum').Value;
//
qe_wm.Edit;
end;
procedure Tfrm_wm_tk.ControlChange(Sender: TObject);
var
strValue: string;
strText: string;
code: integer;
v, v1: Double;
begin
if qe_wm.State = dsEdit then begin
EnabledComponent(dsEdit);
if TEdit(Sender).Tag = 1 then begin
strValue := '';
strText := Trim(txt_sum.Text);
//
if (strText = '') then
strValue := ''
else begin
Val(strText, v, code);
if (code <> 0) then
strValue := ''
else begin
v := Int(v) + Round((Frac(v)*100))/100;
v1 := v * cur_dj;
v1 := Int(v1) + Round((Frac(v1)*100))/100;
strValue := FloatToStr(v1);
end;
end;
//
txt_jj.Text := strValue;
end;
end;
end;
procedure Tfrm_wm_tk.controlKeyPress2(Sender: TObject; var Key: Char);
begin
if not (((Key >= '0') and (Key <= '9')) or (Ord(Key) = 8) or (Ord(Key) = 46) or (Ord(Key) = 13)) then
Key := Chr(0);
if Ord(Key) = 13 then controlSetFocus(TWinControl(Sender).Tag);
end;
procedure Tfrm_wm_tk.controlKeyPress1(Sender: TObject; var Key: Char);
begin
if not (((Key >= '0') and (Key <= '9')) or (Ord(Key) = 8) or (Ord(Key) = 46) or (Ord(Key) = 13)) then
Key := Chr(0);
end;
procedure Tfrm_wm_tk.controlSetFocus(intpos: integer);
begin
case intpos of
1: txt_jj.SetFocus;
end;
end;
procedure Tfrm_wm_tk.EnabledComponent(intState: TDataSetState);
begin
case intState of
dsBrowse: begin
cmd_save.Enabled := False;
cmd_cancel.Enabled := False;
cmd_print.Enabled := True;
cmd_edit.Enabled := True;
//
if (qe_wm.Bof) and (qe_wm.Eof) then begin
cmd_print.Enabled := False;
cmd_edit.Enabled := False;
end;
end;
dsEdit : begin
cmd_save.Enabled := True;
cmd_cancel.Enabled := True;
cmd_print.Enabled := False;
cmd_edit.Enabled := False;
end;
dsInsert: begin
cmd_save.Enabled := True;
cmd_cancel.Enabled := True;
cmd_print.Enabled := False;
cmd_edit.Enabled := False;
end;
end;
end;
procedure Tfrm_wm_tk.cmd_saveClick(Sender: TObject);
var
intResult: integer;
begin
intResult := RuleCheck;
if intResult = 1 then
Exit
else begin
qe_wm.Post;
//
SaveInit;
end;
end;
procedure Tfrm_wm_tk.cmd_cancelClick(Sender: TObject);
begin
CancelInit;
end;
procedure Tfrm_wm_tk.cmd_printClick(Sender: TObject);
begin
if MessageBox(Handle, '确定要进行退货结算吗?', '沈阳信德', MB_ICONQUESTION or MB_OKCANCEL) = ID_OK then begin
combo_p.Items.Clear;
combo_p.items.Assign(Printer.Printers);
if combo_p.Items.Count = 0 then begin
MessageBox(Handle, '没有可用的打印机,请添加打印机', '沈阳信德', MB_ICONQUESTION or MB_OK);
Exit;
end;
//
ExportInit;
end;
end;
procedure Tfrm_wm_tk.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure Tfrm_wm_tk.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
var
v: Double;
code: integer;
begin
CanClose := True;
//
Val(Trim(txt_zj.Caption), v, code);
if (code = 0) and ( v > 0.01) then begin
MessageBox(Handle, '此委托编号退库尚未结算,不能退出', '沈阳信德', MB_ICONQUESTION or MB_OK);
CanClose := False;
Exit;
end;
//
if CanClose then begin
qe_wm.Close;
qe_sum.Close;
qe_sum1.Close;
//
frm_main.mu_yw_gl_xs_th.Enabled := True;
frm_main.current_handle := 0;
//
frm_main.Tag := 1; //标识窗体能否关闭; 1-能关闭;2-不能关闭;
end;
end;
procedure Tfrm_wm_tk.FormShow(Sender: TObject);
begin
qe_wm.Close;
qe_wm.ParamByName('ibh').Value := cur_bh;
qe_wm.Open;
qe_wm.First;
//
cur_dw := Trim(qe_wm.FieldByName('pj_ghdw').AsString);
//
frm_main.mu_yw_gl_xs_th.Enabled := False;
frm_main.current_handle := Handle;
//
EnabledComponent(dsBrowse);
end;
procedure Tfrm_wm_tk.FormDestroy(Sender: TObject);
begin
qe_wm := nil;
qe_sum := nil;
qe_sum1 := nil;
//
frm_wm_tk := nil;
end;
procedure Tfrm_wm_tk.cmd_editClick(Sender: TObject);
begin
EditInit;
end;
procedure Tfrm_wm_tk.qe_sum1CalcFields(DataSet: TDataSet);
var
f_fk: Double;
begin
f_fk := qe_sum1.FieldByName('pj_fk_sum').Value * qe_sum1.FieldByName('pj_dj').Value - qe_sum1.FieldByName('pj_other').Value;
f_fk := Int(f_fk) + Round((Frac(f_fk)*100))/100;
qe_sum1.FieldByName('pj_fk').Value := f_fk;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -