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

📄 ckjh_jjw.pas

📁 省级集邮品管理ERP
💻 PAS
📖 第 1 页 / 共 4 页
字号:
{*******************************************************}
{                                                       }
{                计划外分配单指定                       }
{                                                       }
{            中软金马公司版权所有。2002.12              }
{                                                       }
{                    编制:杨俊                         }
{                                                       }
{                                                       }
{*******************************************************}
(*
   集邮票管理

   思路步骤:


   {在进入详细列表的时候,需要将库存数据写入列表,备用}

   PS_GetSYTS{计算理论库存}  不包括当前分配单的,所以显示的时候需要减去当前分配单的数量

   库存显示的计算方法为 不包括当前分配单独库存-该单当前分配的数量

   将当前模块从用户当前使用的版本的源代码,复制到syz规范话过的省级程序源代码中
杨俊 2003.5.8

*)

unit CKJH_JJW;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  RXCtrls, FieldComboBox, StdCtrls, ExtCtrls, Buttons, ToolEdit, CurrEdit,
  Mask, DBGrids, DBCtrls, EHGrids, DBGridEh, ComCtrls, Db, DBTables,
  Grids;

type
  TFrm_CKJH_JJW = class(TForm)
    XttxTitle: TRxLabel;
    pgc_JY: TPageControl;
    tbs_List: TTabSheet;
    Bevel2: TBevel;
    lbl_color_0: TLabel;
    lbl_color_2: TLabel;
    lbl_color_1: TLabel;
    Label10: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    dbg_List: TDBGridEh;
    tbs_Detail: TTabSheet;
    dbgEh_Detail: TDBGridEh;
    Panel4: TPanel;
    Label5: TLabel;
    Label8: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    DBE_ZBR: TDBEdit;
    DBE_ZDRQ: TDBEdit;
    edt_PZR: TEdit;
    Panel1: TPanel;
    bbtn_Add: TBitBtn;
    bbtn_Del: TBitBtn;
    bbtn_Modify: TBitBtn;
    bbtn_AddPP: TBitBtn;
    bbtn_DeletePP: TBitBtn;
    bbtn_Save: TBitBtn;
    bbtn_Cancel: TBitBtn;
    Panel2: TPanel;
    Label11: TLabel;
    Label2: TLabel;
    Label12: TLabel;
    rg_Round: TRadioGroup;
    rg_Round_Style: TRadioGroup;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    pgc_SeleInfo: TPageControl;
    tbs_SeleBGG: TTabSheet;
    lbl_BZGG: TLabel;
    cb_BZGG: TComboBox;
    tbs_SeleMBMS: TTabSheet;
    Label1: TLabel;
    cb_BGG: TComboBox;
    tbs_BCB: TTabSheet;
    Panel3: TPanel;
    bbtn_Close: TBitBtn;
    bbtn_Print: TBitBtn;
    bbtn_QP: TBitBtn;
    bbtn_Search: TBitBtn;
    bbtn_CancelQP: TBitBtn;
    sp_DH: TStoredProc;
    usql_List: TUpdateSQL;
    ds_List: TDataSource;
    qry_List: TQuery;
    qry_Detail: TQuery;
    ds_Detail: TDataSource;
    usql_Detail: TUpdateSQL;
    qry_Tmp: TQuery;
    dbnv_List: TDBNavigator;
    qry_DetailCKJHDH: TStringField;
    qry_DetailDWDM: TStringField;
    qry_DetailPPDM: TStringField;
    qry_DetailKFDM: TStringField;
    qry_DetailPPMC: TStringField;
    qry_DetailJJ: TFloatField;
    qry_DetailXJ: TFloatField;
    qry_DetailZK: TFloatField;
    qry_DetailJSJE: TFloatField;
    qry_DetailCKZJE: TFloatField;
    qry_DetailJSJ: TFloatField;
    qry_DetailFPSL: TFloatField;
    qry_DetailFPSL_OLD: TFloatField;
    qry_DetailSDATE: TDateTimeField;
    qry_DetailDWMC: TStringField;
    qry_DetailKFMC: TStringField;
    Panel5: TPanel;
    chk_KDQSRQ: TCheckBox;
    chk_KDJZRQ: TCheckBox;
    chk_DH: TCheckBox;
    edt_DH: TEdit;
    de_KDQSRQ: TDateEdit;
    de_KDJZRQ: TDateEdit;
    DBEdit1: TDBEdit;
    medt_KC: TCurrencyEdit;
    procedure FormCreate(Sender: TObject);
    procedure qry_ListAfterScroll(DataSet: TDataSet);
    procedure qry_DetailAfterScroll(DataSet: TDataSet);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure bbtn_AddClick(Sender: TObject);
    procedure rg_RoundClick(Sender: TObject);
    procedure qry_DetailBeforePost(DataSet: TDataSet);
    procedure rg_Round_StyleClick(Sender: TObject);
    procedure cb_BZGGChange(Sender: TObject);
    procedure cb_BGGChange(Sender: TObject);
    procedure qry_DetailFPSLSetText(Sender: TField; const Text: String);
    procedure qry_DetailFPSLValidate(Sender: TField);
    procedure bbtn_SaveClick(Sender: TObject);
    procedure bbtn_DelClick(Sender: TObject);
    procedure bbtn_ModifyClick(Sender: TObject);
    procedure bbtn_DeletePPClick(Sender: TObject);
    procedure bbtn_AddPPClick(Sender: TObject);
    procedure pgc_JYChange(Sender: TObject);
    procedure bbtn_SearchClick(Sender: TObject);
    procedure bbtn_QPClick(Sender: TObject);
    procedure bbtn_CancelQPClick(Sender: TObject);
    procedure bbtn_PrintClick(Sender: TObject);
    procedure dbg_ListDrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
    procedure bbtn_CancelClick(Sender: TObject);
    procedure qry_DetailBeforeInsert(DataSet: TDataSet);
    procedure qry_DetailZKSetText(Sender: TField; const Text: String);
    procedure qry_DetailJSJSetText(Sender: TField; const Text: String);
    procedure dbg_ListDblClick(Sender: TObject);
    procedure dbgEh_DetailGetFooterParams(Sender: TObject; DataCol,
      Row: Integer; Column: TColumnEh; AFont: TFont;
      var Background: TColor; var Alignment: TAlignment;
      State: TGridDrawState; var Text: String);
    procedure qry_DetailJJGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure qry_DetailFPSLGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
  private
    { Private declarations }
    VL_CanPost: Boolean;
    procedure Set_State(IsActive: Boolean);                 {设置页面状态}
    procedure Add_FPInfo(a_DWDM: String; a_SourceQuery: TQuery);
    procedure GetGG(A_PPDM: string);                        {取得凑整的规格}
    procedure SetRounding;                                  {凑包凑版调用}
    procedure SetRoundSL(A_Round, A_Round_Style, A_SingleDest: Integer); {分配数量的凑整处理}
    function GetRoundNumber(A_source, A_SingleDest,
      A_type: Integer): Integer;                            {返回凑整后的数据}
    function Can_CK(var A_Caption: string): boolean;        {是否可以出库}
    procedure Save_Info;                                    {保存数据}
    function Create_DH(A_BILLID, A_SORTCODE, A_DEPARTMENT,
      A_CYEAR: string): string;                             {调用存储过程,生成单号}
    procedure Add_WYTSJ(a_DWDM: String; a_Query: TQuery; a_DbGrid: TDBGrid); {添加无怨头数据}
    procedure Get_PPKCInfo;                                 {得到当前票品的库存情况}
  public
    { Public declarations }
  end;

var
  Frm_CKJH_JJW: TFrm_CKJH_JJW;

implementation

uses Datas, pub, CKJH_JJW_AddPP, CKJH_JJW_AddPP2, SY_CKJHDCX_RPT, SJ_RICHEDIT;
var
  VL_State: Integer;                                        {0 正常 1修改状态}
  VL_Ban_GG: Integer; {取得该票品的版的规格}                {}
  VL_QLDH: String;

  VL_CKJHDH: String;


  VL_PPDMList, VL_PPKCList,VL_ZXTS: TStringList;

{$R *.DFM}

  {-------------------------------------------------------------------------------}
  {创建窗体,显示默认的查询 默认显示本周数据}
procedure TFrm_CKJH_JJW.FormCreate(Sender: TObject);
var
  l_Date: TDateTime;
begin
  l_Date := GetSysDate;
  VL_PPDMList := TStringList.Create;
  VL_PPKCList := TStringList.Create;
  VL_ZXTS := TStringList.Create ;

  de_KDJZRQ.Date := l_Date;
  de_KDQSRQ.Date := l_Date - 7;
  bbtn_Search.Click;

  Set_State(False);                                         {设置界面可修改状态}

  pgc_JY.ActivePageIndex := 0;
  VL_CanPost := True;
end;

{-------------------------------------------------------------------------------}
{关闭}
procedure TFrm_CKJH_JJW.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  qry_Detail.Close;
  qry_List.Close;
  VL_PPDMList.Free;
  VL_PPKCList.Free;
  VL_ZXTS.Free ;
end;

{-------------------------------------------------------------------------------}
{查询数据}
procedure TFrm_CKJH_JJW.bbtn_SearchClick(Sender: TObject);
var
  l_sql: String;
begin
  l_sql := '  select distinct  b.CKJHDH, b.CKXZ, d.RCKXZMC, b.ZBR, b.PZR, b.ZDRQ, b.BZ, b.ZT, c.DWJC,a.DWDM ' +
    ' from TYS_JYCKJHDPPB a, TYS_JYCKJHDB b, TGS_GXDWSJB c,TGS_JRCKXZDM d where a.DWDM=c.DWDM and d.RCKXZDM=b.CKXZ and a.CKJHDH = b.CKJHDH  and b.CKJHDH like ''JW%'' ';
  if chk_KDQSRQ.Checked and (de_KDQSRQ.Date <> 0) then
    l_sql := l_SQL + ' and b.ZDRQ >= to_Date(''' + FormatDateTime('YYYY-MM-DD', de_KDQSRQ.Date) + ''',''YYYY-MM-DD'') ';
  if chk_KDJZRQ.Checked and (de_KDJZRQ.Date <> 0) then
    l_sql := l_SQL + ' and b.ZDRQ <= to_Date(''' + FormatDateTime('YYYY-MM-DD', de_KDJZRQ.Date) + ''',''YYYY-MM-DD'') ';
  if chk_DH.Checked then
    l_sql := l_sql + ' and a.CKJHDH like ' + QuotedStr('%' + UpperCase(Trim(edt_DH.Text)) + '%');
  l_sql := l_SQL + ' order by b.CKJHDH ';

  with qry_List do
  begin
    Close;
    SQL.Text := l_SQL;
    Open;
  end;

end;

{-------------------------------------------------------------------------------}
{显示明细信息}
procedure TFrm_CKJH_JJW.qry_ListAfterScroll(DataSet: TDataSet);
begin
  with qry_Detail do
  begin
    Close;
    SQL.Text := ' select a.CKJHDH, a.DWDM, a.PPDM, a.KFDM, a.PPMC, a.JJ /100 JJ, a.XJ/100 XJ, a.ZK, ' +
      '   decode(a.JSJ,null, (a.ZK/100) * a.XJ* a.FPSL , 0, (a.ZK/100) * a.XJ* a.FPSL ,a.JSJ* a.FPSL)/100 JSJE, ' +
      ' a.XJ* a.FPSL/100 CKZJE, a.JSJ/100 JSJ, a.FPSL, a.FPSL FPSL_OLD , ' +
      '  a.SDATE, b.DWJC DWMC, c.KFMC  from TYS_JYCKJHDPPB a, TGS_GXDWSJB b, TGS_KFB c ' +
      '  where a.DWDM = b.DWDM and c.KFDM = a.KFDM  ' +
      ' and a.CKJHDH = ' + QuotedStr(qry_List.FieldByName('CKJHDH').AsString) +
      '  order by b.PXM ';
    Open;
  end;
  {清楚原来的库存}
  VL_PPDMList.Clear;
  VL_PPKCList.Clear;

  VL_CKJHDH := qry_List.FieldByName('CKJHDH').AsString;
  edt_PZR.Text := qry_List.FieldByName('PZR').AsString;

  if qry_List.State in [dsInsert] then
    Exit;

  pgc_JY.OnChange(nil);                                     {取得库存信息}
end;

{-------------------------------------------------------------------------------}
{票品改变,计算库存}
procedure TFrm_CKJH_JJW.qry_DetailAfterScroll(DataSet: TDataSet);
var
  l_Index: Integer;
begin
  with qry_Detail do
  begin
    if IsEmpty then
    begin
      medt_KC.Text := '';
      Exit;
    end;

    if pgc_JY.ActivePageIndex = 1 then
    begin
      {显示库存}
      l_Index := VL_PPDMList.IndexOf(FieldByname('PPDM').AsString);
      if l_Index > -1 then
        medt_KC.Text := FloatToStr(StrToFloat(VL_PPKCList[l_Index]) - FieldByName('FPSL').AsInteger);
    end;

    {设置凑包凑版信息 编辑状态时执行}
    if VL_State = 1 then
      GetGG(FieldByName('PPDM').AsString);
  end;
end;

{-------------------------------------------------------------------------------}
{获得凑包凑版信息}
procedure TFrm_CKJH_JJW.GetGG(A_PPDM: string);
begin
  cb_BGG.Clear;
  cb_BZGG.Clear;
  VL_ZXTS.Clear ;
  with qry_Tmp do
  begin
    Close;
    SQL.Text := 'select distinct BZGG,ZXTS from TB_BZSJB where BZBBJ<>2 and TDM =' + QuotedStr(A_PPDM);
    Open;
    while not Eof do
    begin
      cb_BZGG.Items.Add(FieldByName('BZGG').AsString);
      VL_ZXTS.Add(FieldByName('ZXTS').AsString);
      Next;
    end;
    if cb_BZGG.Items.Count > 0 then
      cb_BZGG.ItemIndex := 0;
    Close;
    SQL.Text := 'select distinct GBGTMS from TB_BTGXB where TUDM like' + QuotedStr(Copy(A_PPDM, 1, 11) + '%') + ' order by GBGTMS ';
    Open;
    while not Eof do
    begin
      cb_BGG.Items.Add(FieldByName('GBGTMS').AsString);
      Next;
    end;
    if cb_BGG.Items.Count > 0 then
    begin
      cb_BGG.ItemIndex := cb_BGG.Items.Count - 1;
      cb_BGG.OnChange(cb_BGG);
    end;
  end;
end;

{-------------------------------------------------------------------------------}
{设置页面状态}
procedure TFrm_CKJH_JJW.Set_State(IsActive: Boolean);
begin
  if IsActive then
    VL_State := 1
  else
  begin
    VL_State := 0;
    rg_Round.ItemIndex := 2;
    rg_Round_Style.Visible := False;
    pgc_SeleInfo.ActivePageIndex := rg_Round.ItemIndex;
  end;
  tbs_List.TabVisible := not IsActive;
  dbnv_List.Enabled := not IsActive;
  bbtn_Search.Enabled := not IsActive;
  bbtn_Print.Enabled := not IsActive;
  rg_Round.Enabled := IsActive;
  rg_Round_Style.Enabled := IsActive;
  cb_BZGG.Enabled := IsActive;
  cb_BGG.Enabled := IsActive;

  bbtn_Add.Enabled := not IsActive;
  bbtn_Del.Enabled := not IsActive;
  bbtn_Modify.Enabled := not IsActive;
  bbtn_AddPP.Enabled := IsActive;
  bbtn_DeletePP.Enabled := IsActive;
  bbtn_Save.Enabled := IsActive;
  bbtn_Cancel.Enabled := IsActive;

  dbgEh_Detail.ReadOnly := not IsActive;
end;

{-------------------------------------------------------------------------------}
{填做新单}
procedure TFrm_CKJH_JJW.bbtn_AddClick(Sender: TObject);
var
  l_Modal: Integer;
begin
  VL_QLDH := '';
  with TFrm_CKJH_JJW_AddPP.Create(Application) do
  try
    qry_Detail.BeforeInsert := nil;
    l_Modal := ShowModal;
    if l_Modal = mrOk then
    begin

⌨️ 快捷键说明

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