📄 udisplay.pas
字号:
{*******************************************************}
{ }
{ 显示数据集的数据 }
{ }
{ 版权所有 (C) 2007 咏南工作室(陈新光) }
{ }
{*******************************************************}
unit uDisplay;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Grids, DBGridEh, DB, ADODB, Menus,
StdCtrls,uInterCOL,uCommFunc, GridsEh,EhLibADO;
type
TFormDisplay = class(TForm)
ds1: TDataSource;
grp1: TGroupBox;
btn3: TButton;
DBGridEh1: TDBGridEh;
procedure FormShow(Sender: TObject);
procedure btn3Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DBGridEh1BuildIndicatorTitleMenu(Grid: TCustomDBGridEh;
var PopupMenu: TPopupMenu);
private
FPopupMenu:TPopupMenu;
FQuery:TADOQuery;
procedure DelTmpTable;
procedure SetColWidth;
procedure MenuClick(Sender: TObject);
public
{ Public declarations }
end;
var
FormDisplay: TFormDisplay;
const
FConnStr='Provider=Microsoft.Jet.OLEDB.4.0;Data Source= %s';
procedure ShowDisplay(AQuery: TADOQuery);
implementation
{$R *.dfm}
//==============================================================================
// 删除用于分组统计的ACCESS临时表需要N秒的时间
// 把此动作移至此处,比较合理
// 接口函数
//==============================================================================
procedure ShowDisplay(AQuery: TADOQuery);
begin
if not Assigned(FormDisplay) then
FormDisplay:=TFormDisplay.Create(nil);
try
FormDisplay.FQuery:=AQuery;
FormDisplay.ds1.DataSet:=FormDisplay.FQuery;
FormDisplay.FQuery.Close;
FormDisplay.FQuery.Open;
FormDisplay.SetColWidth;
FormDisplay.ShowModal;
finally
FreeAndNil(FormDisplay);
end;
FormDisplay.DelTmpTable; //删除临时表
end;
procedure TFormDisplay.MenuClick(Sender: TObject);
begin
if ActiveControl is TDBGridEh then
MenuItemClickA(TMenuItem(Sender),TDBGridEh(ActiveControl));
end;
procedure TFormDisplay.FormShow(Sender: TObject);
begin
FPopupMenu:=GetPopupMenuA(Self,MenuClick);
SetDbGridEhFootA(DBGridEh1,'',1);
SetDbGridEHPropertyA(DBGridEh1);
ShowIndicatorTitleA(DBGridEh1);
end;
procedure TFormDisplay.DelTmpTable;
var
Query:TADOQuery;
begin
Query:=TADOQuery.Create(nil);
try
Query.ConnectionString:=Format(FConnStr,[GetMDB]);
Query.Close;
Query.SQL.Clear;
Query.SQL.Add('drop table grp');
Query.ExecSQL;
finally
FreeAndNil(Query);
end;
end;
procedure TFormDisplay.btn3Click(Sender: TObject);
begin
Close;
end;
procedure TFormDisplay.SetColWidth;
var
i:Integer;
begin
for i:=0 to DBGridEh1.Columns.Count-1 do
begin
if DBGridEh1.Columns[i].Width>100 then
DBGridEh1.Columns[i].Width:=100;
end;
end;
procedure TFormDisplay.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
FormDisplay:=nil;
end;
procedure TFormDisplay.DBGridEh1BuildIndicatorTitleMenu(
Grid: TCustomDBGridEh; var PopupMenu: TPopupMenu);
begin
PopupMenu:=FPopupMenu;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -