?? u_report_base.pas
字號:
unit U_Report_Base;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, U_base, Buttons, ExtCtrls, WinSkinData, Grids, DBGridEh, DB,
ADODB, PrnDbgeh, Menus,DBGridEhImpExp;
type
TF_Report_Base = class(TF_base)
Panel2: TPanel;
btn_insert: TSpeedButton;
btn_delete: TSpeedButton;
btn_edit: TSpeedButton;
btn_cancel: TSpeedButton;
SpeedButton1: TSpeedButton;
DBGridEh: TDBGridEh;
DataSource1: TDataSource;
Ado_query: TADOQuery;
PrintDBGridEh: TPrintDBGridEh;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
procedure SpeedButton1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure btn_insertClick(Sender: TObject);
procedure btn_deleteClick(Sender: TObject);
procedure PrintDBGridEhBeforePrint(Sender: TObject);
procedure DBGridEhDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
procedure DBGridEhTitleClick(Column: TColumnEh);
procedure btn_editClick(Sender: TObject);
procedure N1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
F_Report_Base: TF_Report_Base;
implementation
uses U_DM, U_Function, U_SetColumn;
{$R *.dfm}
procedure TF_Report_Base.SpeedButton1Click(Sender: TObject);
begin
inherited;
Close;
end;
procedure TF_Report_Base.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
try
Dbgrideh.DataSource.DataSet.Active := False;
except
end;
Action:=Cafree;
end;
procedure TF_Report_Base.FormCreate(Sender: TObject);
var i:integer;
begin
inherited;
Ado_query.Connection:=ActiveConnect;
for I:=0 to DBGridEh.Columns.Count-1 do
Begin
DBGridEh.Columns[i].Title.TitleButton:=True;
end;
end;
procedure TF_Report_Base.btn_insertClick(Sender: TObject);
begin
inherited;
if not DBGridEh.DataSource.DataSet.Active then
begin
Application.MessageBox('沒有可打印的數(shù)據(jù),請先查詢!','提示信息',Mb_iconInformation+Mb_ok);
Exit;
end;
if Application.MessageBox('你確認(rèn)要打印嗎?','確認(rèn)信息',mb_Iconquestion+MB_YESNO)=ID_NO then
Exit;
PrintDBGridEh.Print;
end;
procedure TF_Report_Base.btn_deleteClick(Sender: TObject);
begin
inherited;
if not DBGridEh.DataSource.DataSet.Active then
begin
Application.MessageBox('沒有可預(yù)覽的數(shù)據(jù),請先查詢!','提示信息',Mb_iconInformation+Mb_ok);
Exit;
end;
CurReporttitle:='操作日志報表';
PrintDBGridEh.Preview;
end;
procedure TF_Report_Base.PrintDBGridEhBeforePrint(Sender: TObject);
begin
inherited;
Printdbgrideh.PageFooter.LeftText.Text:='報表日期:'+Formatdatetime('YYYY-MM-DD HH:MM:SS',now);
Printdbgrideh.PageFooter.RightText.Text:='報表人:'+Username;
Printdbgrideh.PageHeader.CenterText.Text:=Thecompanry.ZH_Companryname+#13;
printdbgrideh.BeforeGridText.Text:=CurReportTitle;
end;
procedure TF_Report_Base.DBGridEhDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
inherited;
if gdSelected in state then
DBGrideh.Canvas.brush.Color := clNavy
else
begin
with DBGrideh do
begin
begin
if DataSource.DataSet.RecNo mod 2 <> 0 then
Canvas.brush.Color := ClWhite
else
Canvas.brush.Color := $00EAEAEA;
end;
DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
end;
procedure TF_Report_Base.DBGridEhTitleClick(Column: TColumnEh);
begin
inherited;
if not Dbgrideh.DataSource.DataSet.IsEmpty then
begin
if Column.Title.SortMarker = smupEh then
begin
try
Tadoquery(Dbgrideh.DataSource.DataSet).Sort := Column.Field.FieldName;
except
end;
end
else
begin
try
Tadoquery(Dbgrideh.DataSource.DataSet).Sort := Column.Field.FieldName + ' DESC';
except
end;
end;
end;
end;
procedure TF_Report_Base.btn_editClick(Sender: TObject);
var ExpClass: TDBGridEhExportClass;
Ext: string;
SaveD: TSaveDialog;
begin
inherited;
if not DBGridEh.datasource.dataset.Active then
begin
Application.MessageBox('還沒有進(jìn)行查詢操作!','提示信息',MB_ICONinFORMATION+MB_OK);
Exit;
end;
SaveD := TSaveDialog.Create(nil);
SaveD.Options :=[ofOverwritePrompt,ofHideReadOnly,ofEnableSizing];
SaveD.Title := '請選擇要導(dǎo)出的目錄....';
SaveD.InitialDir := Extractfilepath(application.ExeName);
SaveD.Filter := 'Text files (*.txt)|*.TXT|Comma separated values (*.csv)|*.CSV|HT' +
'ML file (*.htm)|*.HTM|Rich Text Format (*.rtf)|*.RTF|Microsoft E' +
'xcel Workbook (*.xls)|*.XLS';
SaveD.FileName := 'file1';
if (ActiveControl is TDBGridEh) then
if SaveD.Execute then
begin
case SaveD.FilterIndex of
1: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end;
2: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;
3: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
4: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end;
5: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end;
else
ExpClass := nil; Ext := '';
end;
if ExpClass <> nil then
begin
if UpperCase(Copy(SaveD.FileName, Length(SaveD.FileName) - 2, 3)) <>
UpperCase(Ext) then
SaveD.FileName := SaveD.FileName + '.' + Ext;
SaveDBGridEhToExportFile(ExpClass, TDBGridEh(ActiveControl), SaveD.FileName, False);
end;
end;
TDBGridEh(ActiveControl).Selection.Clear;
end;
procedure TF_Report_Base.N1Click(Sender: TObject);
var i: integer;
begin
inherited;
if DBgrideh.Columns.Count > 0 then
begin
F_SetColumn := TF_SetColumn.Create(self);
F_SetColumn.SpinEdit.MaxValue := DBgrideh.Columns.Count;
F_SetColumn.CbColunm.Clear;
for i := 0 to DBgrideh.Columns.Count - 1 do
begin
if DBgrideh.Columns[i].Visible then
begin
F_SetColumn.CbColunm.Items.Add(DBgrideh.Columns[i].Title.Caption);
// FSetColumn.CbColunm.ItemEnabled[i]:=True;
F_SetColumn.CbColunm.Checked[i] := True;
end
else
begin
F_SetColumn.CbColunm.Items.Add(DBgrideh.Columns[i].Title.Caption);
F_SetColumn.CbColunm.Checked[i] := False;
// FSetColumn.CbColunm.ItemEnabled[i]:=False;
end;
end;
F_SetColumn.SpinEdit.Text := inttostr(DBgrideh.FrozenCols);
F_SetColumn.SetDBGridEh := DBgrideh;
F_SetColumn.Show;
end;
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -