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

📄 sy_ckjhdzd.pas

📁 省级集邮品管理ERP
💻 PAS
📖 第 1 页 / 共 3 页
字号:
{*******************************************************}
{                                                       }
{                   批量出库计划单制定                  }
{                                                       }
{            中软金马公司版权所有。2002.12前            }
{                                                       }
{            编制:中软金马邮资票品项目开发组           }
{                                                       }
{                                                       }
{*******************************************************}
(*
本模块在省级集邮品系统管理模块里面的单品种多去向和单去向多品种调用。
修改记录
修改用于销价进价结算价的显示小数点后扩到3位 将Qry_Main进价销价结算价显示调用的CurrGetText替换为CurrGetText3 jhshao 2003.05.08

*)
unit SY_CKJHDZD;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, Spin, ExtCtrls, ActnList, Grids, DBGrids, Db, DBTables,
  RXCtrls, Mask, DBCtrls, RXDBCtrl, Menus, ToolEdit, CurrEdit,
  FieldComboBox;

type
  TFrmY_CKJHDZD = class(TForm)
    Panel1: TPanel;
    Label3: TLabel;
    ND: TSpinEdit;
    Panel3: TPanel;
    BBt_Modify: TBitBtn;
    BBt_Save: TBitBtn;
    BBt_Cancel: TBitBtn;
    BBt_Quit: TBitBtn;
    BBt_AddFPJH: TBitBtn;
    BBt_DeleteFPJH: TBitBtn;
    Panel2: TPanel;
    Panel5: TPanel;
    USQL_Main: TUpdateSQL;
    Qry_Main: TQuery;
    DS_Main: TDataSource;
    Qry_Third: TQuery;
    USQL_Third: TUpdateSQL;
    DS_Third: TDataSource;
    Qry_Static: TQuery;
    Qry_MainCKJHDH: TStringField;
    Qry_MainKFDM: TStringField;
    Qry_MainDWDM: TStringField;
    Qry_MainJJ: TFloatField;
    Qry_MainKWH: TStringField;
    Qry_MainPPMC: TStringField;
    Qry_MainYJ: TFloatField;
    Qry_MainXJ: TFloatField;
    Qry_MainJSJ: TFloatField;
    Qry_MainFPSL: TFloatField;
    Qry_MainSDATE: TDateTimeField;
    Qry_MainDWMC: TStringField;
    Qry_MainZK: TFloatField;
    Panel6: TPanel;
    Qry_KFB: TQuery;
    Qry_KFBKFDM: TStringField;
    Qry_KFBKFMC: TStringField;
    Qry_MainKFMC: TStringField;
    XttxTitle: TRxLabel;
    BBt_Print: TBitBtn;
    BBt_DG: TBitBtn;
    Panel8: TPanel;
    L_CKJHDH: TLabel;
    Label4: TLabel;
    CB_CKJHDH: TComboBox;
    BBt_AddDW: TBitBtn;
    BBt_DeleteDW: TBitBtn;
    DBG_Main: TRxDBGrid;
    Panel4: TPanel;
    Label5: TLabel;
    Label8: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    DBE_PZR: TDBEdit;
    DBE_ZBR: TDBEdit;
    DBE_ZDRQ: TDBEdit;
    CE_KC: TCurrencyEdit;
    CB_PPMC: TFieldComboBox;
    Label1: TLabel;
    E_CKXZ: TEdit;
    Qry_ThirdCKJHDH: TStringField;
    Qry_ThirdCKXZ: TStringField;
    Qry_ThirdZK: TFloatField;
    Qry_ThirdZBR: TStringField;
    Qry_ThirdPZR: TStringField;
    Qry_ThirdZDRQ: TDateTimeField;
    Qry_ThirdBZ: TStringField;
    Qry_ThirdZT: TStringField;
    Qry_ThirdSDATE: TDateTimeField;
    Qry_MainDW: TStringField;
    Qry_MainPPDM: TStringField;
    PM_Main: TPopupMenu;
    N_SDL: TMenuItem;
    N_JSL: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure Act_QuitExecute(Sender: TObject);
    procedure BBt_AddFPJHClick(Sender: TObject);
    procedure CB_CKJHDHChange(Sender: TObject);
    procedure NDChange(Sender: TObject);
    procedure BBt_SaveClick(Sender: TObject);
    procedure BBt_DeleteFPJHClick(Sender: TObject);
    procedure BBt_ModifyClick(Sender: TObject);
    procedure BBt_DGClick(Sender: TObject);
    procedure BBt_CancelClick(Sender: TObject);
    procedure BBt_DeleteDWClick(Sender: TObject);
    procedure BBt_AddDWClick(Sender: TObject);
    procedure Qry_MainXJSetText(Sender: TField; const Text: string);
    procedure Qry_MainZKSetText(Sender: TField; const Text: string);
    procedure Qry_MainFPSLSetText(Sender: TField; const Text: string);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Qry_MainJSJSetText(Sender: TField; const Text: string);
    procedure L_CKJHDHDblClick(Sender: TObject);
    procedure BBt_PrintClick(Sender: TObject);
    procedure Qry_MainJJGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure DBG_MainKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure CB_PPMCChange(Sender: TObject);
    procedure Qry_MainBeforeInsert(DataSet: TDataSet);
    procedure Qry_MainJSJChange(Sender: TField);
    procedure CE_KCEnter(Sender: TObject);
    procedure CE_KCDblClick(Sender: TObject);
    procedure N_SDLClick(Sender: TObject);
    procedure N_JSLClick(Sender: TObject);
  private
    V_CKJHDH, V_CKXZ, V_KFDM, V_PPDM, V_PPMC, V_DWDM, V_DWMC, V_KWH: string;
    V_JJ, V_XJ, V_ZK, V_JSJ: Double;
    V_FPSL, V_State: Integer;
    procedure PS_SetStatus(Value: Integer = 0);
    function SumField(Dataset: TDataSet; Field: TField): Double;
    procedure ps_AddRec();
    function GetExistField(FQuery: TQuery; FieldName: string;
      SnapStr: string = ','): string; //取数据集中字段的记录的字符串流
    { Private declarations }

  public
    { Public declarations }
  end;

var
  FrmY_CKJHDZD: TFrmY_CKJHDZD;

implementation

uses
 datas, pub, SY_CKJHDZD_XD, SY_CKJHDZD_XZDW, {SY_CKJHDCX_RPT, }SY_KC, SY_CKJHDOne_More_RPT, SY_CKJHDMore_More_RPT ;

{$R *.DFM}


procedure TFrmY_CKJHDZD.FormCreate(Sender: TObject);
begin
  //判断权限(取消签批)
//  CheckRight(self);
  if not CheckRight_Bool(CG_YPQP) then
  begin
    BBt_DG.Visible := False;
    BBt_Print.Left := (BBt_Cancel.Left + BBt_Cancel.Width)
      + (BBt_Quit.Left - BBt_Cancel.Width - BBt_Cancel.Left) div 2 - BBt_DG.Width div 2;
    L_CKJHDH.OnDblClick := nil;
  end;
  //刷新年度
  ND.Value := VG_Year;
  PS_SetStatus();

  //保存DBGrid的宽度
  GetAllColWidth(self);
end;

procedure TFrmY_CKJHDZD.Act_QuitExecute(Sender: TObject);
begin
  Close;
end;

procedure TFrmY_CKJHDZD.PS_SetStatus(Value: Integer = 0);
{
 0:默认初始化
 1:添加
 3:修改
}
begin
  V_State := Value;
  if V_State = 0 then //默认
  begin
    BBt_AddDW.Enabled := not True;
    BBt_DeleteDW.Enabled := not True;

    BBt_AddFPJH.Enabled := True;
    BBt_DeleteFPJH.Enabled := True;
    BBt_Modify.Enabled := True;

    BBt_DG.Enabled := True;

    BBt_Save.Enabled := not True;
    BBt_Cancel.Enabled := not True;

    CB_CKJHDH.Enabled := True;
    ND.Enabled := True;
    DBG_Main.ReadOnly := True;

    E_CKXZ.Enabled := True;
    CB_PPMC.Enabled := True;

  end
  else if (V_State = 1) or (V_State = 3) then //增加 //修改
  begin
    BBt_AddDW.Enabled := True;
    BBt_DeleteDW.Enabled := True;

    BBt_AddFPJH.Enabled := not True;
    BBt_DeleteFPJH.Enabled := not True;
    BBt_Modify.Enabled := not True;

    BBt_DG.Enabled := not True;

    BBt_Save.Enabled := True;
    BBt_Cancel.Enabled := True;

    CB_CKJHDH.Enabled := not True;
    ND.Enabled := not True;
    DBG_Main.ReadOnly := not True;

    E_CKXZ.Enabled := not True;
    CB_PPMC.Enabled := not True;
  end;
  BBt_Print.Enabled := BBt_AddFPJH.Enabled;
end;

procedure TFrmY_CKJHDZD.BBt_AddFPJHClick(Sender: TObject);
begin
  //取得要分配单票品
  FrmY_CKJHDZD_XD := TFrmY_CKJHDZD_XD.Create(nil);
  with FrmY_CKJHDZD_XD do
  begin
    ShowModal;
    if ModalResult <> MrOK then
    begin
      Free;
      Exit;
    end;

    //取得票品信息
    V_KFDM := Qry_YZPPTXXBKFDM.AsString;
    V_PPDM := Qry_YZPPTXXBPPDM.AsString;
    V_PPMC := Qry_YZPPTXXBPPMC.AsString;
    V_KWH := Qry_YZPPTXXBKWH.AsString;
    V_JJ := Qry_YZPPTXXBJJ.AsFloat;
    V_XJ := Qry_YZPPTXXBXJ.AsFloat;
    V_ZK := Qry_YZPPTXXBZK.AsFloat;
    V_JSJ := Qry_YZPPTXXBJSJ.AsFloat;
    V_CKXZ := '10';
    if (V_PPDM = '') or (V_JJ < 0) then
    begin
      Free;
      CHQMsgBox('票品信息不全!');
      Exit;
    end;
    if (V_ZK <= 0) and (V_JSJ <= 0) then
    begin
      Free;
      CHQMsgBox('票品的折扣和结算价都为0!');
      Exit;
    end;

    //取得临时处库计划单
    V_CKJHDH := CG_CKJHDH;

    //打开空的主表
    with Qry_Third do
    begin
      Close;
      Prepare;
      Params[0].AsString := V_CKJHDH;
      Open;
    end;

    //插入主表数据
    with Qry_Third do
    begin
      Append;
      FieldByName('CKJHDH').AsString := V_CKJHDH;
      FieldByName('CKXZ').AsString := V_CKXZ;
      FieldByName('ZT').Asstring := CG_WCL;
      FieldByName('ZBR').Asstring := VG_UserName;
      FieldByName('ZDRQ').AsString := FormatDateTime('yyyy-mm-dd', GetSysDate);
      FieldByName('BZ').AsString := '';
    end;

    //打开空的从表
    with Qry_Main do
    begin
      Close;
      Prepare;
      Params[0].AsString := V_CKJHDH;
      Open;
    end;
    try
      with Qry_JJNFPJH do
      begin
        First;
        Qry_Main.DisableControls;
        while not Eof do
        begin
          //取得临时数据
          V_DWDM := Qry_JJNFPJHDWDM.AsString;
          V_DWMC := Qry_JJNFPJHDWMC.AsString;
          V_FPSL := Qry_JJNFPJHDATA.AsInteger;

          //添加票品表
          ps_AddRec();
          Next;
        end;
        Qry_Main.EnableControls;
      end;
    except
      Free;
    end;
  end;

  //刷新票品名称
  CB_PPMC.Text := V_PPMC;
  CB_CKJHDH.Text := '';
  L_CKJHDH.Font.Color := ClBlack;

  //刷新出库性质名称
  E_CKXZ.Text := PY_XZDMTOMC(V_CKXZ);

  //刷新库存
  CE_KC.Value := PS_GetSYTS(V_KFDM, V_PPDM, V_JJ) - sumField(Qry_Main, Qry_Main.FieldByName('FPSL'));
  if CE_KC.Value < 0 then
    CE_KC.Font.Color := ClRed
  else
    CE_KC.Font.Color := ClBlue;

  DBG_Main.SetFocus;
  PS_SetStatus(1);
end;

procedure TFrmY_CKJHDZD.ps_AddRec();
begin
  with Qry_Main do
  begin
    Qry_Main.BeforeInsert := nil;
    Append;
    //出库计划单号
    FieldByName('CKJHDH').AsString := V_CKJHDH;
    //库房代码
    FieldByName('KFDM').AsString := V_KFDM;
    //单位代码
    FieldByName('DWDM').AsString := V_DWDM;
    //票品代码
    FieldByName('PPDM').AsString := V_PPDM;
    //进价分
    FieldByName('JJ').AsFloat := V_JJ;
    //销售分
    FieldByName('XJ').AsFloat := V_XJ;
    //库位号
    FieldByName('KWH').AsString := V_KWH;
    //票品名称
    FieldByName('PPMC').Asstring := V_PPMC;
    //单位名称
    FieldByName('DWMC').Asstring := V_DWMC;
    //折扣
    FieldByName('ZK').AsFloat := V_ZK;
    //结算价
    FieldByName('JSJ').AsFloat := V_JSJ;
    //分配数量
    FieldByName('FPSL').AsInteger := V_FPSL;
    Post;
    Qry_Main.BeforeInsert := Qry_MainBeforeInsert;
  end;
end;
procedure TFrmY_CKJHDZD.NDChange(Sender: TObject);
begin
  //刷新票品名称
  CB_PPMC.Text := '';
  CB_PPMC.ClearAll;
  CB_PPMC.OnChange := nil;
  with Qry_Static do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select distinct B.PPMC,B.PPDM from TYS_YPCKJHDB A,TYS_YPCKJHDPPB B, TGS_KFRYDZB C');
    SQL.Add('where A.CKJHDH=B.CKJHDH and B.KFDM=C.KFDM and  A.CKJHDH LIKE ''PN%''');
    SQL.Add('and TO_CHAR(A.ZDRQ,''YYYY'') = ''' + ND.Text + '''  ');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -