📄 choose_fhd.pas
字号:
{*******************************************************}
{ }
{ 选择入库依据单 }
{ }
{ 中软金马公司版权所有。2002.12前 }
{ }
{ 编制:中软金马邮资票品项目开发组 }
{ }
{ }
{*******************************************************}
(*
省级集邮票管理,省级零枚票管理
地市集邮票管理
*)
{
//注意:对于所有票品都适用,有:零枚票、集邮票、集邮品、购入票
有关表:
出库计划单表、出库计划单面值表
数据来源:
分配单号: 出库计划单表(状态为0 且 根据出库计划单号判断类别,如:生成零枚,
则只列出零枚票分配单号)
分配票品:出库计划单面值表
功能:
算法:
更新有关表:关系单位数据表
备注: 出库计划单表状态字段值:0--未生成发货单 1--已生成发货单
}
unit Choose_FHD;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
FormBase, StdCtrls, Buttons, Db, DBTables, Grids, DBGrids, DBCtrls,
ExtCtrls, SqlStrings;
type
TfrmSJ_chooseJYFHD = class(TFFormBase)
CBo_yjdh: TComboBox;
Label1: TLabel;
Label2: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
DBGrid1: TDBGrid;
DS_ckfhpp: TDataSource;
Label3: TLabel;
DS_rkxz: TDataSource;
Qry_rkxz: TQuery;
DBLCB_rkxz: TDBLookupComboBox;
Lbl_ckxz: TLabel;
RG_yf: TRadioGroup;
Qry_TMP: TQuery;
USQL_fhpp: TUpdateSQL;
Qry_kf: TQuery;
DS_kf: TDataSource;
SQLs_txfhpp: TSqlStrings;
Qry_tkfhpp: TQuery;
Qry_tkfhppFHDH: TStringField;
Qry_tkfhppTDM: TStringField;
Qry_tkfhppSL: TFloatField;
Qry_tkfhppSJ: TFloatField;
Qry_tkfhppZK: TFloatField;
Qry_tkfhppJSJ: TFloatField;
Qry_tkfhppDWDM: TStringField;
Qry_tkfhppDWMC: TStringField;
Qry_tkfhppZH: TStringField;
Qry_tkfhppPP: TStringField;
Qry_tkfhppKFDM: TStringField;
Qry_tkfhppkf: TStringField;
Qry_tkfhppMZ: TFloatField;
procedure FormCreate(Sender: TObject);
procedure CBo_yjdhClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
VL_sl_ckxz: TStringList;
VL_sl_lydw: TStringList;
Fio_TYPE: TIO_TYPE;
procedure DoAPPRKD;
{ Private declarations }
public
{ Public declarations }
end;
var
frmSJ_chooseJYFHD: TfrmSJ_chooseJYFHD;
function ExeSJ_FHD(io_typ: TIO_TYPE): Boolean;
implementation
uses datas,pub, SY_RKDSC;
{$R *.DFM}
function ExeSJ_FHD(io_typ: TIO_TYPE): Boolean;
const
fhdh = 'select a.fhdh, b.RCKXZMC, c.DWJC DWMC from %s a, %s b, TGS_GXDWSJB C where a.CKXZ=b.RCKXZDM and C.DWDM=a.DWDM and a.fhdh not in (select nvl(yjdh, -1) from %s)';
begin
Application.CreateForm(TfrmSJ_chooseJYFHD, frmSJ_chooseJYFHD); {TFFormBase1, FFormBase1}
with frmSJ_chooseJYFHD do {FFormBase1}
try
Fio_TYPE := io_typ;
Qry_tkfhpp.SQL := SQLs_txfhpp.FSqlText[io_typ];
Qry_kf.ParamByName('YGDM').AsString := VG_USERID;
Qry_kf.Open;
Qry_rkxz.Open;
if Qry_rkxz.IsEmpty then
CHQMsgBox('基础数据——入库性质未初始化!请与开发商联系!');
case io_typ of
io_jyp:
AssignSqlStr(data.qrytmp, format(fhdh, ['tk_jyfhd', 'TG_JRCKXZDM', 'tks_jyrkd']));
io_txp:
AssignSqlStr(data.qrytmp, format(fhdh, ['tk_txfhd', 'TG_TRCKXZDM', 'tks_txrkd']));
end;
data.qrytmp.Open;
while not data.qrytmp.Eof do
begin
CBo_yjdh.Items.Add(data.qrytmp.Fields[0].AsString);
VL_sl_ckxz.Add(data.qrytmp.FieldByName('RCKXZMC').AsString);
VL_sl_lydw.Add(data.qrytmp.FieldByName('DWMC').AsString);
data.qrytmp.Next;
end;
CBo_yjdh.ItemIndex := 0;
CBo_yjdhClick(nil);
result := ShowModal = MB_OK;
finally
Free;
end;
end;
procedure TfrmSJ_chooseJYFHD.FormCreate(Sender: TObject);
begin
inherited;
VL_sl_ckxz := TStringList.Create;
VL_sl_lydw := TStringList.Create;
end;
procedure TfrmSJ_chooseJYFHD.CBo_yjdhClick(Sender: TObject);
begin
inherited;
if VL_sl_ckxz.Count > 0 then
Lbl_ckxz.Caption := VL_sl_lydw.Strings[CBo_yjdh.ItemIndex] +
'(' + VL_sl_ckxz.Strings[CBo_yjdh.ItemIndex] + ')'
else
Lbl_ckxz.Caption := '';
Qry_tkfhpp.Close;
Qry_tkfhpp.Params[0].AsString := CBo_yjdh.Text;
Qry_tkfhpp.Open;
Qry_tkfhpp.Edit;
end;
procedure TfrmSJ_chooseJYFHD.BitBtn1Click(Sender: TObject);
var
v_s_msg: string;
function CheckKF: boolean;
begin
Result := false;
Qry_tkfhpp.DisableConstraints;
Qry_tkfhpp.First;
while not Qry_tkfhpp.Eof do
begin
if Qry_tkfhpp.FieldByName('KF').IsNull then
begin
Result := true;
break;
end;
Qry_tkfhpp.Next;
end;
Qry_tkfhpp.EnableConstraints;
end;
function CheckNotNull(var AmsgStr: string): boolean;
begin
Result := true;
if CBo_yjdh.Text = '' then
begin
AmsgStr := '请选择入库依据单号!';
exit;
end;
if DBLCB_rkxz.Text = '' then
begin
AmsgStr := '请选择入库性质!';
exit;
end;
if CheckKF then
begin
AmsgStr := '请选择票品入库库房!';
exit;
end;
Result := false;
end;
begin
inherited;
if CheckNotNull(v_s_msg) then
begin
CHQMsgBox(v_s_msg);
exit;
end;
frmSY_RKD.queding := true;
frmSY_RKD.ckdh := CBo_yjdh.Text;
frmSY_RKD.yjdh := CBo_yjdh.Text;
DoAPPRKD;
close;
end;
procedure TfrmSJ_chooseJYFHD.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
if VL_sl_ckxz <> nil then
begin
VL_sl_ckxz.Free;
VL_sl_lydw.Free;
end;
end;
procedure TfrmSJ_chooseJYFHD.DoAPPRKD;
var
rkdh: string;
tkrkd: string;
date: tdatetime;
tkrkpp: string;
yjsql: string;
yj: integer;
bhbh: string;
v_s_sql: string;
procedure GetNewRKDH;
begin
with frmSY_RKD.StoredProc1 do
begin
ParamByName('BILLID').Asstring := 's_rkd';
case Fio_type of
io_jyp:
ParamByName('SORTCODE').Asstring := 'J';
io_txp:
ParamByName('SORTCODE').Asstring := 'T';
end;
ParamByName('DEPARTMENT').Asstring := VG_UnitID;
ParamByName('CYEAR').AsInteger := RG_yf.ItemIndex;
ExecProc;
rkdh := Params[0].asstring;
end;
end;
procedure DoAppRKD;
begin
with frmSY_RKD.Qry_RKD do
begin
Append;
fieldbyname('rkdh').asstring := rkdh;
fieldbyname('yjdh').asstring := CBo_yjdh.Text;
fieldbyname('rkxz').asstring := DBLCB_rkxz.KeyValue;
fieldbyname('lydw').asstring := Qry_tkfhpp.Fieldbyname('DWDM').AsString;
fieldbyname('jszt').asstring := '0';
fieldbyname('zbr').asstring := VG_USERNAME;
end;
end;
begin
with frmSY_RKD do
begin
data.DM.StartTransaction;
try
GetNewRKDH; //生成发货单号
DoAppRKD; //insert into TKS_JYRKD
Qry_tkfhpp.First; //insert into TKS_JYRKPP
while not Qry_tkfhpp.eof do
begin
with Qry_RKPP do
begin
append;
fieldbyname('rkdh').asstring := rkdh;
fieldbyname('kfdm').asstring := Qry_tkfhpp.FieldByName('KFDM').AsString;
fieldbyname('sl').asinteger := Qry_tkfhpp.FieldByName('sl').AsInteger;
fieldbyname('zk').asinteger := Qry_tkfhpp.FieldByName('zk').AsInteger;
fieldbyname('jsj').asinteger := Qry_tkfhpp.FieldByName('jsj').AsInteger;
fieldbyname('ppdm').asstring := Qry_tkfhpp.FieldByName('tdm').AsString;
fieldbyname('jj').asFloat := Qry_tkfhpp.FieldByName('jsj').AsFloat + Qry_tkfhpp.FieldByName('sj').AsFloat * Qry_tkfhpp.FieldByName('zk').AsFloat / 100;
fieldbyname('xj').asinteger := Qry_tkfhpp.FieldByName('sj').AsInteger;
case FIo_type of
io_jyp:
v_s_sql := 'TYS_JYPPKC';
io_txp:
v_s_sql := 'TYS_TXPPKC';
io_yp:
v_s_sql := 'TYS_YPPKC';
io_grp:
v_s_sql := 'TYS_GRPPKC';
end;
AssignSQLstr(data.qrytmp, 'select XJ from ' + v_s_sql + ' where PPDM=''' + Qry_tkfhpp.FieldByName('tdm').AsString + '''');
data.qrytmp.Open;
if not data.qrytmp.IsEmpty then
fieldbyname('xj').asinteger := data.qrytmp.Fields[0].AsInteger;
{ end;
io_txp:
begin
fieldbyname('tudm').asstring := Qry_tkfhpp.FieldByName('tdm').AsString;
fieldbyname('mz').asFloat := Qry_tkfhpp.FieldByName('jsj').AsFloat + Qry_tkfhpp.FieldByName('sj').AsFloat * Qry_tkfhpp.FieldByName('zk').AsFloat / 100;
fieldbyname('sj').asinteger := Qry_tkfhpp.FieldByName('sj').AsInteger;
end;
end;}
end;
Qry_tkfhpp.Next;
end;
Qry_RKD.ApplyUpdates;
Qry_RKPP.ApplyUpdates;
Qry_tkfhpp.CancelUpdates;
data.DM.Commit;
except
data.DM.Rollback;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -