?? sy_kcpptj.pas
字號:
{*******************************************************}
{ }
{ 庫存票品調價 }
{ }
{ 中軟金馬公司版權所有。2002.12前 }
{ }
{ 編制:中軟金馬郵資票品項目開發組 }
{ }
{ }
{*******************************************************}
(*
省級集郵票,省級集郵品,省級零枚票,省級市場購入票
地市集郵票,地市集郵品,地市市場購入票
*)
{
有關表:
集郵票品庫存、集郵票調價表
數據來源:
列表:集郵票品庫存(按志號排序)
功能:
查找:根據志號快速定位
算法:
保存數據時,遍歷已更新的數據,UPDATE集郵票品庫存,同時插入一條數據到集郵票調價表中
更新有關表:
集郵票品庫存(UPDATE 原價、銷價)、集郵票調價表
備注:
修改了函數 DBReSelect 原來為1=1,蹦叉。改為 and 1=1 yzhshi 2002.12.02
修改原來只在第一頁按志號定位票品的問題 by jhshao 2003.05.07
}
unit SY_KCPPTJ;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
FORMBASE, ExtCtrls, ModiPanel, Grids, DBGrids, RXDBCtrl, StdCtrls, Db,
DBTables, RxQuery, Mask, ToolEdit, ComCtrls, Buttons, CurrEdit, RXCtrls,
SqlStrings, DBCtrls;
type
TfrmSJ_TJD = class(TFFormBase)
ModiPanel1: TModiPanel;
qryKC: TRxQuery;
USQL_JYP_KC: TUpdateSQL;
DS_KC: TDataSource;
QryTJD: TQuery;
USQL_JYP_TJD: TUpdateSQL;
Panel1: TPanel;
Label1: TLabel;
Edit1: TEdit;
PCo_jg: TPageControl;
TabSheet1: TTabSheet;
RxDBGrid1: TRxDBGrid;
TabSheet2: TTabSheet;
RxDBGrid2: TRxDBGrid;
qryKCFLG: TStringField;
qryKCZH: TStringField;
qryKCTMC: TStringField;
qryKCYJ: TFloatField;
qryKCXJ: TFloatField;
qryKCPPDM: TStringField;
QryTJDB: TQuery;
USQL_JYP_TJDB: TUpdateSQL;
SP_JYP_TJJZ: TStoredProc;
Panel2: TPanel;
RGr_YorX: TRadioGroup;
Panel4: TPanel;
XttxTitle: TRxLabel;
DWMC: TLabel;
RGr_JorZ: TRadioGroup;
BBt_mr: TBitBtn;
CEd_jsj: TCurrencyEdit;
CEd_zk: TCurrencyEdit;
BitBtn1: TBitBtn;
USQL_YP_KC: TUpdateSQL;
SqlS_KC: TSqlStrings;
SqlS_TJD: TSqlStrings;
SqlS_TJDB: TSqlStrings;
USQL_YP_TJD: TUpdateSQL;
USQL_YP_TJDB: TUpdateSQL;
SP_YP_TJJZ: TStoredProc;
USQL_GRP_KC: TUpdateSQL;
USQL_GRP_TJD: TUpdateSQL;
USQL_GRP_TJDB: TUpdateSQL;
SP_GRP_TJJZ: TStoredProc;
Qry_kf: TQuery;
DS_kf: TDataSource;
DBLCB_kf: TDBLookupComboBox;
lbl_kf: TLabel;
SqlS_KC2: TSqlStrings;
qry_KC2: TRxQuery;
StringField1: TStringField;
StringField2: TStringField;
StringField3: TStringField;
FloatField1: TFloatField;
FloatField2: TFloatField;
FloatField3: TFloatField;
FloatField4: TFloatField;
StringField4: TStringField;
USQL_JYP2: TUpdateSQL;
DS_KC2: TDataSource;
USQL_TXP2: TUpdateSQL;
USQL_YP2: TUpdateSQL;
USQL_GRP2: TUpdateSQL;
qryKCKCHSJ: TFloatField;
qry_KC2JJ: TFloatField;
GroupBox1: TGroupBox;
CB_wrq: TCheckBox;
DEd_qs: TDateEdit;
DEd_jz: TDateEdit;
CB_fxrq: TCheckBox;
CB_zh: TCheckBox;
Edt_zh: TEdit;
SpeedButton1: TSpeedButton;
USQL_TXP_KC: TUpdateSQL;
USQL_TXP_TJD: TUpdateSQL;
USQL_TXP_TJDB: TUpdateSQL;
SP_TXP_TJJZ: TStoredProc;
procedure ModiPanel1BtnClick(Index: TBtnVisible);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Edit1Change(Sender: TObject);
procedure PCo_jgChange(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure RGr_JorZClick(Sender: TObject);
procedure BBt_mrClick(Sender: TObject);
procedure qryKCYJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
procedure qryKCYJSetText(Sender: TField; const Text: string);
procedure qryKCBeforePost(DataSet: TDataSet);
procedure qryKCXJSetText(Sender: TField; const Text: string);
procedure qryKCJSJChange(Sender: TField);
private
{ Private declarations }
FDtState: TDataState;
Fio_Type: TIO_TYPE;
procedure SetState(Value: TdataState);
procedure SetJYPTJB(p_tjdh: string; p_tjlx: string; var v_xh: integer);
procedure DBReSelect();
function checkXJHSJ(var pv_ACount: integer): boolean;
function Save: Boolean;
function Save2: Boolean;
procedure DoSetKCJG(Sender: TrxQuery; ATJDH, AYORX: string; var AXH: integer);
public
{ Public declarations }
end;
function ExeSJ_TJD: Boolean;
procedure Show_KCPPTJ(io_typ: TIO_TYPE; const SenderTag: integer);
var
frmSJ_TJD: TfrmSJ_TJD;
implementation
{$R *.DFM}
uses datas,pub, Clipbrd;
procedure Show_KCPPTJ(io_typ: TIO_TYPE; const SenderTag: integer);
begin
Application.CreateForm(TfrmSJ_TJD, frmSJ_TJD);
with frmSJ_TJD do
try
Tag := SenderTag;
if CheckRight(frmSJ_TJD, [ModiPanel1]) then
begin
DWMC.Caption := '使用單位:' + VG_UnitName;
FIO_type := io_typ;
Caption := '郵資票品管理信息系統——' + pCaption[integer(Fio_Type)] + '業務';
XttxTitle.Caption := '庫存票品調價';
QryKC.SQL.Text := SqlS_KC.FSqlText[io_typ].Text;
CB_wrq.Enabled := Fio_type in [io_yp, io_grp];
Qry_kf.Params[0].AsString := VG_UserID;
Qry_kf.Open;
DBLCB_kf.KeyValue := Qry_kf.FieldByName('KFDM').Value;
QryTJD.SQL.Text := SqlS_TJD.FSqlText[io_typ].Text;
QryTJDB.SQL.Text := SqlS_TJDB.FSqlText[io_typ].Text;
qry_KC2.SQL.Text := SqlS_KC2.FSqlText[io_typ].Text;
case Fio_type of
io_jyp:
begin
qryKC.UpdateObject := USQL_JYP_KC;
QryTJD.UpdateObject := USQL_JYP_TJD;
QryTJDB.UpdateObject := USQL_JYP_TJDB;
qry_KC2.UpdateObject := USQL_JYP2;
end;
io_txp:
begin
qryKC.UpdateObject := USQL_TXP_KC;
QryTJD.UpdateObject := USQL_TXP_TJD;
QryTJDB.UpdateObject := USQL_TXP_TJDB;
qry_KC2.UpdateObject := USQL_TXP2;
end;
io_yp:
begin
QryKC.UpdateObject := USQL_YP_KC;
QryTJD.UpdateObject := USQL_YP_TJD;
QryTJDB.UpdateObject := USQL_YP_TJDB;
qry_KC2.UpdateObject := USQL_YP2;
end;
io_grp:
begin
QryKC.UpdateObject := USQL_GRP_KC;
QryTJD.UpdateObject := USQL_GRP_TJD;
QryTJDB.UpdateObject := USQL_GRP_TJDB;
qry_KC2.UpdateObject := USQL_GRP2;
end;
end;
DS_KC.DataSet := QryKC;
SetState(dtBrowse);
DEd_qs.Text := inttostr(VG_Year - 1) + '-1-1';
DEd_jz.Text := inttostr(VG_Year) + '-1-1';
DBReselect;
{ if io_typ = io_txp then
PCo_jg.ActivePageIndex := 1
else}
PCo_jg.ActivePageIndex := 0;
CEd_jsj.MaxIntLength := qry_KC2.FieldByName('JSJ').dataSize;
CEd_zk.MaxIntLength := qry_KC2.FieldByName('ZK').dataSize;
PCo_jgChange(nil);
RGr_JorZClick(nil);
ShowModal
end;
finally
Destroy;
end;
end;
function ExeSJ_TJD: Boolean;
begin
Application.CreateForm(TfrmSJ_TJD, frmSJ_TJD); {TFFormBase1, FFormBase1}
with frmSJ_TJD do {FFormBase1}
begin
result := ShowModal = MB_OK;
Free;
end;
end;
procedure TfrmSJ_TJD.DBReSelect();
var
v_s_tj: string;
begin
v_s_tj := ' and 1=1 ';{修改,原來為1=1,蹦叉 yzhshi 2002.12.02}
if CB_fxrq.Checked then
v_s_tj := v_s_tj + 'and b.FXRQ >=to_date(''' + DEd_qs.Text + ''',''YYYY-MM-DD'') and B.FXRQ <=to_date(''' + DEd_jz.Text + ''',''YYYY-MM-DD'') ';
if CB_zh.Checked then
v_s_tj := v_s_tj + 'and b.ZH like ''%' + Edt_zh.Text + '%'' ';
if PCo_jg.ActivePageIndex = 0 then
with qryKC do
begin
Close;
if (Fio_type in [io_yp, io_grp]) then
begin
if CB_wrq.Checked then
v_s_tj := v_s_tj + ' and b.FXRQ is Null ';
if CB_zh.Checked then
v_s_tj := v_s_tj + ' and b.ZH like ''%' + Edt_zh.Text + '%'' ';
end;
MacroByName('TJ').AsString := v_s_tj;
if (Fio_type in [io_yp, io_grp]) and (CB_wrq.Checked) then
MacroByName('TJ').AsString := 'b.FXRQ is Null';
Open;
end
else
with qry_KC2 do
begin
Close;
if (Fio_type in [io_yp, io_grp]) then
begin
if (CB_wrq.Checked) then
v_s_tj := v_s_tj + ' and b.FXRQ is Null ';
if CB_zh.Checked then
v_s_tj := v_s_tj + ' and b.ZH like ''%' + Edt_zh.Text + '%'' ';
end;
v_s_tj := v_s_tj + ' and A.KFDM = ''' + DBLCB_kf.KeyValue + ''' ';
MacroByName('TJ').AsString := v_s_tj;
Open;
end;
{ if CB_fxrq.Checked then
v_s_tj := 'and b.FXRQ >=to_date(''' + DEd_qs.Text + ''',''YYYY-MM-DD'') and B.FXRQ <=to_date(''' + DEd_jz.Text + ''',''YYYY-MM-DD'') ';
if CB_zh.Checked then
v_s_tj := v_s_tj + 'and b.ZH like ''%' + Edt_zh.Text + '%'' ';
if PCo_jg.ActivePageIndex = 0 then
with qryKC do
begin
Close;
if (Fio_type in [io_yp, io_grp]) then
begin
if CB_wrq.Checked then
v_s_tj := 'and b.FXRQ is Null ';
if CB_zh.Checked then
v_s_tj := v_s_tj + 'and b.ZH like ''%' + Edt_zh.Text + '%'' ';
end;
MacroByName('TJ').AsString := v_s_tj;
if (Fio_type in [io_yp, io_grp]) and (CB_wrq.Checked) then
MacroByName('TJ').AsString := 'b.FXRQ is Null';
Open;
end
else
with qry_KC2 do
begin
Close;
if (Fio_type in [io_yp, io_grp]) then
begin
if (CB_wrq.Checked) then
v_s_tj := 'and b.FXRQ is Null ';
if CB_zh.Checked then
v_s_tj := v_s_tj + 'and b.ZH like ''%' + Edt_zh.Text + '%'' ';
end;
v_s_tj := 'and A.KFDM = ''' + DBLCB_kf.KeyValue + ''' ' + v_s_tj;
MacroByName('TJ').AsString := v_s_tj;
Open;
end;}
end;
procedure TfrmSJ_TJD.SetState(Value: TdataState);
var
v_qry: TQuery;
begin
FDtState := Value;
ModiPanel1.ChangeMode(FDtState = dtBrowse);
BBt_mr.Enabled := (PCo_jg.ActivePageIndex = 1) and (Fdtstate = dtEdit);
case PCo_jg.ActivePageIndex of
0:
v_qry := qryKC;
1:
v_qry := qry_KC2;
end;
with v_qry do
case PCo_jg.ActivePageIndex of
0:
begin
RGr_Yorx.Enabled := (Fdtstate = dtBrowse);
RxDBGrid1.Columns[3].ReadOnly := (Fdtstate = dtBrowse) and (RGr_YorX.ItemIndex = 0);
case Fdtstate of
dtBrowse:
begin
RxDBGrid1.Columns[3].color := cl3DLight;
end; {browse}
dtinsert:
Append; {append}
dtedit:
begin
Edit; {edit}
if RGr_YorX.ItemIndex = 0 then
begin
RxDBGrid1.Columns[3].color := cl3DLight; //$00D9FFFF;
end
else
begin
RxDBGrid1.Columns[3].color := clInfoBk; //$00D9FFFF;
end;
end;
end;
end;
1:
begin
RGr_JorZ.Enabled := (Fdtstate = dtBrowse);
RxDBGrid2.Columns[3].ReadOnly := (Fdtstate = dtBrowse) and (RGr_JorZ.ItemIndex = 1);
RxDBGrid2.Columns[4].ReadOnly := (Fdtstate = dtBrowse) and (RGr_JorZ.ItemIndex = 0);
case Fdtstate of
dtBrowse:
begin
RxDBGrid2.Columns[3].color := cl3DLight;
RxDBGrid2.Columns[4].color := cl3DLight;
end; {browse}
dtinsert:
Append; {append}
dtedit:
begin
Edit; {edit}
if RGr_JorZ.ItemIndex = 0 then
begin
RxDBGrid2.Columns[3].color := clInfoBk; //$00D9FFFF;
RxDBGrid2.Columns[4].color := cl3DLight; //$00D9FFFF;
end
else
begin
RxDBGrid2.Columns[3].color := cl3DLight; //$00D9FFFF;
RxDBGrid2.Columns[4].color := clInfoBk; //$00D9FFFF;
end;
end;
end;
end;
end;
end;
procedure TfrmSJ_TJD.SetJYPTJB(p_tjdh: string; p_tjlx: string; var v_xh: integer);
begin
with qryKC do {query}
begin
//TYS_JYPTJD
QryTJD.Append;
v_xh := v_xh + 1;
QryTJD.fieldbyname('xh').asinteger := v_xh;
QryTJD.fieldbyname('ppdm').asstring := FieldByName('ppdm').Asstring;
QryTJD.fieldbyname('yj').AsFloat := FieldByName('YJ').OldValue;
QryTJD.fieldbyname('xj').AsFloat := FieldByName('XJ').OldValue;
QryTJD.fieldbyname('xgrq').asdatetime := GetSysDate;
QryTJD.fieldbyname('xgr').asstring := VG_UserName;
//TYS_JYPTJDB
QryTJDB.Append;
QryTJDB.FieldByName('TJDH').AsString := p_tjdh;
QryTJDB.FieldByName('TZLX').AsString := p_tjlx;
QryTJDB.FieldByName('PPDM').AsString := FieldByName('ppdm').Asstring;
with data.qrytmp do
begin
Close;
SQL.Clear;
case Fio_type of
io_jyp:
SQL.Add('select sum(TS) from TYS_JYPPKC where PPDM=''' +
qryKC.FieldByName('PPDM').AsString + '''');
io_txp:
SQL.Add('select sum(TS) from TYS_TXPPKC where PPDM=''' +
qryKC.FieldByName('PPDM').AsString + '''');
io_yp:
SQL.Add('select sum(TS) from TYS_YPPKC where PPDM=''' +
qryKC.FieldByName('PPDM').AsString + '''');
io_grp:
SQL.Add('select sum(TS) from TYS_GRPPKC where PPDM=''' +
qryKC.FieldByName('PPDM').AsString + '''');
end;
Open;
end;
QryTJDB.FieldByName('SL').AsFloat := data.qrytmp.Fields[0].AsFloat;
case RGr_yorx.ItemIndex of
0:
begin
QryTJDB.FieldByName('YDJ').AsString := FieldByName('YJ').oldvalue;
QryTJDB.FieldByName('XDJ').AsFloat := FieldByName('YJ').AsFloat;
end;
1:
begin
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -