📄 untbasequery.pas
字号:
unit untBaseQuery;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, untBase, DB, ADODB, StdCtrls, Buttons, Grids, DBGridEh, jpeg,
ExtCtrls, FR_DSet, FR_DBSet, FR_Class, untGlobalVar, FR_Desgn;
type
TfrmBaseQuery = class(TfrmBase)
PalTop: TPanel;
ImgTL: TImage;
ImgTC: TImage;
ImgTR: TImage;
imgTopML: TImage;
imgMR: TImage;
PalBottom: TPanel;
ImgBL: TImage;
ImgBR: TImage;
ImgBC: TImage;
ImgLeft: TImage;
ImgRight: TImage;
pnlBack: TPanel;
pnlCondition: TPanel;
DBGridEh1: TDBGridEh;
pnlBottom: TPanel;
Label1: TLabel;
lblRecNum: TLabel;
btnQry: TBitBtn;
btnPrn: TBitBtn;
dsResult: TDataSource;
adsResult: TADODataSet;
frReport1: TfrReport;
frDBDataSet1: TfrDBDataSet;
btnClose: TBitBtn;
btnDesign: TBitBtn;
procedure adsResultAfterOpen(DataSet: TDataSet);
procedure btnQryClick(Sender: TObject);
procedure btnPrnClick(Sender: TObject);
procedure btnCloseClick(Sender: TObject);
procedure btnDesignClick(Sender: TObject);
procedure DBGridEh1TitleClick(Column: TColumnEh);
private
FQuerySQL: string;
FReportFile: string;
FConn: TADOConnection;
FLoginInfo: TUserRec;
FTitle: string;
procedure SetConn(const Value: TADOConnection);
procedure SetLoginInfo(const Value: TUserRec);
procedure SetTitle(const Value: string);
{ Private declarations }
protected
procedure GenerateSQL; virtual;
procedure InitReport; virtual;
procedure DataSetAfterOpen(DataSet: TDataSet); virtual;
public
{ Public declarations }
property QuerySQL: string read FQuerySQL write FQuerySQL;
property ReportFile: string read FReportFile write FReportFile;
property Conn: TADOConnection read FConn write SetConn;
property LoginInfo: TUserRec read FLoginInfo write SetLoginInfo;
property Title: string read FTitle write SetTitle;
end;
var
frmBaseQuery: TfrmBaseQuery;
implementation
uses untDM, untGlobalFun;
{$R *.dfm}
procedure TfrmBaseQuery.adsResultAfterOpen(DataSet: TDataSet);
begin
inherited;
DataSetAfterOpen(DataSet);
lblRecNum.Caption := IntToStr(DataSet.RecordCount);
end;
procedure TfrmBaseQuery.GenerateSQL;
begin
end;
procedure TfrmBaseQuery.btnQryClick(Sender: TObject);
begin
inherited;
GenerateSQL;
with adsResult do begin
if Active then Active := False;
CommandText := QuerySQL;
Active := true;
end;
end;
procedure TfrmBaseQuery.btnPrnClick(Sender: TObject);
begin
inherited;
if (not adsResult.Active) or adsResult.IsEmpty then begin
MsgOK('数据集未打开,或没有任何记录!');
Exit;
end;
if not FileExists(ReportFile) then begin
MsgOK('报表格式文件丢失,请联系管理员!');
Exit;
end;
with frReport1 do begin
LoadFromFile(ReportFile);
InitReport;
if PrepareReport then begin
ModifyPrepared := false;
ShowPreparedReport;
end;
end;
end;
procedure TfrmBaseQuery.InitReport;
begin
end;
procedure TfrmBaseQuery.SetConn(const Value: TADOConnection);
var
i: Integer;
begin
FConn := Value;
for i:=0 to ComponentCount-1 do
if Components[i] is TCustomADODataSet then
TCustomADODataSet(Components[i]).Connection := Value;
end;
procedure TfrmBaseQuery.SetLoginInfo(const Value: TUserRec);
begin
FLoginInfo := Value;
end;
procedure TfrmBaseQuery.SetTitle(const Value: string);
begin
FTitle := Value;
Caption := Value;
btnDesign.Visible := FLoginInfo.Code = '99';
end;
procedure TfrmBaseQuery.btnCloseClick(Sender: TObject);
begin
inherited;
Close;
end;
procedure TfrmBaseQuery.btnDesignClick(Sender: TObject);
begin
inherited;
if not FileExists(ReportFile) then begin
MsgOK('报表格式文件丢失,请联系管理员!');
Exit;
end;
frReport1.LoadFromFile(ReportFile);
frReport1.DesignReport;
end;
procedure TfrmBaseQuery.DataSetAfterOpen(DataSet: TDataSet);
begin
end;
procedure TfrmBaseQuery.DBGridEh1TitleClick(Column: TColumnEh);
begin
inherited;
if (Column.Title.SortMarker = smNoneEh) or (Column.Title.SortMarker = smDownEh) then
begin
adsResult.Sort := Column.FieldName;
Column.Title.SortMarker := smUpEh
end
else
begin
adsResult.Sort := Column.FieldName + ' DESC';
Column.Title.SortMarker := smDownEh
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -