📄 sy_ckjhdzd1.pas
字号:
if (V_CKXZ = '16') then //移库-->向邮品基础信息表中插入信息
DoINSYPXX;
Qry_Third.ApplyUpdates; //提交主表
Qry_Main.ApplyUpdates; //题价从表
Qry_Main.Database.Commit;
except
Qry_Main.Database.RollBack;
CHQMsgBox('数据存储错误!');
exit;
end;
Qry_Third.CommitUpdates; //清除缓存的内容
Qry_Main.CommitUpdates;
//刷新出库计划单下拉框
if (V_State = 1) then
begin
V_ItemIndex := CB_PPMC.FieldItems.IndexOf(V_DWDM);
if V_ItemIndex = -1 then
begin
CB_PPMC.Items.Insert(0, V_DWMC);
CB_PPMC.FieldItems.Insert(0, V_DWDM);
CB_PPMC.ItemIndex := 0;
end
else if CB_PPMC.ItemIndex <> V_ItemIndex then
begin
CB_PPMC.ItemIndex := V_ItemIndex;
end;
CB_PPMC.OnChange(nil);
end;
//删除子表为空的主表
if Qry_Main.IsEmpty then
begin
with Qry_Static do
begin
Close;
SQL.Text := 'delete TYS_TXPCKJHDB '
+ ' where CKJHDH=''' + V_CKJHDH + '''';
ExecSQL;
end;
CB_CKJHDH.Items.Delete(CB_CKJHDH.ItemIndex);
if CB_CKJHDH.Items.Count <= 0 then
begin
CB_PPMC.DeleteItems(CB_PPMC.ItemIndex);
CB_PPMC.ItemIndex := 0;
CB_PPMC.OnChange(nil);
end;
CB_CKJHDH.ItemIndex := 0;
//刷新出库计划单
CB_CKJHDHChange(nil);
end;
PS_SetStatus();
end;
procedure TFrmY_CKJHDZD1.BBt_CancelClick(Sender: TObject);
begin
//刷新出库计划单
CB_PPMC.Text := '';
if (CB_PPMC.ItemIndex <> -1) then
CB_PPMC.Text := CB_PPMC.Items[CB_PPMC.ItemIndex];
if CB_CKJHDH.ItemIndex <> -1 then
CB_CKJHDH.Text := CB_CKJHDH.Items[CB_CKJHDH.ItemIndex];
CB_CKJHDHChange(nil);
PS_SetStatus();
end;
procedure TFrmY_CKJHDZD1.CB_CKJHDHChange(Sender: TObject);
begin
CE_KC.Text := '';
Qry_Third.Close;
Qry_Main.Close;
L_CKJHDH.Font.Color := ClBlack;
CE_KC.Font.Color := ClBlue;
if CB_CKJHDH.Text = '' then Exit;
V_CKJHDH := UpperCase(CB_CKJHDH.Text);
with Qry_Third do
begin
Close;
SQL.Clear;
SQL.Add('select * from TYS_TXPCKJHDB ');
SQL.Add('where CKJHDH=''' + V_CKJHDH + '''');
Open;
if not Eof then
begin
V_CKXZ := FieldByName('CKXZ').AsString;
//分配出库
if V_CKXZ = '10' then
E_CKXZ.Text := '零星出库'
else
E_CKXZ.Text := PY_XZDMTOMC(V_CKXZ);
if FieldByName('ZT').AsString = CG_DG then
L_CKJHDH.Font.Color := ClRed
else if FieldByName('ZT').AsString = CG_YCL then
L_CKJHDH.Font.Color := ClGreen;
end;
end;
//刷新出库计划单票品表
with Qry_Main do
begin
Close;
SQL.Clear;
SQL.Add('select a.CKJHDH, a.DWDM, a.PPDM, a.KFDM, a.JJ, a.PPMC, a.XJ, a.ZK, ');
SQL.Add('a.JSJ, a.FPSL, a.SDATE, b.TPMZ MZ from TYS_TXCKJHDPPB a, TB_YZPPXXB b');
SQL.Add('where a.PPDM=b.TDM and CKJHDH=''' + V_CKJHDH + '''');
SQL.Add('order by DWDM, JJ ');
Open;
end;
V_DWDM := Qry_Main.FieldByName('DWDM').AsString;
end;
procedure TFrmY_CKJHDZD1.NDChange(Sender: TObject);
begin
Qry_Third.Close;
Qry_Main.Close;
L_CKJHDH.Font.Color := ClBlack;
if (ND.Text = '') or (YF.Text = '') then Exit;
E_CKXZChange(nil);
end;
procedure TFrmY_CKJHDZD1.PS_AddCKJHDPP();
begin
if not Qry_Main.Locate('KFDM;PPDM;DWDM;JJ', VarArrayof([V_KFDM, V_PPDM, V_DWDM, V_JJ]), []) then
begin
//取消不插入操作
Qry_Main.BeforeInsert := nil;
Qry_Main.Append;
Qry_Main.FieldByName('CKJHDH').AsString := V_CKJHDH;
Qry_Main.FieldByName('KFDM').AsString := V_KFDM;
Qry_Main.FieldByName('DWDM').AsString := V_DWDM;
Qry_Main.FieldByName('PPDM').AsString := V_PPDM;
Qry_Main.FieldByName('PPMC').AsString := V_PPMC;
Qry_Main.FieldByName('MZ').AsFloat := V_MZ;
Qry_Main.FieldByName('JJ').AsFloat := V_JJ;
Qry_Main.FieldByName('XJ').AsFloat := V_XJ;
Qry_Main.FieldByName('FPSL').AsFloat := V_FPSL;
Qry_Main.FieldByName('ZK').AsFloat := V_ZK;
Qry_Main.FieldByName('JSJ').AsFloat := V_JSJ;
Qry_Main.Post;
//恢复补插入操作
Qry_Main.BeforeInsert := Qry_MainBeforeInsert;
end;
end;
procedure TFrmY_CKJHDZD1.PS_DXHCK(); //待销毁出库
begin
V_DWDM := '-2';
V_DWMC := PY_COVDMTOMC(V_DWDM);
end;
procedure TFrmY_CKJHDZD1.PS_FPCK(); //分配出库
var
V_IsEmpty: Boolean;
begin
{ //判断是否有请领单
with Qry_Static do
begin
Close;
SQL.Clear;
SQL.Add('select DISTINCT A.QLDH from tys_txpqld A, TYS_TXPCKJHDB B');
SQL.Add('where A.QLDH=B.BZ(+) and B.BZ IS null and A.ZT=''0''');
SQL.Add('and DWDM <> ''' + VG_UnitID + ''' and ND =''' + ND.Text + ''' and YF =''' + YF.Text + '''');
Open;
if Eof then
V_IsEmpty := True
else
V_IsEmpty := False;
end;
//若没有请领单
if V_IsEmpty then
begin
//判断是否有下级单位
with Qry_Static do
begin
Close;
Qry_Static.SQL.Text := 'select * from TGS_GXDWSJB WHERE TXYW = ''1'' and FHDX =''1'' order by PXM ';
Open;
if Eof then
begin
BBt_CancelClick(nil);
CHQMsgBox('没有发货对象单位!');
Exit;
end;
end;
//选择单位
FrmY_CKJHDZD_XZDW := TFrmY_CKJHDZD_XZDW.Create(nil);
with FrmY_CKJHDZD_XZDW do
begin
DBGrid1.Options := DBGrid1.Options - [dgMultiSelect];
Qry_Static.Close;
Qry_Static.SQL.Text := 'select * from TGS_GXDWSJB WHERE TXYW = ''1'' and FHDX =''1'' order by PXM ';
ShowModal;
if ModalResult <> MrOK then
begin
Free;
BBt_CancelClick(nil);
Exit;
end;
with Qry_Static do
begin
if not Eof then
begin
V_DWDM := FieldByName('DWDM').AsString;
V_DWMC := FieldByName('DWJC').AsString;
end;
end;
Free;
end;
if V_DWDM = '' then
begin
BBt_CancelClick(nil);
Exit;
end;
BBt_AddDWClick(nil);
Exit;
end;}
//零枚票零星请领分配
FrmY_CKJHDZD_XD := TFrmY_CKJHDZD_XD.Create(nil);
with FrmY_CKJHDZD_XD do
begin
V_ND := Self.ND.Text;
V_YF := Self.YF.Text;
if (FrmY_CKJHDZD_XD.ShowModal = MrCancel) then
begin
Free;
BBt_CancelClick(nil);
Exit;
end;
if ((pgc_Select.ActivePage = TabSheet1) and Qry_LXQL1.IsEmpty) or
((pgc_Select.ActivePage = TabSheet2) and Qry_DW.IsEmpty) then
begin
Free;
BBt_CancelClick(nil);
Exit;
end;
if pgc_Select.ActivePage = TabSheet1 then
V_QLDH := Qry_LXQL1.FieldByName('QLDH').AsString
else
begin
V_DWDM := Qry_DW.FieldByName('DWDM').AsString;
V_DWMC := Qry_DW.FieldByName('DWJC').AsString;
end;
Free;
end;
/////
if V_QLDH = '' then
begin
BBt_AddDWClick(nil);
if Qry_Main.IsEmpty then
exit; //BBt_CancelClick(nil);
end;
with Qry_Static2 do
begin
Close;
SQL.Clear;
SQL.Add('select DWDM, DWMC, PPDM, PPMC, SL, MZ from TYS_TXPQLD');
SQL.Add('Where QLDH =''' + V_QLDH + '''');
Open;
while not Eof do
begin
V_DWDM := FieldByName('DWDM').AsString;
V_DWMC := FieldByName('DWMC').AsString;
V_PPDM := FieldByName('PPDM').AsString;
V_FPSL := FieldByName('SL').AsInteger;
V_PPMC := FieldByName('PPMC').AsString;
with Qry_Static do
begin
Close;
SQL.Text := ' select A.KFDM, C.KFMC, B.ZH, A.PPDM, B.TMC PPMC, A.JJ, A.XJ, A.ZK, A.JSJ, A.TS, 0 FPSL'#10#13
+ ' from (' + txp_llkc + ') A,TB_YZPPXXB B, TGS_KFB C , TGS_KFRYDZB D'#10#13
+ ' where A.PPDM = B.TDM and A.KFDM=C.KFDM and A.PPDM = ''' + V_PPDM + ''''#10#13
+ ' and D.YGDM = ''' + VG_UserID + ''' '#13#10
+ ' order by A.TS';
Open;
if not Eof then
begin
//分配量大于库存量,取库存量
if V_FPSL > FieldByName('TS').AsInteger then
V_FPSL := FieldByName('TS').AsInteger;
V_PPMC := FieldByName('PPMC').AsString;
V_KFDM := FieldByName('KFDM').AsString;
V_MZ := Qry_Static2.FieldByName('MZ').AsInteger;
V_JJ := FieldByName('JJ').AsFloat;
V_XJ := FieldByName('XJ').AsFloat;
V_ZK := FieldByName('ZK').AsFloat;
V_JSJ := FieldByName('JSJ').AsFloat;
//凑包凑版
if RG_CB.ItemIndex <> 2 then
V_FPSL := PS_GetCB(V_PPDM, V_FPSL, RG_CB.ItemIndex = 0, RG_FX.ItemIndex = 0);
//添加票品
PS_AddCKJHDPP();
end
else
begin
CHQMsgBox('票品' + V_PPMC + '库存中没有!');
end;
end;
Next;
end;
Close;
end;
//记录请领单号
with Qry_Third do
begin
Edit;
FieldByName('BZ').AsString := V_QLDH;
end;
end;
procedure TFrmY_CKJHDZD1.PS_TJCK(); //退缴出库
begin
with Qry_Static do
begin
Close;
Qry_Static.SQL.Text := 'select * from TGS_GXDWSJB WHERE ZJSJ=''1'' or SJFH=''1'' or (JYYW=''1'' and KH=''1'') or (JYYW=''1'' and FHDX=''1'') order by PXM';
Open;
if Eof then
begin
BBt_CancelClick(nil);
CHQMsgBox('没有退缴对象单位!');
Exit;
end;
Close;
end;
//选择单位
FrmY_CKJHDZD_XZDW := TFrmY_CKJHDZD_XZDW.Create(nil);
with FrmY_CKJHDZD_XZDW do
begin
DBGrid1.Options := DBGrid1.Options - [dgMultiSelect];
Qry_Static.Close;
Qry_Static.SQL.Text := 'select * from TGS_GXDWSJB WHERE ZJSJ=''1'' or SJFH=''1'' or (TXYW=''1'' and KH=''1'') or (TXYW=''1'' and FHDX=''1'') order by PXM ';
Qry_Static.Open;
ShowModal;
if ModalResult <> MrOK then
begin
Free;
CB_CKJHDHChange(nil);
Exit;
end;
//取得临时的单位代码和单位名称
V_DWDM := Qry_Static.FieldByName('DWDM').AsString;
V_DWMC := Qry_Static.FieldByName('DWJC').AsString;
Free;
end;
end;
procedure TFrmY_CKJHDZD1.PS_ZXCK(); //注销出库
begin
V_DWDM := '-3';
V_DWMC := PY_COVDMTOMC(V_DWDM);
end;
procedure TFrmY_CKJHDZD1.PS_YKCK(); //移库出库
begin
V_DWDM := VG_UnitID;
V_DWMC := VG_UnitName;
end;
procedure TFrmY_CKJHDZD1.BBt_AddDWClick(Sender: TObject);
begin
if Qry_Third.IsEmpty then Exit;
if (V_CKXZ = '10') then
begin
FrmY_CKJHDZD_XZPP_TX := TFrmY_CKJHDZD_XZPP_TX.Create(nil);
with FrmY_CKJHDZD_XZPP_TX do
begin
FB_ShowZeroKC := false;
V_FPJ := False;
V_QB := False;
DBG_PP.Options := DBG_PP.Options + [dgMultiSelect];
ShowModal;
if ModalResult <> MrOK then
begin
Free;
if Qry_Main.IsEmpty then
BBt_CancelClick(nil);
Exit;
end;
//if FrmY_CKJHDZD_XZPP.qry_PP.IsEmpty then
Qry_Main.DisableControls;
with FrmY_CKJHDZD_XZPP_TX.qry_PP do
begin
First;
while not Eof do
begin
if FrmY_CKJHDZD_XZPP_TX.DBG_PP.SelectedRows.CurrentRowSelected then
begin
V_KFDM := FieldByName('KFDM').AsString;
V_PPDM := FieldByName('TUDM').AsString;
V_PPMC := FieldByName('PPMC').AsString;
V_MZ := FieldByName('MZ').AsInteger;
V_JJ := FieldByName('JJ').AsFloat;
V_XJ := FieldByName('XJ').AsInteger;
V_ZK := FieldByName('ZK').AsInteger;
V_JSJ := FieldByName('JSJ').AsInteger;
V_FPSL := 0;
//添加票品
PS_AddCKJHDPP();
end;
Next;
end;
end;
Free;
end;
Qry_Main.EnableControls;
end
else
begin
FrmY_CKJHDZD_XZPP_TX := TFrmY_CKJHDZD_XZPP_TX.Create(nil);
with FrmY_CKJHDZD_XZPP_TX do
begin
if not (E_CKXZ.ItemIndex = 0) then
V_QB := True;
DBG_PP.Options := DBG_PP.Options + [dgMultiSelect];
ShowModal;
if ModalResult <> MrOK then
begin
Destroy;
Exit;
end;
Qry_Main.DisableControls;
with FrmY_CKJHDZD_XZPP_TX.qry_PP do
begin
First;
while not Eof do
begin
if FrmY_CKJHDZD_XZPP_TX.DBG_PP.SelectedRows.CurrentRowSelected then
begin
V_KFDM := FieldByName('KFDM').AsString;
V_PPDM := FieldByName('TUDM').AsString;
V_PPMC := FieldByName('PPMC').AsString;
V_MZ := FieldByName('MZ').AsInteger;
V_JJ := FieldByName('JJ').AsFloat;
V_XJ := FieldByName('XJ').AsInteger;
V_ZK := FieldByName('ZK').AsInteger;
V_JSJ := FieldByName('JSJ').AsInteger;
V_FPSL := 0;
if not Qry_Main.Locate('KFDM;PPDM', VarArrayof([V_KFDM, V_PPDM]), []) then
//添加票品
PS_AddCKJHDPP();
end;
Next;
end;
end;
Destroy;
end;
Qry_Main.EnableControls;
end;
if Qry_Main.IsEmpty then
begin
BBt_CancelClick(nil);
exit;
end;
{ if Qry_main.IsEmpty then
exit;}
Qry_MainAfterScroll(nil);
DBG_Main.SetFocus;
end;
procedure TFrmY_CKJHDZD1.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
//退出界面时判断是否保存
if BBt_Save.Enabled then
begin
case CHQMsgBox('数据已修改,是否保存?', 3) of
IDYES: //保存退出
begin
BBt_SaveClick(nil);
Action := caFree;
end;
IDNO: //不保存退出
begin
BBt_CancelClick(nil);
Action := caFree;
end;
IDCANCEL: //返回界面不退出
begin
Action := caNone;
end;
end;
end
else
Action := caFree;
SaveAllColWidth(self);
end;
procedure TFrmY_CKJHDZD1.E_CKXZChange(Sender: TObject);
begin
Qry_Third.Close;
Qry_Main.Close;
CE_KC.Text := '';
L_CKJHDH.Font.Color := ClBlack;
if E_CKXZ.Text = '' then Exit;
case E_CKXZ.ItemIndex of
0: V_CKXZ := '10';
1: V_CKXZ := '12';
2: V_CKXZ := '14';
3: V_CKXZ := '16';
end;
//刷新标题
case E_CKXZ.ItemIndex of
0: XttxTitle.Caption := '零星请领分配单制定';
1: XttxTitle.Caption := '注销分配单制定';
2: XttxTitle.Caption := '退缴分配单制定';
3: XttxTitle.Caption := '移库分配单制定';
end;
//刷新添加删除按钮标题
BBt_AddDW.Caption := '添加票品(&G)';
BBt_DeleteDW.Caption := '删除票品(&K)';
L_DWPPMC.Caption := '单位名称:';
//刷新凑包凑版
RG_FX.Enabled := True;
//刷新票品名称
CB_PPMC.Text := '';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -