📄 pj_add.pas
字号:
txt_gg.Enabled := True;
txt_pj.Enabled := True;
b1.Enabled := True;
b2.Enabled := True;
b3.Enabled := True;
//
curState := dsBrowse;
EnabledComponent(dsBrowse);
end;
procedure Tfrm_pj_add.ExeDelandInit;
var
intSum: Double;
f_fk_sum: Double;
begin
if MessageBox(Handle, '确实要删除当前记录?', '沈阳信德', MB_ICONQUESTION or MB_OKCANCEL) = ID_OK then begin
intSum := qe_pj_add.FieldByName('pj_ck_sum').Value;
if intSum > 0.01 then begin
MessageBox(Handle, '配件已经出库,请首先进行配件退库,才可删除', '沈阳信德', MB_ICONQUESTION or MB_OK);
Exit;
end;
f_fk_sum := qe_pj_add.FieldByName('pj_fk_sum').Value;
if f_fk_sum > 0.01 then begin
MessageBox(Handle, '存在预返库数量,请先退库', '沈阳信德', MB_ICONQUESTION or MB_OK);
Exit;
end;
sp_del_from_pj_add.ParamByName('@ipj_id').Value := qe_pj_add.FieldByName('pj_id').AsInteger;
sp_del_from_pj_add.ExecProc;
//
qe_pj_add.Close;
qe_pj_add.Open;
qe_pj_add.First;
end;
//
EnabledComponent(dsBrowse);
end;
procedure Tfrm_pj_add.QueryResult;
var
intResult: integer;
begin
intResult := 0;
//
qe_jy1.Close;
qe_jy1.ParamByName('ibh').Value := Trim(combo_bh.Text);
qe_jy1.Open;
qe_jy1.First;
//
if (qe_jy1.Bof) and (qe_jy1.Eof) then begin
MessageBox(Handle, '未找到此委托编号相关的登记信息', '沈阳信德', MB_ICONQUESTION or MB_OK);
intResult := 1;
end;
//
if intResult = 0 then begin
if (qe_jy1.FieldByName('dj_wx_kind').AsString) = '三包' then begin
cb_sb.Checked := True;
cb_sb.Enabled := False;
cur_sb := 1;
end else begin
cb_sb.Checked := False;
cb_sb.Enabled := True;
cur_sb := 0;
end;
//
qe_pj_add.Close;
qe_pj_add.ParamByName('ibh').Value := Trim(combo_bh.Text);
qe_pj_add.Open;
qe_pj_add.First;
//
cur_bh := Trim(combo_bh.Text);
cur_cph := Trim(qe_jy1.FieldByName('dj_cph').AsString);
cur_cx := Trim(qe_jy1.FieldByName('dj_cx').AsString);
cur_cz := Trim(qe_jy1.FieldByName('dj_cz').AsString);
cur_czdw := Trim(qe_jy1.FieldByName('dj_czdw').AsString);
cur_dph := Trim(qe_jy1.FieldByName('dj_dph').AsString);
//
cur_bx := qe_jy1.FieldByName('dj_bx_bs').AsInteger;
if cur_bx = 1 then
cur_dj := 'pj_sj'
else if cur_bx = 0 then
cur_dj := 'pj_sj';
//
EnabledComponent(dsBrowse);
end else if intResult = 1 then begin
qe_pj_add.Close;
qe_jy1.Close;
//
cmd_edit.Enabled := False;
cmd_new.Enabled := False;
cmd_save.Enabled := False;
cmd_cancel.Enabled := False;
cmd_del.Enabled := False;
cmd_print.Enabled := False;
cmd_print1.Enabled := False;
end;
end;
procedure Tfrm_pj_add.ExportInit;
var
intXSum, intOSum: Double;
strKind, strGg, strName: string;
intpos: integer;
intId: integer;
begin
if MessageBox(Handle, '确定要将追加配件出库吗?', '沈阳信德', MB_ICONQUESTION or MB_OKCANCEL) = ID_CANCEL then
Exit;
//
qe_jy.Close;
qe_jy.SQL.Clear;
qe_jy.SQL.Add('SELECT * FROM PJ_ADD WHERE DJ_BH = ''' + cur_bh + '''');
qe_jy.Open;
qe_jy.First;
//
intpos := 0;
lst_kind.Clear;
lst_gg.Clear;
lst_name.Clear;
lst_sum.Clear;
lst_id.Clear;
while not qe_jy.Eof do begin
intXSum := qe_jy.FieldByName('pj_xz_sum').Value;
strKind := Trim(qe_jy.FieldByName('pj_kind_id').AsString);
strGg := Trim(qe_jy.FieldByName('pj_gg_id').AsString);
strName := Trim(qe_jy.FieldByName('pj_iid').AsString);
intId := qe_jy.FieldByName('pj_id').AsInteger;
//
if intXSum >= 0.01 then begin
qe_jy2.Close;
qe_jy2.ParamByName('ikind').Value := strKind;
qe_jy2.ParamByName('igg').Value := strGg;
qe_jy2.ParamByName('iname').Value := strName;
qe_jy2.Open;
qe_jy2.First;
//
if (qe_jy2.Bof) and (qe_jy2.Eof) then begin
//MessageBox(Handle, '库存中不存在该配件', '沈阳信德', MB_ICONQUESTION or MB_OK);
//intpos := 1;
//Break;
intXSum := 0;
end else begin
intOSum := qe_jy2.FieldByName('pj_sum').Value;
if intOSum < 0.01 then begin
//MessageBox(Handle, '该配件库存数量为0', '沈阳信德', MB_ICONQUESTION or MB_OK);
//intpos := 1;
//Break;
intXSum := 0;
end else begin
if intOSum < intXSum then begin
//MessageBox(Handle, '出库数量大于现库存数量,配件出库失败', '沈阳信德', MB_ICONQUESTION or MB_OK);
//intpos := 1;
//Break;
intXSum := intOSum;
end;
end;
end;
//
lst_kind.Items.Add(strKind);
lst_gg.Items.Add(strGg);
lst_name.Items.Add(strName);
lst_sum.Items.Add(FloatToStr(intXSum));
lst_id.Items.Add(IntToStr(intId));
end;
//
qe_jy.Next;
end;
//
if intpos = 1 then begin
qe_jy.Close;
qe_jy2.Close;
Exit;
end else begin
if lst_kind.Items.Count = 0 then begin
MessageBox(Handle, '没有新增配件可出库', '沈阳信德', MB_ICONQUESTION or MB_OK);
qe_jy.Close;
qe_jy2.Close;
Exit;
end;
for intpos := 0 to lst_kind.Items.Count - 1 do begin
sp_up_pj_ck.ParamByName('@ipos').Value := 1;
sp_up_pj_ck.ParamByName('@ipj_kind_id').Value := lst_kind.Items[intpos];
sp_up_pj_ck.ParamByName('@ipj_gg_id').Value := lst_gg.Items[intpos];
sp_up_pj_ck.ParamByName('@ipj_id').Value := lst_name.Items[intpos];
sp_up_pj_ck.ParamByName('@ipj_sum').Value := StrToFloat(lst_sum.Items[intpos]);
sp_up_pj_ck.ExecProc;
//
sp_up_pj_add1.ParamByName('@ipos').Value := 1;
sp_up_pj_add1.ParamByName('@ipj_xz_sum').Value := StrToFloat(lst_sum.Items[intpos]);
sp_up_pj_add1.ParamByName('@ipj_id').Value := StrToInt(lst_id.Items[intpos]);
sp_up_pj_add1.ParamByName('@idate').Value := frm_log.controlDate(DateToStr(Date()));
sp_up_pj_add1.ExecProc;
end;
//
qe_jy.Close;
qe_jy2.Close;
//
qe_pj_add.Close;
qe_pj_add.Open;
qe_pj_add.Last;
end;
end;
////////////////////////////////////////////////////////////////////////////////
// //
// THE CLICK PROCEDURE FOR BUTTONS OF CONTROLING RECORDS //
// //
////////////////////////////////////////////////////////////////////////////////
procedure Tfrm_pj_add.ControlClick1(Sender: TObject);
var
intResult: integer;
i: integer;
intTag: integer;
begin
intTag := TBitBtn(Sender).Tag;
case intTag of
20: begin //APPENDING NEW RECORD
for i := 1 to 3 do
hideList[i].Visible := False;
//
if (curState = dsInsert) and (cmd_save.Enabled) then begin
intResult := RuleCheck;
if intResult = 1 then
Exit
else begin
NewSave;
qe_pj_add.Close;
qe_pj_add.Open;
qe_pj_add.Last;
end;
end;
//
NewInit;
end;
21: EditInit; //EDITING THE CURRENT RECORD
22: begin //SAVING THE EDITED RECORD
for i := 1 to 3 do
hideList[i].Visible := False;
//
if curState = dsInsert then begin
intResult := RuleCheck;
if intResult = 1 then
Exit
else begin
NewSave;
qe_pj_add.Close;
qe_pj_add.Open;
qe_pj_add.Last;
end;
end else if curState = dsEdit then begin
intResult := RuleCheck1;
if intResult = 1 then
Exit
else
qe_pj_add.Post;
end;
//
SaveInit;
end;
23: begin //RESTORING THE EDTING RECORD TO BEGINNING STATUS
for i := 1 to 3 do
hideList[i].Visible := False;
//
CancelInit;
end;
24: begin //DELETE THE CURRENT RECORD FROM DATABASE
ExeDelandInit;
end;
25: begin //EXPORT THE GOODS FOR REPAIR
ExportInit;
end;
26: PrintInit; //QUERYING THE RECORDSET
end;
end;
////////////////////////////////////////////////////////////////////////////////
// //
// FORM PROCEDURE(SHOW, CLOSE, CLOSEQUERY, DESTROY) //
// //
////////////////////////////////////////////////////////////////////////////////
procedure Tfrm_pj_add.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure Tfrm_pj_add.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
var
intResult: integer;
begin
CanClose := True;
//
if (curState = dsInsert) or (curState = dsEdit) then begin
if cmd_save.Enabled then begin
intResult := MessageBox(Handle, '记录正被编辑, 是否在关闭窗体前保存所作修改?', '沈阳信德', MB_YESNOCANCEL or MB_ICONQUESTION);
if intResult = ID_YES then begin
if curState = dsInsert then
intResult := RuleCheck
else if curState = dsEdit then
intResult := RuleCheck1;
if intResult = 1 then begin
CanClose := False;
Exit;
end;
if curState = dsEdit then
qe_pj_add.Post
else if curState = dsInsert then
NewSave;
CanClose := True;
end else if intResult = ID_NO then begin
if curState = dsEdit then
qe_pj_add.Cancel;
CanClose := True;
end else if intResult = ID_CANCEL then
CanClose := False;
end;
end;
//
if CanClose then begin
qe_pj_add.Close;
qe_pj.Close;
qe_gg.Close;
qe_name.Close;
qe_jy.Close;
qe_jy1.Close;
qe_jy2.Close;
//
frm_main.mu_yw_gl_pj.Enabled := True;
frm_main.cmd_add.Enabled := True;
frm_main.current_handle := 0;
//
frm_main.Tag := 1; //标识窗体能否关闭; 1-能关闭;2-不能关闭;
end;
end;
procedure Tfrm_pj_add.FormShow(Sender: TObject);
begin
qe_pj_add.Close;
//
frm_main.mu_yw_gl_pj.Enabled := False;
frm_main.cmd_add.Enabled := False;
//
frm_main.current_handle := Handle;
//
arrayInit;
lstInfoInit;
InitBHList;
//
cmd_new.Enabled := False;
cmd_edit.Enabled := False;
cmd_save.Enabled := False;
cmd_cancel.Enabled := False;
cmd_del.Enabled := False;
cmd_print.Enabled := False;
cmd_print1.Enabled := False;
//
combo_bh.SetFocus;
end;
procedure Tfrm_pj_add.FormDestroy(Sender: TObject);
begin
qe_pj_add := nil;
qe_pj := nil;
qe_gg := nil;
qe_name := nil;
qe_jy := nil;
qe_jy1 := nil;
qe_jy2 := nil;
//
frm_pj_add := nil;
end;
procedure Tfrm_pj_add.combo_bhChange(Sender: TObject);
begin
QueryResult;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -