?? sj_jypfhdfh.pas
字號(hào):
{*******************************************************}
{ }
{ 地市集郵票發(fā)貨單審核 }
{ }
{ 中軟金馬公司版權(quán)所有。2002.12前 }
{ }
{ 編制:中軟金馬項(xiàng)目開發(fā)組 }
{ }
{ }
{*******************************************************}
(*
本模塊在地市集郵票管理模塊 單據(jù)管理部分的地市集郵票發(fā)貨單審核菜單調(diào)用。
*)
{
[與通信票對(duì)照]
表對(duì)照
A 通信票發(fā)貨單 -> 集郵票品發(fā)貨單
B 通信出庫票品 -> 集郵出庫票品
C 袋數(shù)重量表 -> 集郵袋數(shù)重量表
D 包號(hào)版號(hào)表(出庫單) -> 集郵包號(hào)版號(hào)(出庫單)
字段對(duì)照
B
圖代碼 -> 票品代碼
售價(jià) -> 銷價(jià)
面值 -
原價(jià) +
進(jìn)價(jià) +
D
進(jìn)價(jià) +
有關(guān)表:
集郵票品發(fā)貨單、集郵出庫票品、集郵袋數(shù)重量表、集郵包號(hào)版號(hào)(出庫單)
數(shù)據(jù)來源:
出庫單計(jì)劃號(hào):集郵票品發(fā)貨單依據(jù)單號(hào)的GROUP BY
發(fā)貨單號(hào): 集郵票品發(fā)貨單的發(fā)貨單號(hào)
發(fā)貨單主信息:集郵票品發(fā)貨單
發(fā)貨單詳細(xì)信息:集郵出庫票品
包袋:集郵袋數(shù)重量表
包號(hào)版本號(hào):集郵包號(hào)版號(hào)(出庫單)
功能:
算法:
1.輸入的庫房號(hào)必須在庫房表中存在
2.對(duì)起始版號(hào)、終止版本號(hào)數(shù)據(jù)修改時(shí)要較驗(yàn),即不能重復(fù)
3.當(dāng)修改完成保存數(shù)據(jù)時(shí),需要作如下操作:
A. 裝票日期、封裝袋數(shù)、出庫日期、庫管員、備注保存到集郵票品發(fā)貨單中
修改集郵票品發(fā)貨單的在途狀態(tài)為'1'
B. 記錄庫存數(shù)據(jù)
通信票品庫存
票品代碼:集郵出庫票品.票品代碼
庫房代碼:集郵出庫票品.庫房號(hào)
原價(jià):集郵出庫票品.原價(jià)
進(jìn)價(jià):集郵出庫票品.進(jìn)價(jià)
銷價(jià):集郵出庫票品.銷價(jià)
庫位號(hào):集郵出庫票品.庫位號(hào)
票品類別:通過票品代碼判斷(?)
IF 出庫性質(zhì) = '待銷毀出庫' THEN
待銷毀庫存 = 待銷毀庫存 - 集郵出庫票品.數(shù)量
ELSE IF 出庫性質(zhì) = '預(yù)付出庫' THEN
預(yù)付庫存 = 預(yù)付庫存 - 集郵出庫票品.數(shù)量
ELSE 庫存總枚數(shù) = 庫存總枚數(shù) + 集郵出庫票品.數(shù)量
變更標(biāo)志:NULL(?)
備注:NULL
包號(hào)版號(hào)表(庫存)
起始版號(hào):包號(hào)版號(hào)表(出庫單).起始版本號(hào)
終止版號(hào): 包號(hào)版號(hào)表(出庫單).終止版本號(hào)
C. 記帳
集郵票總帳表
集郵票總分戶帳表 (集郵票總分戶帳明細(xì)表)
集郵票明細(xì)分類帳
集郵票進(jìn)發(fā)存明細(xì)帳表
集郵票明細(xì)分類帳(庫管員)
集郵票品庫存(庫管)
集郵票品庫存(業(yè)務(wù)部)
更新有關(guān)表:
集郵票品發(fā)貨單、集郵出庫票品、集郵袋數(shù)重量表、集郵包號(hào)版號(hào)(出庫單)
備注:
對(duì)操作員要較驗(yàn)權(quán)限,不能瀏覽其它庫房的入庫單
}
unit SJ_JYPFHDFH;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
FORMBASE, ExtCtrls, ModiPanel, StdCtrls, Mask, DBCtrls, Grids, DBGrids,
CurrEdit, RXDBCtrl, ToolEdit, ComCtrls, Buttons, DBTables, Db,
RxQuery, sqlstrings, RXCtrls;
type
Tfrm_JYPFHDFH = class(TFFormBase)
ModiPanel1: TModiPanel;
Panel1: TPanel;
DBGrid2: TDBGrid;
Panel2: TPanel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit6: TDBEdit;
Label7: TLabel;
DBEdit7: TDBEdit;
Label9: TLabel;
DBEdit8: TDBEdit;
DBDateEdit1: TDBDateEdit;
Label10: TLabel;
Label11: TLabel;
DBDateEdit2: TDBDateEdit;
Label12: TLabel;
RxDBCalcEdit1: TRxDBCalcEdit;
USQL_FHDH: TUpdateSQL;
DS_FHDH: TDataSource;
qryFHDPP: TQuery;
USQL_FHDPP: TUpdateSQL;
DS_FHDPP: TDataSource;
qryBD: TQuery;
USQL_BD: TUpdateSQL;
DS_BD: TDataSource;
qryBHBH: TQuery;
USQL_BHBH: TUpdateSQL;
DS_BHBH: TDataSource;
DBGrid1: TDBGrid;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
DBGrid4: TDBGrid;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
DBGrid3: TDBGrid;
qryFHD: TRxQuery;
BitBtn5: TBitBtn;
StoredProc1: TStoredProc;
qryFHDPPFHDH: TStringField;
qryFHDPPPPDM: TStringField;
qryFHDPPJJ: TFloatField;
qryFHDPPKFDM: TStringField;
qryFHDPPKWH: TStringField;
qryFHDPPSL: TFloatField;
qryFHDPPYJ: TFloatField;
qryFHDPPXJ: TFloatField;
qryFHDPPZH: TStringField;
qryFHDPPTJC: TStringField;
qryFHDPPKFMC: TStringField;
qryFHDPPPPDW: TStringField;
Panel3: TPanel;
XttxTitle: TRxLabel;
DWMC: TLabel;
BitBtn6: TBitBtn;
Label1: TLabel;
BitBtn7: TBitBtn;
DateEdit1: TDateEdit;
qryBHBHFHDH: TStringField;
qryBHBHPPDM: TStringField;
qryBHBHBLSH: TFloatField;
qryBHBHQSBH: TStringField;
qryBHBHZZBH: TStringField;
qryBHBHZH: TStringField;
qryBHBHTJC: TStringField;
Qryban: TQuery;
QrybanTDM: TStringField;
QrybanBLSH: TFloatField;
QrybanBJC: TStringField;
DS_ban: TDataSource;
qryBHBHbz: TStringField;
Panel4: TPanel;
BitBtn8: TBitBtn;
Qrybao: TQuery;
DS_bao: TDataSource;
QrybaoBJC: TStringField;
QrybaoBS: TFloatField;
QrybaoBZLSH: TFloatField;
Qry_ban1: TQuery;
StringField1: TStringField;
FloatField1: TFloatField;
StringField2: TStringField;
DS_ban1: TDataSource;
Panel5: TPanel;
Label6: TLabel;
Label13: TLabel;
Edt_qsbao: TEdit;
DBLB_ban: TDBLookupComboBox;
Label15: TLabel;
Edt_zzbao: TEdit;
Label14: TLabel;
Edt_qsban: TEdit;
Label16: TLabel;
Edt_zzban: TEdit;
DBLB_bao: TDBLookupComboBox;
Label8: TLabel;
procedure ModiPanel1BtnClick(Index: TBtnVisible);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure qryBDAfterInsert(DataSet: TDataSet);
procedure qryBHBHAfterInsert(DataSet: TDataSet);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure qryFHDUpdateError(DataSet: TDataSet; E: EDatabaseError;
UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
procedure qryFHDPPJJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
procedure qryFHDPPJJSetText(Sender: TField; const Text: string);
procedure DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure qryFHDAfterScroll(DataSet: TDataSet);
procedure DBLB_banCloseUp(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure Edt_zzbaoExit(Sender: TObject);
procedure Edt_qsbaoExit(Sender: TObject);
private
{ Private declarations }
FDtState: TDataState;
function Save: Boolean;
procedure SetState(Value: TdataState);
procedure InitData;
function CheckBill(ID: string): Boolean;
public
{ Public declarations }
end;
function Show_JYPFHDFH: Boolean;
var
frm_JYPFHDFH: Tfrm_JYPFHDFH;
implementation
uses datas,pub, SJ_JYPFHDFHDY, SJ_JYPFHDFHDY0;
{$R *.DFM}
function Show_JYPFHDFH: Boolean;
begin
Result := false;
Application.CreateForm(Tfrm_JYPFHDFH, frm_JYPFHDFH); {TFFormBase1, FFormBase1}
with frm_JYPFHDFH do {FFormBase1}
try
if CheckRight(frm_JYPFHDFH, [ModiPanel1, BitBtn5, BitBtn6]) then
result := ShowModal = MB_OK;
finally
Free;
end;
end;
procedure Tfrm_JYPFHDFH.SetState(Value: TdataState);
var
v_b_modiBHBH: boolean; //是否只修改包號(hào)版號(hào)(修改已復(fù)核過的出庫單包號(hào)版號(hào))
procedure SetControls(Value: Boolean);
begin
DBDateEdit1.ReadOnly := not(not Value and qryFHD.FieldByName('HDR').IsNull);
DBDateEdit2.ReadOnly := DBDateEdit1.ReadOnly;
RxDBCalcEdit1.ReadOnly := DBDateEdit1.ReadOnly;
DBEdit7.ReadOnly := Value;
Panel1.Enabled := Value;
DBGrid4.ReadOnly := Value;
DBGrid3.ReadOnly := Value;
BitBtn1.Enabled := not (Value);
BitBtn2.Enabled := not (Value);
BitBtn8.Enabled := not (Value);
BitBtn5.Enabled := Value and not (qryFHD.IsEmpty or qryFHDPP.isempty);
BitBtn6.Enabled := Value and not (qryFHD.IsEmpty or qryFHDPP.isempty);
end;
begin
v_b_modiBHBH := false;
if not qryFHD.Active then
begin
FDtState := dtBrowse;
ModiPanel1.ChangeMode(FDtState = dtBrowse);
SetControls(FDtState = dtBrowse);
exit;
end;
if (Value in [dtEdit, dtInsert]) and
isChecked(io_jyp, True, qryFHD.FieldbyName('fhdh').Asstring) then
begin
if qryFHD.FieldbyName('HDR').AsString <> VG_UserName then
begin
CHQMsgBox('對(duì)不起,您只能修改自己的發(fā)貨單');
exit;
end
else
v_b_modiBHBH := true;
end;
FDtState := Value;
ModiPanel1.ChangeMode(FDtState = dtBrowse);
SetControls(FDtState = dtBrowse);
with qryFHD do
case FDtstate of
dtBrowse:
begin
end;
dtinsert:
begin
Append; {append}
end;
dtedit:
begin
if not v_b_modiBHBH then
begin
Edit;
if FieldByName('CKRQ').AsString = '' then
FieldByName('CKRQ').AsDateTime := GetsysDate;
if FieldByName('ZPRQ').AsString = '' then
FieldByName('ZPRQ').AsDateTime := GetsysDate;
end
{ else if qryBHBH.IsEmpty then
begin
qryFHDPP.First;
while not qryFHDPP.Eof do
begin
qryBHBH.Append;
qryBHBH.Post;
qryFHDPP.Next;
end;
end; }
end;
end;
SetBHBHCtls(Panel5, Value);
end;
function Tfrm_JYPFHDFH.Save: Boolean;
begin
result := true;
with qryBD do {query}
begin
First;
while not Eof do
begin
if (FieldByName('FHDH').Asstring = '') or (FieldByName('DZBH').Asstring = '') then
begin
CHQMsgBox('包裝袋編號(hào)不能為空!');
result := False;
Break;
end;
Next;
end;
end;
with qryBHBH do {query}
begin
First;
while not Eof do
begin //FHDH, PPDM, QSBH, ZZBH
if (FieldByName('FHDH').Asstring = '') or (FieldByName('PPDM').Asstring = '')
or (FieldByName('QSBH').Asstring = '') or (FieldByName('ZZBH').Asstring = '') then
begin
CHQMsgBox('起始版號(hào)、終止版號(hào)不能為空!');
result := False;
Break;
end;
Next;
end;
end;
if not result then exit;
with qryFHD do {query}
begin
Database.StartTransaction;
try
qryFHD.ApplyUpdates;
qryFHDPP.ApplyUpdates;
qryBD.ApplyUpdates;
qryBHBH.ApplyUpdates;
Database.Commit;
except
result := False;
if Database.InTransaction then Database.RollBack;
if errMsg = '' then
raise
else
raise exception.Create(errMsg);
end;
end;
qryFHD.CommitUpdates;
qryFHDPP.CommitUpdates;
qryBD.CommitUpdates;
qryBHBH.CommitUpdates;
SetState(dtBrowse);
end;
procedure Tfrm_JYPFHDFH.ModiPanel1BtnClick(Index: TBtnVisible);
var
jycx: string;
begin
inherited;
case index of
bnAdd:
; //SetState(dtInsert)
bnDelete:
if CHQMsgBox(MSG_DELETE, 2) = IDYES then
with qryFHD do {query}
begin
Database.StartTransaction;
try
Delete; {query1}
Database.Commit;
except
if Database.InTransaction then Database.RollBack;
if errMsg = '' then
raise
else
raise exception.Create(errMsg);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -