📄 unit17.pas
字号:
unit Unit17;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, PrnDbgeh, DB, StdCtrls, Grids, DBGridEh, Math,ComCtrls;
type
TForm17 = class(TForm)
Label1: TLabel;
DBGridEh1: TDBGridEh;
ComboBox1: TComboBox;
Button1: TButton;
Button2: TButton;
Button4: TButton;
Button5: TButton;
DataSource1: TDataSource;
PrintDBGridEh1: TPrintDBGridEh;
DateTimePicker1: TDateTimePicker;
ComboBox2: TComboBox;
DateTimePicker2: TDateTimePicker;
procedure Button4Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
procedure Button1Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
private
function QueryTabel(aSql: string): Boolean;
{ Private declarations }
public
{ Public declarations }
end;
var
Form17: TForm17;
implementation
uses Data;
{$R *.dfm}
function DBGridAutoSize(mDBGrid: TDBGridEh; mOffset: Integer = 5): Boolean;
{ 返回数据网格自动适应宽度是否成功 }
var
I: Integer;
begin
Result:=False;
if not Assigned(mDBGrid) then Exit;
if not Assigned(mDBGrid.DataSource) then Exit;
if not Assigned(mDBGrid.DataSource.DataSet) then Exit;
if not mDBGrid.DataSource.DataSet.Active then Exit;
for I := 0 to mDBGrid.Columns.Count - 1 do begin
if not mDBGrid.Columns[I].Visible then Continue;
if Assigned(mDBGrid.Columns[I].Field) then
mDBGrid.Columns[I].Width := 30+ Max(mDBGrid.Columns[I].Field.Tag,mDBGrid.Canvas.TextWidth(mDBGrid.Columns[I].Title.Caption)) + mOffset
else
mDBGrid.Columns[I].Width :=30+mDBGrid.Canvas.TextWidth(mDBGrid.Columns[I].Title.Caption) + mOffset;
mDBGrid.Refresh;
end;
Result := True;
end;
function DBGridRecordSize(mColumn: TColumnEh): Boolean;
begin
Result := False;
if not Assigned(mColumn.Field) then Exit;
mColumn.Field.Tag := Max(mColumn.Field.Tag,
TDBGridEh(mColumn.Grid).Canvas.TextWidth(mColumn.Field.DisplayText));
Result := True;
end; { DBGridRecordSize }
function TForm17.QueryTabel(aSql: string): Boolean;
begin
with MyData do
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(aSql);
ADOQuery1.Open;
DBGridEh1.FieldColumns['id'].Visible:=false;
DBGridAutoSize(DBGridEh1);
end;
end;
procedure TForm17.Button4Click(Sender: TObject);
begin
Close;
end;
procedure TForm17.Button2Click(Sender: TObject);
begin
PrintDBGridEh1.Preview;
end;
procedure TForm17.DBGridEh1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
DBGridRecordSize(Column);
end;
procedure TForm17.Button1Click(Sender: TObject);
begin
QueryTabel('Select * From '+ combobox1.Text+' where 时间>='''+DateToStr(DateTimePicker1.Date)+''' and 时间<='''+DateToStr(DateTimePicker2.Date)+'''');
end;
procedure TForm17.Button5Click(Sender: TObject);
begin
QueryTabel('Select * From '+combobox1.Text);
end;
procedure TForm17.FormShow(Sender: TObject);
begin
QueryTabel('Select * From '+combobox1.Text);
end;
procedure TForm17.ComboBox1Change(Sender: TObject);
begin
QueryTabel('Select * From '+combobox1.Text);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -