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

📄 sy_ckjhdzd1.pas

📁 省级集邮品管理ERP
💻 PAS
📖 第 1 页 / 共 3 页
字号:
    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 + -