📄 sy_ck_jyp_add.pas
字号:
{*******************************************************}
{ }
{ 集邮出库计划单制定——选择票品模块 }
{ }
{ 中软金马公司版权所有。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 + -