📄 sy_kcmxcx.pas
字号:
{*******************************************************}
{ }
{ 库存及明细帐查询 }
{ }
{ 中软金马公司版权所有。2002.12前 }
{ }
{ 编制:中软金马项目开发组 }
{ }
{ }
{*******************************************************}
(*
本模块在省级库房管理模块 集邮票、零枚票、集邮品、市场购入票四部分的库存及明细帐查询菜单 调用
*)
unit SY_kcmxcx;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, Buttons, ExtCtrls, StdCtrls, ActnList, Db, DBTables,
ComCtrls, RXCtrls, sqlstrings, DBGridExport, Menus, Mask, ToolEdit;
type
TFrmY_kcmxcx = class(TForm)
GroupBox1: TGroupBox;
DBGid_kc: TDBGrid;
CBo_kfmc: TComboBox;
Label1: TLabel;
Label2: TLabel;
CBo_ppmc: TComboBox;
BitBtn1: TBitBtn;
ActionList1: TActionList;
Act_sel: TAction;
Act_rtn: TAction;
Qry_kcmx: TQuery;
DS_kc: TDataSource;
Query1: TQuery;
CheckBox1: TCheckBox;
Label3: TLabel;
Label4: TLabel;
BitBtn2: TBitBtn;
Label5: TLabel;
Edit1: TEdit;
Panel2: TPanel;
XttxTitle: TRxLabel;
DWMC: TLabel;
Panel3: TPanel;
SqlStrings1: TSqlStrings;
PM_Exp: TPopupMenu;
MI_Exc: TMenuItem;
N2: TMenuItem;
MI_txt: TMenuItem;
DBGE_rkd: TDBGridExport;
d1: TDateEdit;
d2: TDateEdit;
procedure Act_selExecute(Sender: TObject);
procedure Act_rtnExecute(Sender: TObject);
procedure CBo_kfmcChange(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure MI_ExcClick(Sender: TObject);
procedure MI_txtClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Qry_kcmxAfterOpen(DataSet: TDataSet);
private
{ Private declarations }
vlp_sl_kfdm: TStringList;
vlp_sl_ppdm: TStringList;
Fio_Type: TIO_TYPE;
public
{ Public declarations }
end;
function ExecuteKCMX(io_typ: TIO_TYPE; const DB: TDatabase): boolean;
var
FrmY_kcmxcx: TFrmY_kcmxcx;
implementation
uses datas,Pub;
{$R *.DFM}
function ExecuteKCMX(io_typ: TIO_TYPE; const DB: TDatabase): boolean;
var
year, month, day: Word;
begin
Result := false;
if not Assigned(DB) then
exit;
Application.CreateForm(TfrmY_kcmxcx, frmY_kcmxcx);
with frmY_kcmxcx do
try
FIO_type := io_typ;
Caption := '邮资票品管理信息系统——库房管理';
XttxTitle.Caption := pCaption[integer(FIO_type)] + '库存及明细帐查询';
DWMC.Caption := '使用单位:' + VG_UnitName;
if FIO_type = io_yp then
DBGid_kc.Columns[1].FieldName := 'MC'
else
DBGid_kc.Columns[1].FieldName := 'TMC';
CBo_kfmc.Items.Clear;
CBo_kfmc.Items.Add('全部');
if Assigned(vlp_sl_kfdm) then
vlp_sl_kfdm.Destroy;
vlp_sl_kfdm := TStringList.Create;
vlp_sl_kfdm.Add('a.KFDM');
CBo_kfmc.ItemIndex := 0;
DecodeDate(GetSysDate, year, month, day);
d1.Date := strToDate(Format('%u-%u-01', [year, month]));
d2.DateTime := GetSysDate;
try
Qry_kcmx.Close;
Qry_kcmx.DatabaseName := DB.DatabaseName;
with Query1 do
begin
Close;
DatabaseName := DB.DatabaseName;
SQL.Clear;
SQL.Add('select a.KFDM,b.KFMC from TGS_KFRYDZB a, TGS_KFB b ' +
'where a.KFDM=b.KFDM and a.YGDM=''' + VG_USERID + ''' order by a.KFDM');
Open;
while not Eof do
begin
CBo_kfmc.Items.Add(FieldByName('KFMC').AsString);
vlp_sl_kfdm.Add('''' + FieldByName('KFDM').AsString + '''');
Next;
end;
CBo_kfmc.ItemIndex := 0;
CBo_kfmcChange(nil);
CheckBox1Click(nil);
end;
Result := ShowModal = MB_OK;
except
CHQMsgBox('不能打开 <' + pCaption[integer(FIO_type)] + '库存明细分类帐信息表>');
exit;
end;
finally
free;
end;
end;
procedure TFrmY_kcmxcx.Act_selExecute(Sender: TObject);
const
C_S_JYPSQL = 'select a.ppdm,a.kfdm,a.crkdh,a.zi,a.rq,a.zy,a.jssl,a.zjsl,a.jcsl,a.zbr,a.sdate,b.kfmc,c.tmc, c.zh ' +
'from TKS_JYPMXFLZ a, TGS_KFB b, TB_YZPPXXB c ';
C_S_TXPSQL = 'select a.ppdm,a.kfdm,a.crkdh,a.zi,a.rq,a.zy,a.jssl,a.zjsl,a.jcsl,a.zbr,a.sdate,b.kfmc,c.tmc, c.zh ' +
'from tks_txpmxflz a, TGS_KFB b, TB_YZPPXXB c ';
C_S_YPSQL = 'select a.ppdm,a.kfdm,a.crkdh,a.zi,a.rq,a.zy,a.jssl,a.zjsl,a.jcsl,a.zbr,a.sdate,b.kfmc,c.mc, c.zh ' +
'from TKS_YPMXFLZ a, TGS_KFB b, TB_JYPTXXB c ';
C_S_GRPSQL = 'select a.ppdm,a.kfdm,a.crkdh,a.zi,a.rq,a.zy,a.jssl,a.zjsl,a.jcsl,a.zbr,a.sdate,b.kfmc,c.tmc, c.zh ' +
'from TKS_GRPMXFLZ a, TGS_KFB b, TB_YZPPXXB c ';
C_S_Pub = 'where a.kfdm=b.kfdm and a.ppdm=c.tdm ' +
' and a.kfdm=%s and a.ppdm=%s ' +
' and a.KFDM in (select KFDM from TGS_KFRYDZB where YGDM=%s)';
var
sqlstr: string;
begin
with Qry_kcmx do
begin
Close;
SQL.Clear;
case FIO_type of
io_jyp:
begin
sqlstr := C_S_JYPSQL + C_S_Pub;
end;
io_txp:
begin
sqlstr := C_S_TXPSQL + C_S_Pub;
end;
io_yp:
begin
sqlstr := C_S_YPSQL + C_S_Pub;
end;
io_grp:
begin
sqlstr := C_S_GRPSQL + C_S_Pub;
end;
end;
sqlstr := format(sqlstr, [vlp_sl_kfdm[CBo_kfmc.ItemIndex], vlp_sl_ppdm[CBo_ppmc.ItemIndex], '''' + VG_USERID + '''']);
if CheckBox1.Checked then
sqlstr := sqlstr + ' and a.rq >= to_date(''' + FormatDateTime('yyyy-mm-dd', d1.DateTime) + ''',''yyyy-mm-dd'') ' +
' and a.rq <= to_date(''' + FormatDateTime('yyyy-mm-dd', d2.DateTime + 1) + ''',''yyyy-mm-dd'')';
sqlstr := sqlstr + ' order by a.kfdm, a.RQ desc, a.ppdm';
SQL.Add(sqlstr);
Open;
end;
DBGid_kc.Columns[0].Visible := (CBo_kfmc.ItemIndex = 0);
DBGid_kc.Columns[2].Visible := (CBo_ppmc.ItemIndex = 0);
end;
procedure TFrmY_kcmxcx.Act_rtnExecute(Sender: TObject);
begin
Query1.Close;
Qry_kcmx.Close;
Close;
end;
procedure TFrmY_kcmxcx.CBo_kfmcChange(Sender: TObject);
const
C_S_J = 'select distinct a.PPDM, b.TMC,c.mc ' +
'from TKS_JYPMXFLZ a, TB_YZPPTXXB b, TG_YZPPTZDM c ' +
'where b.TDM=a.PPDM and b.tz=c.tzdm and a.KFDM=%s';
C_S_T = 'select distinct a.PPDM, b.TMC ' +
'from TKS_TXPMXFLZ a, TB_YZPPXXB b ' +
'where b.TDM=a.PPDM and a.KFDM=%s';
C_S_Y = 'select distinct a.PPDM, b.MC TMC ' +
'from TKS_YPMXFLZ a, TB_JYPTXXB b ' +
'where b.TDM=a.PPDM and a.KFDM=%s';
C_S_G = 'select distinct a.PPDM, b.TMC,'''' mc ' +
'from TKS_GRPMXFLZ a, TB_YZPPXXB b ' +
'where b.TDM=a.PPDM and a.KFDM=%s';
var
v_s_sql: string;
begin
CBo_ppmc.Items.Clear;
CBo_ppmc.Items.Add('全部');
if Assigned(vlp_sl_ppdm) then
vlp_sl_ppdm.Destroy;
vlp_sl_ppdm := TStringList.Create;
vlp_sl_ppdm.Add('a.PPDM');
with Query1 do
begin
Close;
SQL.Clear;
case FIO_type of
io_jyp:
v_s_sql := C_S_J;
io_txp:
v_s_sql := C_S_T;
io_yp:
v_s_sql := C_S_Y;
io_grp:
v_s_sql := C_S_G;
end;
v_s_sql := format(v_s_sql, [vlp_sl_kfdm[CBo_kfmc.ItemIndex]]);
SQL.Add(v_s_sql);
Open;
while not Eof do
begin
CBo_ppmc.Items.Add(Fields[0].AsString + '(' + Fields[1].AsString + ')');
vlp_sl_ppdm.Add('''' + FieldByName('PPDM').AsString + '''');
Next;
end;
end;
CBo_ppmc.ItemIndex := 0;
end;
procedure TFrmY_kcmxcx.CheckBox1Click(Sender: TObject);
begin
D1.Enabled := CheckBox1.Checked;
D2.Enabled := CheckBox1.Checked;
end;
procedure TFrmY_kcmxcx.Edit1Change(Sender: TObject);
begin
if Edit1.Text <> '' then
Qry_kcmx.Locate('ZH', Edit1.Text, [loCaseInsensitive, loPartialKey]);
end;
procedure TFrmY_kcmxcx.FormCreate(Sender: TObject);
begin
GetAllColWidth(Self);
end;
procedure TFrmY_kcmxcx.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
SaveAllColWidth(Self);
end;
procedure TFrmY_kcmxcx.MI_ExcClick(Sender: TObject);
begin
DBGE_rkd.Export_To_Excel(DBGid_kc);
end;
procedure TFrmY_kcmxcx.MI_txtClick(Sender: TObject);
begin
DBGE_rkd.Export_To_Txt(DBGid_kc);
end;
procedure TFrmY_kcmxcx.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
VK_RETURN:
begin
if (self.activecontrol is TMEMO) or (self.activecontrol is TDBGrid) then
else
begin
postmessage(self.handle,WM_KEYDOWN,9,0);
postmessage(self.handle,WM_KEYUP,9,0);
end;
end;
Vk_Escape: Self.Close;
end;
end;
procedure TFrmY_kcmxcx.Qry_kcmxAfterOpen(DataSet: TDataSet);
begin
TNumericField(Qry_kcmx.FieldByName('JSSL')).DisplayFormat := '#,##';
TNumericField(Qry_kcmx.FieldByName('ZJSL')).DisplayFormat := '#,##';
TNumericField(Qry_kcmx.FieldByName('JCSL')).DisplayFormat := '#,##';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -