📄 sy_qlbzd.pas
字号:
{*******************************************************}
{ }
{ 邮品征订补录 }
{ }
{ 中软金马公司版权所有。2002.12前 }
{ }
{ 编制:中软金马邮资票品项目开发组 }
{ }
{ }
{*******************************************************}
(*
本模块在省级集邮品系统管理模块里面调用。
*)
unit SY_QLBZD;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Spin, ExtCtrls, ActnList, Grids, DBGrids, DBCtrls,
Mask, ToolEdit, CurrEdit, RXDBCtrl, Db, DBTables, CheckLst, RXCtrls;
type
TFrmY_QLBZD = class(TForm)
Panel1: TPanel;
DWMC: TLabel;
Label3: TLabel;
ND: TSpinEdit;
Panel2: TPanel;
Panel3: TPanel;
BBt_Modify: TBitBtn;
BBt_Delete: TBitBtn;
BBt_Save: TBitBtn;
BBt_Cancel: TBitBtn;
BBt_Quit: TBitBtn;
ALi_Edit: TActionList;
Act_Add: TAction;
Act_Delete: TAction;
Act_Modify: TAction;
Act_Find: TAction;
Act_Print: TAction;
Act_Save: TAction;
Act_Cancel: TAction;
Panel4: TPanel;
Label1: TLabel;
DataSource1: TDataSource;
Qry_GXDWSJB: TQuery;
Qry_Static: TQuery;
CB_PPMC: TComboBox;
Label4: TLabel;
CB_DWMC: TComboBox;
BBt_Add: TBitBtn;
UpdateSQL1: TUpdateSQL;
Qry_JJNXQB: TQuery;
Qry_JJNXQBJHH: TStringField;
Qry_JJNXQBSQDWDM: TStringField;
Qry_JJNXQBND: TStringField;
Qry_JJNXQBXQZTS: TFloatField;
Qry_JJNXQBYDTS: TFloatField;
Qry_JJNXQBLSTS: TFloatField;
Qry_JJNXQBZT: TStringField;
Qry_JJNXQBZBR: TStringField;
Qry_JJNXQBPZR: TStringField;
Qry_JJNXQBZDRQ: TDateTimeField;
Qry_JJNXQBSDRQ: TDateTimeField;
Qry_JJNXQBBZ: TStringField;
Qry_JJNXQBDWMC: TStringField;
Qry_JJNXQBYPMC: TStringField;
Qry_JJNXQBDW: TStringField;
Qry_JJNXQBSDATE: TDateTimeField;
XttxTitle: TRxLabel;
RxDBGrid1: TRxDBGrid;
BitBtn2: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure NDChange(Sender: TObject);
procedure Act_CancelExecute(Sender: TObject);
procedure Act_SaveExecute(Sender: TObject);
procedure Act_AddExecute(Sender: TObject);
procedure Act_DeleteExecute(Sender: TObject);
procedure Act_ModifyExecute(Sender: TObject);
procedure Act_FindExecute(Sender: TObject);
procedure CB_PPMCChange(Sender: TObject);
procedure Qry_JJNXQBYDTSChange(Sender: TField);
procedure Qry_JJNXQBLSTSChange(Sender: TField);
procedure CB_DWMCChange(Sender: TObject);
procedure Qry_JJNXQBYDTSSetText(Sender: TField; const Text: String);
procedure RxDBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure BitBtn2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
V_JHH:TStringList;
V_JHH1:String;
procedure PS_SetStatus(Value:Boolean);
{ Private declarations }
public
{ Public declarations }
end;
var
FrmY_QLBZD: TFrmY_QLBZD;
implementation
uses
pub,SY_QLBCX_PRT;
{$R *.DFM}
procedure TFrmY_QLBZD.FormCreate(Sender: TObject);
begin
DWMC.Caption := '使用单位:'+VG_UnitName;
V_JHH:=TStringList.Create;
with Qry_Static do
begin
Close;
SQL.Clear ;
SQL.Add ('select DWJC||''(''||DWDM||'')'' from TGS_GXDWSJB ');
SQL.Add ('where FHDX= ''1'' and ZJXJ=''1'' and JYYW=''1'' order by PXM');
// SQL.Add ('where (FHDX= ''1'' or KH=''1'') and JYYW=''1'' order by PXM');
Open;
while not Eof do
begin
CB_DWMC.Items.Add(Fields[0].AsString);
Next;
end;
Close;
end;
CB_DWMC.Items.Insert(0,'全部');
CB_DWMC.ItemIndex:=0;
ND.Value := VG_Year;
PS_SetStatus(True);
GetAllColWidth(Self);
end;
procedure TFrmY_QLBZD.NDChange(Sender: TObject);
begin
CB_PPMC.Text :='';
CB_PPMC.Items.Clear ;
V_JHH.Clear ;
Qry_JJNXQB.Close ;
CB_PPMC.OnChange :=nil;
with Qry_Static do
begin
Close;
SQL.Clear;
SQL.Add('Select JHH,TMC from TF_YPFXJHTAO ');
SQL.Add('where ND='''+IntToSTr(ND.Value)+'''');
SQL.Add ('order by JHH ');
Open;
While not Eof do
begin
CB_PPMC.Items.Add(Fields[1].AsString);
V_JHH.Add(Fields[0].AsString);
Next;
end;
CB_PPMC.OnChange :=CB_PPMCChange;
if CB_PPMC.Items.Count >0 then
begin
CB_PPMC.ItemIndex:=0;
end;
Close;
end;
CB_PPMCChange(nil);
end;
procedure TFrmY_QLBZD.Act_CancelExecute(Sender: TObject);
begin
with Qry_JJNXQB do
begin
Database.StartTransaction;
try
CancelUpdates;
Database.Commit;
except
Database.RollBack;
CHQMsgBox('数据存储错误!');
exit;
end;
CommitUpdates; //清除缓存的内容
close;
Open;
end;
PS_SetStatus(True);
Act_FindExecute(nil);
CB_PPMC.Enabled :=True;
CB_DWMC.Enabled :=True;
end;
procedure TFrmY_QLBZD.Act_SaveExecute(Sender: TObject);
begin
with Qry_JJNXQB do
begin
First;
while not Eof do
begin
if FieldByName('XQZTS').AsInteger= 0 then
begin
Delete;
Continue;
end;
Next;
end;
First;
end;
with Qry_JJNXQB do
begin
Database.StartTransaction;
try
ApplyUpdates;
Database.Commit;
Close;
Open;
except
Database.RollBack;
CHQMsgBox('数据存储错误!');
exit;
end;
CommitUpdates; //清除缓存的内容
end;
PS_SetStatus(True);
Act_FindExecute(nil);
CB_PPMC.Enabled :=True;
CB_DWMC.Enabled :=True;
end;
procedure TFrmY_QLBZD.Act_AddExecute(Sender: TObject);
begin
if CB_PPMC.Text ='' then
begin
CHQMsgBox('请选择一种票品!');
Exit;
end;
if (CB_DWMC.Text <> '全部') and (not Qry_JJNXQB.IsEmpty) then Exit;
with Qry_JJNXQB do
begin
Close;
SQL.Clear;
SQL.Add('Select * from TY_YPZDB ');
SQL.Add('where ND=''ZYJM''');
Open;
end;
if CB_DWMC.Text = '全部' then
with Qry_Static do
begin
Close;
SQL.Clear ;
SQL.Add ('select DWJC DWMC,DWDM from TGS_GXDWSJB ');
SQL.Add ('where FHDX= ''1'' and JYYW=''1'' ');
Open;
while not Eof do
begin
VG_SQLWhere:='select JHH from TY_YPZDB '
+' where ND ='''+IntToStr(ND.Value)+''' '
+' and JHH='''+ V_JHH1+''''
+' and SQDWDM ='''+FieldByName('DWDM').AsString +'''';
if PY_IsExist(VG_SQLWhere) then
begin
Next;
Continue;
end;
with Qry_JJNXQB do
begin
Append ;
FieldByName('JHH').Asstring := V_JHH1;
FieldByName('SQDWDM').AsString:= Qry_Static.FieldByName('DWDM').AsString ;
FieldByName('YPMC').AsString:= CB_PPMC.Text ;
FieldByName('ND').AsString := IntToStr(ND.Value) ;
FieldByName('ZT').Asstring := CG_WCL;
FieldByName('ZBR').Asstring := VG_UserName;
FieldByName('ZDRQ').AsString := FormatDateTime('yyyy-mm-dd',GetSysDate);
FieldByName('XQZTS').AsInteger:=0;
FieldByName('YDTS').AsInteger:=0;
FieldByName('LSTS').AsInteger:=0;
post;
end;
Next;
end;
Close;
end
else
with Qry_JJNXQB do
begin
Append ;
FieldByName('JHH').Asstring := V_JHH[CB_PPMC.ItemIndex];
FieldByName('YPMC').AsString:= CB_PPMC.Text ;
FieldByName('SQDWDM').AsString:= Copy(CB_DWMC.Text,pos('(',CB_DWMC.Text)+1,(pos(')',CB_DWMC.Text)-pos('(',CB_DWMC.Text)-1)) ;
FieldByName('ND').AsString := IntToStr(ND.Value) ;
FieldByName('ZT').Asstring := CG_WCL;
FieldByName('ZBR').Asstring := VG_UserName;
FieldByName('ZDRQ').AsString := FormatDateTime('yyyy-mm-dd',GetSysDate);
FieldByName('XQZTS').AsInteger:=0;
FieldByName('YDTS').AsInteger:=0;
FieldByName('LSTS').AsInteger:=0;
POST;
end;
if Qry_JJNXQB.IsEmpty then
begin
Qry_JJNXQB.Close ;
Exit;
end;
//徐申 add 2001 05 25 当确认要添加后,只有保存或取消该操作则 单位名称和票品名称才准许 使用。
CB_DWMC.Enabled :=False;
CB_PPMC.Enabled :=False;
PS_SetStatus(False);
Qry_JJNXQB.First;
RxDBGrid1.SetFocus ;
end;
procedure TFrmY_QLBZD.Act_DeleteExecute(Sender: TObject);
begin
if Qry_JJNXQB.IsEmpty then Exit;
Qry_JJNXQB.Delete ;
PS_SetStatus(False);
end;
procedure TFrmY_QLBZD.Act_ModifyExecute(Sender: TObject);
begin
if Qry_JJNXQB.IsEmpty then Exit;
Qry_JJNXQB.Edit ;
PS_SetStatus(False);
RxDBGrid1.SetFocus ;
end;
procedure TFrmY_QLBZD.PS_SetStatus(Value: Boolean);
begin
BBt_Add.Enabled := Value;
BBt_Delete.Enabled := Value;
BBt_Modify.Enabled := Value;
ND.Enabled := Value;
BitBtn2.Enabled := Value;
// BBt_Find.Enabled := Value;
BBt_Save.Enabled := not Value;
BBt_Cancel.Enabled := not Value;
CB_DWMC.ItemIndex :=0 ;
RxDBGrid1.ReadOnly := Value;
end;
procedure TFrmY_QLBZD.Act_FindExecute(Sender: TObject);
begin
with Qry_JJNXQB do
begin
Close;
SQL.Clear;
SQL.Add('Select a.* from TY_YPZDB a, TGS_GXDWSJB b');
SQL.Add('where a.JHH='''+V_JHH1+''' and a.SQDWDM=b.DWDM ');
if CB_DWMC.Text <>'全部' then
SQL.Add ('and a.SQDWDM='''+Copy(CB_DWMC.Text,pos('(',CB_DWMC.Text)+1,(pos(')',CB_DWMC.Text)-pos('(',CB_DWMC.Text)-1))+'''');
SQL.Add('order by b.PXM');
Open;
end;
end;
procedure TFrmY_QLBZD.CB_PPMCChange(Sender: TObject);
begin
if CB_PPMC.Text='' then Exit;
V_JHH1 := V_JHH[CB_PPMC.ItemIndex];
Act_FindExecute(nil);
end;
procedure TFrmY_QLBZD.Qry_JJNXQBYDTSChange(Sender: TField);
begin
with Qry_JJNXQB do
FieldByName('XQZTS').AsInteger:=FieldByName('YDTS').AsInteger+FieldByName('LSTS').AsInteger;
end;
procedure TFrmY_QLBZD.Qry_JJNXQBLSTSChange(Sender: TField);
begin
with Qry_JJNXQB do
FieldByName('XQZTS').AsInteger:= FieldByName('YDTS').AsInteger+FieldByName('LSTS').AsInteger;
end;
procedure TFrmY_QLBZD.CB_DWMCChange(Sender: TObject);
begin
if CB_DWMC.Text='' then Exit;
Act_FindExecute(nil);
end;
procedure TFrmY_QLBZD.Qry_JJNXQBYDTSSetText(Sender: TField;
const Text: String);
Var
TextValue:Integer;
begin
try
TextValue:=StrToInt(Text);
Except
CHQMsgBox('输入有误,可能输入数值过大,请重新输入!');
Exit;
end;
if TextValue<0 then
begin
CHQMsgBox('输入有误,输入数值为负值,请重新输入!');
Exit;
end;
if TextValue>99999999 then
begin
CHQMsgBox('输入有误,输入数值过大,请重新输入!');
Exit;
end;
Sender.AsInteger:=TextValue;
end;
procedure TFrmY_QLBZD.RxDBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then {回车键}
if not (ActiveControl is TDBGrid) then {if not is a TDBGrid}
begin
Key := #0; {eat enter key}
Perform(WM_NEXTDLGCTL, 0, 0); {move to next control}
end
else if (ActiveControl is TDBGrid) then {if it is a TDBGrid}
with TDBGrid(ActiveControl) do
if selectedindex < (fieldcount -1) then {increment the field} selectedindex := selectedindex + 1
else
selectedindex := 2;
end;
procedure TFrmY_QLBZD.BitBtn2Click(Sender: TObject);
begin
if Qry_JJNXQB.IsEmpty then Exit;
QLBCX_PRT:=TQLBCX_PRT.Create(nil);
try
QLBCX_PRT.Qry_Print.SQL.Text:='select T.*, G.DWJC DWMC from TY_YPZDB T ,TGS_GXDWSJB G where G.DWDM =T.SQDWDM and T.JHH='''+Qry_JJNXQB.FieldByName('JHH').AsString+''' order by PXM' ;
QLBCX_PRT.Qry_Print.Open ;
QLBCX_PRT.Preview;
QLBCX_PRT.Destroy ;
except
QLBCX_PRT.Destroy ;
end;
end;
procedure TFrmY_QLBZD.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SaveAllColWidth(Self);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -