?? 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 + -