📄 sy_zdxxwh.pas
字号:
{*******************************************************}
{ }
{ 征订信息维护 }
{ }
{ 中软金马公司版权所有。2002.12前 }
{ }
{ 编制:中软金马邮资票品项目开发组 }
{ }
{ }
{*******************************************************}
(*
本模块在省级购入票系统管理模块里面调用。
*)
unit SY_ZDXXWH;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, ComCtrls, Menus, ActnList, ImgList, ToolWin, StdCtrls,
DBCtrls, Mask, DBCGrids, ExtCtrls, Buttons, Grids, DBGrids, ToolEdit,
RXDBCtrl, extdlgs, Spin, RXCtrls, ErrDialog, RxQuery;
type
old_mei = record
old_mei_jhh: string;
old_mei_mxh: string;
end;
TFrm_grp = class(TForm)
ActionList1: TActionList;
Act_add: TAction;
Act_delete: TAction;
Act_modify: TAction;
Act_save: TAction;
Act_cancel: TAction;
Act_exit: TAction;
ImageList1: TImageList;
Panel1: TPanel;
BBt_add: TBitBtn;
BBt_dte: TBitBtn;
BBt_mfy: TBitBtn;
BBt_sve: TBitBtn;
BBt_cel: TBitBtn;
BBt_rrn: TBitBtn;
BBt_pnt: TBitBtn;
DS_tao: TDataSource;
Upd_tao: TUpdateSQL;
Qry_tzdm: TQuery;
DS_tzdm: TDataSource;
DS_pplb: TDataSource;
Qry_pplb: TQuery;
Upd_mei: TUpdateSQL;
DS_mei: TDataSource;
Act_send: TAction;
Panel2: TPanel;
Panel3: TPanel;
GBo_mei: TGroupBox;
Label22: TLabel;
Label25: TLabel;
Label28: TLabel;
Label33: TLabel;
DBEdit13: TDBEdit;
DBEdit15: TDBEdit;
DBEdit16: TDBEdit;
DBEdit21: TDBEdit;
GBo_tao: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Label5: TLabel;
Label7: TLabel;
Label8: TLabel;
Label10: TLabel;
Label11: TLabel;
Label13: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
DBEdit1: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit7: TDBEdit;
DBEdit10: TDBEdit;
DBLCbox_jyplb: TDBLookupComboBox;
DBLCbox_tz: TDBLookupComboBox;
DBDateEdit1: TDBDateEdit;
Label42: TLabel;
Label44: TLabel;
Label45: TLabel;
Label46: TLabel;
Panel4: TPanel;
Label34: TLabel;
DBEdit9: TDBEdit;
Label9: TLabel;
DBEdit8: TDBEdit;
Label50: TLabel;
Qry_super: TQuery;
Label23: TLabel;
Panel7: TPanel;
DBGid_tao: TDBGrid;
DBGid_mei: TDBGrid;
Splitter1: TSplitter;
Panel8: TPanel;
Panel9: TPanel;
Panel10: TPanel;
Qry_tao: TQuery;
Qry_mei: TQuery;
Qry_dw: TQuery;
DS_dw: TDataSource;
BitBtn1: TBitBtn;
XttxTitle: TRxLabel;
DBEdit14: TDBEdit;
Label20: TLabel;
SpinEdit1: TSpinEdit;
DWMC: TLabel;
Qry_meiJHH: TStringField;
Qry_meiMXH: TFloatField;
Qry_meiPPLB: TStringField;
Qry_meiDW: TStringField;
Qry_meiTUMC: TStringField;
Qry_meiTUJC: TStringField;
Qry_meiCB: TFloatField;
Qry_meiSJ: TFloatField;
Qry_meiJHFXL: TFloatField;
Qry_meiBZ: TStringField;
Qry_meiSDATEFX: TDateTimeField;
Qry_taoJHH: TStringField;
Qry_taoND: TStringField;
Qry_taoXH: TStringField;
Qry_taoJYPLB: TStringField;
Qry_taoTZDM: TStringField;
Qry_taoDW: TStringField;
Qry_taoTMC: TStringField;
Qry_taoTJC: TStringField;
Qry_taoQTMS: TFloatField;
Qry_taoCB: TFloatField;
Qry_taoQTSJ: TFloatField;
Qry_taoFXRQ: TDateTimeField;
Qry_taoJHFXL: TFloatField;
Qry_taoFXDWDM: TStringField;
Qry_taoFXDWMC: TStringField;
Qry_taoPZR: TStringField;
Qry_taoZBR: TStringField;
Qry_taoZBRQ: TDateTimeField;
Qry_taoBZ: TStringField;
Qry_taoSDATEFX: TDateTimeField;
DBMemo1: TDBMemo;
DBMemo2: TDBMemo;
Label3: TLabel;
DBLCbox_DL: TDBLookupComboBox;
Qry_DL: TQuery;
DS_DL: TDataSource;
procedure Act_addExecute(Sender: TObject);
procedure Act_deleteExecute(Sender: TObject);
procedure Act_modifyExecute(Sender: TObject);
procedure Act_saveExecute(Sender: TObject);
procedure Act_cancelExecute(Sender: TObject);
procedure Act_exitExecute(Sender: TObject);
procedure DBGid_taoEnter(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DBGid_taoMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Act_sendExecute(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure LoadBitmapToBlobField(const AField: TField);
procedure SpinEdit1Change(Sender: TObject);
procedure Qry_taoUpdateError(DataSet: TDataSet; E: EDatabaseError;
UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure DBLookupComboBox3Exit(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Qry_taoCBGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
procedure Qry_taoCBSetText(Sender: TField; const Text: string);
procedure Qry_taoQTSJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
procedure Qry_taoQTSJSetText(Sender: TField; const Text: string);
procedure Qry_meiCBGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
procedure Qry_meiCBSetText(Sender: TField; const Text: string);
procedure Qry_meiSJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
procedure Qry_meiSJSetText(Sender: TField; const Text: string);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DBLCbox_DLCloseUp(Sender: TObject);
procedure Qry_taoAfterScroll(DataSet: TDataSet);
private
VLp_status: integer;
//0......初始状态(浏览)
//1......add编辑状态
//2......查询结果浏览状态
//3......edit编辑状态
VLp_FocusGrid: TDBGrid;
//.tag=0......套
//.tag=1......枚
vlp_stao_jhh: string[15];
vlp_imei_mxh: integer;
vlp_oldmeival: old_mei;
vlp_s_errmsg: string;
function CheckExit(): boolean;
function ExistRecord(Tablenamestr, Conditionstr: string): boolean;
procedure SetEditStatus(SubMod: integer; SelectedRowsCount: integer = 1);
//0......初始状态(浏览)
//1......编辑状态
//2......查询结果浏览状态
{ Private declarations }
public
{ Public declarations }
function Execute(const DB: TDatabase): boolean;
end;
var
Frm_grp: TFrm_grp;
implementation
uses datas, pub;
{$R *.DFM}
function TFrm_grp.CheckExit(): boolean;
begin
result := true;
if (VLp_status <> 0) then
case CHQMsgBox('确定要放弃所做修改吗?', 3) of
IDNo:
begin
Act_saveExecute(nil);
if VLp_status = 0 then
begin
Qry_tao.Close;
Qry_mei.Close;
Qry_DL.Close;
Qry_pplb.Close;
Qry_tzdm.Close;
Qry_super.Close;
end
else
result := false;
end;
IDYes:
begin
Act_cancelExecute(nil);
Qry_tao.Close;
Qry_mei.Close;
Qry_DL.Close;
Qry_pplb.Close;
Qry_tzdm.Close;
Qry_super.Close;
end;
IDCancel:
result := false;
end
else
begin
Qry_tao.Close;
Qry_mei.Close;
Qry_DL.Close;
Qry_pplb.Close;
Qry_tzdm.Close;
Qry_super.Close;
end;
end;
function TFrm_grp.Execute(const DB: TDatabase): boolean;
begin
Result := false;
if not Assigned(DB) then
exit;
DWMC.Caption := '使用单位:' + VG_UnitName;
try
vlp_stao_jhh := '';
vlp_imei_mxh := 0;
vlp_FocusGrid := DBGid_tao;
Qry_tao.Close;
Qry_tao.DatabaseName := DB.DatabaseName;
Qry_tao.Open;
Qry_mei.Close;
Qry_mei.DatabaseName := DB.DatabaseName;
Qry_mei.Open;
Qry_DL.Close;
Qry_DL.DatabaseName := DB.DatabaseName;
Qry_DL.Open;
Qry_tzdm.Close;
Qry_tzdm.DatabaseName := DB.DatabaseName;
Qry_tzdm.Open;
Qry_dw.Close;
Qry_dw.DatabaseName := DB.DatabaseName;
Qry_dw.Open;
Qry_super.Close;
Qry_super.DatabaseName := DB.DatabaseName;
if not Qry_tao.IsEmpty then
SpinEdit1.Text := Qry_tao.FieldByName('ND').AsString
else
SpinEdit1.Text := inttostr(SpinEdit1.MinValue);
SetEditStatus(0);
SpinEdit1Change(nil);
if Qry_tao.IsEmpty then
SpinEdit1.Text := inttostr(VG_Year)
else
SpinEdit1.Text := Qry_tao.FieldByName('ND').AsString;
DBGid_taoEnter(DBGid_tao);
Result := true;
except
CHQMsgBox('不能打开 <邮资票品信息> 表 !');
exit;
end;
end;
function TFrm_grp.ExistRecord(Tablenamestr, Conditionstr: string): boolean;
begin
with Qry_super do
begin
CLose;
SQL.Clear;
SQL.Add('Select count(*) from ' + Tablenamestr + ' Where ' + Conditionstr);
Open;
ExistRecord := (Fields[0].Asinteger > 0);
end;
end;
procedure TFrm_grp.SetEditStatus(SubMod: integer; SelectedRowsCount: integer = 1);
//submod:
//0......初始状态(浏览)
//1......add编辑状态
//2......查询结果浏览状态
//3......edit编辑状态
//4......multiselected
var
vl_b_tao, vl_b_mei: boolean;
i: integer;
begin
//设置button状态
SpinEdit1.ReadOnly := (SubMod <> 0);
if (SubMod = 4) then
if (SelectedRowsCount > 0) then
begin
Act_add.Enabled := (SelectedRowsCount = 1);
Act_delete.Enabled := (SelectedRowsCount = 1);
Act_modify.Enabled := (SelectedRowsCount = 1);
exit;
end
else
begin
Act_add.Enabled := true;
Act_delete.Enabled := true;
Act_modify.Enabled := true;
Act_send.Enabled := false;
exit;
end;
VLp_status := SubMod;
//设置DBGrid状态
if (vlp_FocusGrid = DBGid_tao) then
DBGid_tao.TitleFont.Color := clnavy
else
DBGid_tao.TitleFont.Color := clblack;
if (VLp_FocusGrid = DBGid_mei) then
DBGid_mei.TitleFont.Color := clnavy
else
DBGid_mei.TitleFont.Color := clblack;
GBo_tao.Visible := (vlp_FocusGrid = DBGid_tao);
GBo_mei.Visible := (vlp_FocusGrid = DBGid_mei);
//设置button状态
Act_add.Enabled := (SubMod = 0);
Act_delete.Enabled := (SubMod = 0);
Act_modify.Enabled := (SubMod = 0);
Act_save.Enabled := (SubMod = 1) or (SubMod = 3);
Act_cancel.Enabled := (SubMod = 1) or (SubMod = 3);
Act_send.Enabled := (SubMod = 0) or (SubMod = 4);
DBGid_tao.Enabled := (SubMod = 0) or (SubMod = 2);
DBGid_mei.Enabled := (SubMod = 0) or (SubMod = 2);
vl_b_tao := ((SubMod = 1) or (SubMod = 3) and (vlp_FocusGrid.Tag = 0));
for i := 0 to GBo_tao.ControlCount - 1 do
begin
if (GBo_tao.Controls[i] is TDBEdit) or
(GBo_tao.Controls[i] is TDBDateEdit) or
(GBo_tao.Controls[i] is TDBMemo) or
(GBo_tao.Controls[i] is TSpeedButton) or
(GBo_tao.Controls[i] is TDBLookupComboBox) then
begin
(GBo_tao.Controls[i]).Enabled := vl_b_tao;
end;
end;
DBEdit1.Enabled := (vlp_FocusGrid = DBGid_tao) and (SubMod = 1);
vl_b_mei := ((SubMod = 1) or (SubMod = 3) and (vlp_FocusGrid.Tag = 1));
for i := 0 to GBo_mei.ControlCount - 1 do
begin
if (GBo_mei.Controls[i] is TDBEdit) or
(GBo_mei.Controls[i] is TDBDateEdit) or
(GBo_mei.Controls[i] is TDBMemo) or
(GBo_mei.Controls[i] is TSpeedButton) then
begin
(GBo_mei.Controls[i]).Enabled := vl_b_mei;
end;
end;
end;
procedure TFrm_grp.Act_addExecute(Sender: TObject);
begin
// SetEditStatus(1);
vlp_FocusGrid.DataSource.DataSet.Append;
SetEditStatus(1);
case vlp_FocusGrid.Tag of
0:
begin
Qry_tao.FieldByName('ND').AsString := inttostr(VG_Year);
Qry_pplb.First;
Qry_tao.FieldByName('JYPLB').AsString := Qry_pplb.FieldByName('JYPLDM').AsString;
DBLCbox_jyplb.KeyValue := Qry_pplb.FieldByName('JYPLDM').AsString;
Qry_tzdm.First;
Qry_tao.FieldByName('TZDM').AsString := Qry_tzdm.FieldByName('TZDM').AsString;
DBLCbox_tz.KeyValue := Qry_tzdm.FieldByName('TZDM').AsString;
ActiveControl := DBEdit1;
end;
1: //mei
begin
Qry_mei.FieldByName('JHH').AsString := Qry_tao.FieldByName('JHH').AsString;
Qry_mei.FieldByName('DW').AsString := Qry_tao.FieldByName('DW').AsString;
Qry_mei.FieldByName('JHFXL').AsString := Qry_tao.FieldByName('JHFXL').AsString;
ActiveControl := DBEdit13;
end;
end;
end;
procedure TFrm_grp.Act_deleteExecute(Sender: TObject);
begin
if ((vlp_FocusGrid.tag = 0) and (DBGid_tao.DataSource.DataSet.IsEmpty)) or
((vlp_FocusGrid.tag = 1) and (DBGid_mei.DataSource.DataSet.IsEmpty)) then
begin
CHQMsgBox('当前没有可删除的记录。');
exit;
end;
if CHQMsgBox('确实要删除选中的记录吗?', 2) <> IDYes then
Exit;
vlp_FocusGrid.DataSource.DataSet.Next;
if (VLp_FocusGrid.DataSource.DataSet.Eof) then
begin
VLp_FocusGrid.DataSource.DataSet.Prior;
vlp_stao_jhh := Qry_tao.fieldbyname('JHH').AsString;
if VLp_FocusGrid.Tag = 1 then
vlp_imei_mxh := Qry_mei.fieldbyname('MXH').AsInteger;
VLp_FocusGrid.DataSource.DataSet.Next;
end
else
begin
vlp_stao_jhh := Qry_tao.fieldbyname('JHH').AsString;
if vlp_FocusGrid.Tag = 1 then
vlp_imei_mxh := Qry_mei.fieldbyname('MXH').AsInteger;
vlp_FocusGrid.DataSource.DataSet.Prior;
end;
Qry_tao.DataBase.StartTransaction;
try
with Qry_super do
begin
case vlp_FocusGrid.tag of
0: //套
begin
Close;
SQL.Clear;
SQL.Add('DELETE FROM TF_GRPFXJHM WHERE JHH =''' +
Qry_tao.fieldbyname('JHH').AsString + '''');
ExecSQL;
vlp_FocusGrid.DataSource.DataSet.Delete;
end;
1: //图
begin
vlp_FocusGrid.DataSource.DataSet.Delete;
end;
end;
end;
(vlp_FocusGrid.DataSource.DataSet as TQuery).ApplyUpdates;
Qry_tao.DataBase.Commit;
except
Qry_tao.DataBase.RollBack;
raise exception.Create('数据访问错误!');
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -