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

📄 sy_ck_jyp_add.pas

📁 省级集邮品管理ERP
💻 PAS
📖 第 1 页 / 共 3 页
字号:
{*******************************************************}
{                                                       }
{          集邮出库计划单制定——选择票品模块           }
{                                                       }
{            中软金马公司版权所有。2002.06              }
{                                                       }
{                   编制:杨俊                        }
{                                                       }
{                                                       }
{*******************************************************}

(*==============================================================================
省级集邮票



程序说明:
    1. 票品类别的选择不可用,仅供查看,因为票品类别是从票品选择模块中传来了参数,
    如果选择,直接调用票品选择模块;
    2、仅取本年度的分配计划或者本年度的分配单;
    3、 零枚、普票的计划从纪_计内_分配计划(零枚)TY_JJNFPJH_JY中取
         封片的计划从纪_计内_分配计划(封片)TY_JJNFPJH_FP中取 (需要与TB_YZPPXXB关联,存在套或者图的信息)
    4、没有依据的出库也应该允许,即除分配计划、出库单外,在加上无依据
        对无依据的处理结果是,分配的单位选择TGS_GXDWSJB中,ZJXJ=1 AND TXYW=1
        AND FHDX=1,分配数量默认为0
    5、每次仅处理一个库房的一中票品;


修改记录 ,在俺分配计划出库的时候 出库数量由四部分数据选择加起来得到
杨俊 2003.2.18
===============================================================================*)

unit SY_CK_JYP_Add;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, Grids, DBGrids, ExtCtrls, ComCtrls, Db, DBTables,
  FieldComboBox, sqlstrings, clipbrd, Mask, ToolEdit, CurrEdit;

type
  TFrm_SY_CK_JYP_Add = class(TForm)
    bbtn_Finish: TBitBtn;
    bbtn_Cancel: TBitBtn;
    pgc_Select: TPageControl;
    tbs_PP: TTabSheet;
    tbs_DW: TTabSheet;
    rg_CKXZ: TRadioGroup;
    dbg_CKXZ: TDBGrid;
    dbg_DWFP: TDBGrid;
    bbtn_Prior: TBitBtn;
    bbtn_Next: TBitBtn;
    bbtn_Search: TBitBtn;
    rg_Round: TRadioGroup;
    rg_Round_Style: TRadioGroup;
    qry_PP: TQuery;
    ds_PP: TDataSource;
    qry_CKXZ: TQuery;
    ds_CKXZ: TDataSource;
    qry_DWFP: TQuery;
    ds_DWFP: TDataSource;
    qry_Tmp: TQuery;
    usql_DWFP: TUpdateSQL;
    qry_PPKFDM: TStringField;
    qry_PPKFMC: TStringField;
    qry_PPPPMC: TStringField;
    qry_PPZH: TStringField;
    qry_PPMZ: TFloatField;
    qry_PPSJ: TFloatField;
    qry_PPKWH: TStringField;
    qry_PPPPLB: TStringField;
    qry_PPJSJ: TFloatField;
    qry_PPZK: TFloatField;
    qry_PPSL: TFloatField;
    qry_PPTYPE: TStringField;
    qry_DWFPDWDM: TStringField;
    qry_DWFPSL: TFloatField;
    qry_DWFPSL_OLD: TFloatField;
    qry_DWFPDWMC: TStringField;
    qry_PPJJ: TFloatField;
    qry_PPXJ: TFloatField;
    dbg_PP: TDBGrid;
    pgc_SeleInfo: TPageControl;
    tbs_SeleBGG: TTabSheet;
    tbs_SeleMBMS: TTabSheet;
    tbs_BCB: TTabSheet;
    lbl_BZGG: TLabel;
    Label1: TLabel;
    qry_PPPPDM: TStringField;
    cb_BZGG: TComboBox;
    cb_BGG: TComboBox;
    gb_Choose: TGroupBox;
    chk_YD: TCheckBox;
    chk_LS: TCheckBox;
    chk_NC: TCheckBox;
    chk_YP: TCheckBox;
    qry_DWFPYDTS: TFloatField;
    qry_DWFPLSTS: TFloatField;
    qry_DWFPNCTS: TFloatField;
    qry_DWFPYPTS: TFloatField;
    Label2: TLabel;
    ce_BL: TCurrencyEdit;
    procedure bbtn_SearchClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure bbtn_PriorClick(Sender: TObject);
    procedure bbtn_NextClick(Sender: TObject);
    procedure rg_TypeClick(Sender: TObject);
    procedure rg_RoundClick(Sender: TObject);
    procedure rg_CKXZClick(Sender: TObject);
    procedure qry_CKXZAfterScroll(DataSet: TDataSet);
    procedure dbg_PPDblClick(Sender: TObject);
    procedure bbtn_FinishClick(Sender: TObject);
    procedure rg_Round_StyleClick(Sender: TObject);
    procedure qry_PPMZGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure qry_PPAfterScroll(DataSet: TDataSet);
    procedure cb_BGGChange(Sender: TObject);
    procedure cb_BZGGChange(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure qry_PPSJGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure qry_PPSLGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure chk_YDClick(Sender: TObject);
    procedure ce_BLExit(Sender: TObject);
    procedure ce_BLKeyPress(Sender: TObject; var Key: Char);
  private
    procedure SetState(A_Style: Integer);                   {按步处理的界面显示设置}
    procedure SetRoundSL(A_Round, A_Round_Style, A_SingleDest: Integer); {分配数量的凑整处理}
    function GetRoundNumber(A_source, A_SingleDest,
      A_type: Integer): Integer;                            {返回凑整后的数据}
    procedure SetRounding;                                  {凑包凑版调用}
    procedure GetGG(A_PPDM: string);                        {取得凑整的规格}

    procedure SetChooseSL;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frm_SY_CK_JYP_Add: TFrm_SY_CK_JYP_Add;

implementation

{$R *.DFM}

uses
  SearchPP;

var
  VL_ND: string;                                            {服务器年度}
  VL_Type: Integer;                                         {票品类型}
  VL_Ban_GG: Integer;                                       {取得该票品的版的规格}
  VL_ZXTS: TStringList;
  {-------------------------------------------------------------------------------}
  {初始化}
procedure TFrm_SY_CK_JYP_Add.FormCreate(Sender: TObject);
begin
  SetState(0);
  rg_RoundClick(nil);

  {取服务器年度}
  with qry_Tmp do
  begin
    Close;
    SQL.Text := 'Select SysDate from Dual';
    Open;
    VL_ND := FormatDateTime('yyyy', FieldByName('SysDate').AsDateTime);
    Close;
  end;

  VL_ZXTS := TStringList.Create;
end;

{-------------------------------------------------------------------------------}
{票品类别的选择不可用,仅供查看,因为票品类别是从票品选择模块中传来了参数,
如果选择,直接调用票品选择模块;}
procedure TFrm_SY_CK_JYP_Add.rg_TypeClick(Sender: TObject);
begin
  bbtn_SearchClick(nil);
end;

{-------------------------------------------------------------------------------}
{双击等于点击下一步}
procedure TFrm_SY_CK_JYP_Add.dbg_PPDblClick(Sender: TObject);
begin
  bbtn_NextClick(nil);
end;

{-------------------------------------------------------------------------------}
{出库时选择的依据:0、依据计划,1、依据本年度出库单}
procedure TFrm_SY_CK_JYP_Add.rg_CKXZClick(Sender: TObject);
var
  l_sql: string;
begin
  (*  rg_Round.Enabled := True;
    dbg_CKXZ.Columns[1].Visible := True;
    dbg_CKXZ.Columns[1].Width := 120;
    dbg_CKXZ.Columns[2].Visible := False;                     {图序号}

    case rg_CKXZ.ItemIndex of
      0: {按照分配计划}                                       {}
        begin
          {对于不同的票品,依据计划也不同(普票,零枚用纪_计内_分配计划(零枚)TY_JJNFPJH_JY,
          封片简用纪_计内_分配计划(封片)TY_JJNFPJH_FP)}
          case rg_Type.ItemIndex of
            0, 1: {普票、零枚}                                {}
              begin
                dbg_CKXZ.Columns[0].Title.Caption := '计划号';
                dbg_CKXZ.Columns[0].FieldName := 'JHH';
                dbg_CKXZ.Columns[1].Width := 95;
                dbg_CKXZ.Columns[2].Visible := True;          {图序号}
                L_SQL := 'select distinct a.JHH, c.TUDM PPDM, a.PPMC, a.TX from TY_JJNFPJH_JY a, TB_YZPPTXXB b,TB_YZPPTUXXB c ' +
                  ' where a.JHH =b.JHH and b.TDM= c.TDM and c.TXH = a.TX and  a.ND =' + QuotedStr(VL_ND);
              end;
            2: {封片}                                         {}
              begin
                dbg_CKXZ.Columns[1].Visible := False;
                dbg_CKXZ.Columns[0].Title.Caption := '邮资类名称';
                dbg_CKXZ.Columns[0].FieldName := 'MC';
                l_sql := ' select distinct a.YZLDM, b.MC, a.YZLDM PPDM  ' +
                  '   from TY_JJNFPJH_FP a, TG_YZPPLDMB b  where a.YZLDM = b.YZLDM ' +
                  ' and  a.ND =' + QuotedStr(VL_ND);
              end;
          end;
        end;
      1: {按照出库单}                                         {}
        begin
          dbg_CKXZ.Columns[0].Title.Caption := '出库计划单号';
          dbg_CKXZ.Columns[0].FieldName := 'JHH';
          L_SQL := 'select distinct a.CKJHDH JHH, a.PPDM, a.PPMC ' +
            '  from TYS_TXCKJHDPPB a, TYS_TXPCKJHDB b ' +
            '  where a.CKJHDH = b.CKJHDH and a.CKJHDH like ''TX%''  and b.CKXZ =''10'' ' +
            '  and to_char(b.ZDRQ, ''YYYY'') = ' + QuotedStr(VL_ND);
        end;
      2: {无依据}                                             {}
        begin
          {不能凑包版}
          rg_Round.ItemIndex := 2;
          rg_Round.Enabled := False;

          qry_CKXZ.Close;
          with qry_DWFP do
          begin
            Close;
            SQL.Text := 'select DWDM, DWJC DWMC, 0 SL, 0 SL_OLD from TGS_GXDWSJB ' +
              ' where ZJXJ=''1'' and TXYW=''1'' and FHDX=''1''  order by PXM ';
            Open;
          end;

          Exit;
        end;
    end;

    with qry_CKXZ do
    begin
      Close;
      SQL.Text := l_sql;
      Open;
      if IsEmpty then {为空时清空子表}                        {}
        qry_CKXZAfterScroll(nil)
      else if rg_Type.ItemIndex <> 2 then { 普票和零枚定位到上一步所选择的票品 } {}
        Locate('PPDM', qry_PP.FieldByName('TUDM').AsString, [])
      else if rg_Type.ItemIndex = 2 then { 封片需要定位到上一步所选择的票品的类别(前三位) } {}
        Locate('PPDM', Copy(qry_PP.FieldByName('TUDM').AsString, 1, 3), []);
    end;
  *)
  {*********杨俊 选择分配依据************}
  rg_Round.Enabled := True;
  gb_Choose.Visible := rg_CKXZ.ItemIndex = 0;
  case rg_CKXZ.ItemIndex of
    0:                                                      {分配计划}
      begin
        l_SQL := 'select distinct a.JHH,b.TDM PPDM,b.TJC PPMC '#13#10 +
          'from TY_JJNFPJH a,TB_YZPPTXXB b'#13#10 +
          'where a.JHH=b.JHH and a.ND =' + QuotedStr(VL_ND);
      end;
    1:                                                      {出库单}
      begin
        L_SQL := 'select distinct a.CKJHDH JHH, a.PPDM, a.PPMC ' +
          '  from TYS_JYCKJHDPPB a, TYS_JYCKJHDB b ' +
          '  where a.CKJHDH = b.CKJHDH and a.CKJHDH like ''JN%''  and b.CKXZ =''10'' ' +
          '  and to_char(b.ZDRQ, ''YYYY'') = ' + QuotedStr(VL_ND);
      end;
    2:                                                      {无依据}
      begin
        {不能凑包版}
        rg_Round.ItemIndex := 2;
        rg_Round.Enabled := False;

        qry_CKXZ.Close;
        with qry_DWFP do
        begin
          Close;
          SQL.Text := 'select DWDM, DWJC DWMC, 0 SL, 0 SL_OLD, 0 YDTS, 0 LSTS, 0 NCTS, 0 YPTS from TGS_GXDWSJB ' +
            ' where ZJXJ=''1'' and JYYW=''1'' and FHDX=''1''  order by PXM ';
          Open;
        end;
        Exit;
      end;
  end;

  with qry_CKXZ do
  begin
    Close;
    SQL.Text := l_sql;
    Open;

⌨️ 快捷键说明

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