📄 rp_pagesetup.pas
字号:
unit RP_PageSetup;
{
代码单元名称:通用报表打印工具页面设置窗口
从属软件:大连资金清算中心打码机管理信息系统
开发单位:大连理工大学计算机技术研究所软件工程研究室
时间:2001,1,30
}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, Tabnotbk, StdCtrls, PublicUnit, Spin, Grids, DBGrids, Db,
ADODB, QuickRpt, Qrctrls, ExtCtrls, Printers, IniFiles, RP_USaveTemplateDlg,
RP_USelectTemplate;
type
TRP_fPageSetup = class(TForm)
TabbedNotebook1: TTabbedNotebook;
ReportNameFontDialog: TFontDialog;
ReportTitleDeclareFontDialog: TFontDialog;
ReportEndDeclareFontDialog: TFontDialog;
ReportHeadFontDialog: TFontDialog;
ReportBodyFontDialog: TFontDialog;
GroupBox2: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
ReportOthersEdit: TEdit;
ReportBuilderEdit: TEdit;
ReportEndDeclareEdit: TEdit;
ReportTitleDeclareEdit: TEdit;
ReportNameEdit: TEdit;
GroupBox3: TGroupBox;
BtnTitle: TButton;
BtnHeaderDescription: TButton;
BtnHeader: TButton;
BtnBody: TButton;
BtnTail: TButton;
GroupBox4: TGroupBox;
Label6: TLabel;
Label7: TLabel;
ReportPageFootEdit: TEdit;
ReportPageHeadEdit: TEdit;
BtnEyeBrow: TButton;
BtnFooter: TButton;
ReportPageHeadFontDialog: TFontDialog;
ReportPageFootFontDialog: TFontDialog;
DataSource1: TDataSource;
GroupBox7: TGroupBox;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
SpEReportPageTopMargin: TSpinEdit;
SpEReportPageBottomMargin: TSpinEdit;
SpEReportPageLeftMargin: TSpinEdit;
SpEReportPageRightMargin: TSpinEdit;
GroupBox9: TGroupBox;
GroupBox10: TGroupBox;
ChbHLine: TCheckBox;
ChbSLine: TCheckBox;
GroupBox11: TGroupBox;
Label14: TLabel;
Label15: TLabel;
SpEBodyHeaderRowHeight: TSpinEdit;
SpEBodyRowHeight: TSpinEdit;
GroupBox1: TGroupBox;
ChbPrintDate: TCheckBox;
ChbPrintPageNum: TCheckBox;
RadioGroup1: TRadioGroup;
GroupBox6: TGroupBox;
PageLinesNumberSpinEdit: TSpinEdit;
Label17: TLabel;
PagefooterSpinEdit: TSpinEdit;
RGPrint: TRadioGroup;
OkButton: TButton;
CancelButton: TButton;
BtnPreview: TButton;
BtnPrint: TButton;
GroupBox5: TGroupBox;
ChbTopFrameLine: TCheckBox;
ChbRightFrameLine: TCheckBox;
ChbLeftFrameLine: TCheckBox;
ChbBottomFrameLine: TCheckBox;
GroupBox8: TGroupBox;
CboPageSize: TComboBox;
ChbAddNo: TCheckBox;
PageDesignDBGrid: TDBGrid;
procedure BtnTitleClick(Sender: TObject);
procedure BtnHeaderDescriptionClick(Sender: TObject);
procedure BtnHeaderClick(Sender: TObject);
procedure BtnBodyClick(Sender: TObject);
procedure BtnTailClick(Sender: TObject);
procedure OKButtonClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BtnEyeBrowClick(Sender: TObject);
procedure BtnFooterClick(Sender: TObject);
procedure PageLinesNumberSpinEditChange(Sender: TObject);
procedure SpEBodyRowHeightChange(Sender: TObject);
procedure PageDesignDBGridDblClick(Sender: TObject);
procedure RGPrintClick(Sender: TObject);
procedure BtnPreviewClick(Sender: TObject);
procedure BtnPrintClick(Sender: TObject);
procedure ReportNameEditExit(Sender: TObject);
procedure ReportTitleDeclareEditExit(Sender: TObject);
procedure ReportEndDeclareEditExit(Sender: TObject);
procedure ReportBuilderEditExit(Sender: TObject);
procedure ReportOthersEditExit(Sender: TObject);
procedure ChbHLineClick(Sender: TObject);
procedure ChbSLineClick(Sender: TObject);
procedure SpEBodyHeaderRowHeightChange(Sender: TObject);
procedure ReportPageHeadEditExit(Sender: TObject);
procedure ReportPageFootEditExit(Sender: TObject);
procedure ChbPrintDateClick(Sender: TObject);
procedure ChbPrintPageNumClick(Sender: TObject);
procedure SpEReportPageTopMarginChange(Sender: TObject);
procedure SpEReportPageBottomMarginChange(Sender: TObject);
procedure SpEReportPageLeftMarginChange(Sender: TObject);
procedure SpEReportPageRightMarginChange(Sender: TObject);
procedure PageDesignDBGridMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure FormCreate(Sender: TObject);
procedure PageDesignDBGridColumnMoved(Sender: TObject; FromIndex,
ToIndex: Integer);
private
{ Private declarations }
public
{ Public declarations }
DBGridFieldIDS, DBGridFieldNames: TStrings;
APageDesign: TPageDesign;
procedure GetPageDesign;
procedure SetPageDesign;
procedure CreateTemplate;
procedure CreateInstance;
procedure ResetADOQueryClause(FieldsID, FieldsName: TStrings);
// CPrintPreviewADOQuery:TADOQuery;
end;
implementation
{$R *.DFM}
procedure TRP_fPageSetup.FormCreate(Sender: TObject);
begin
DBGridFieldIDS := TStringList.Create;
DBGridFieldNames := TStringList.Create;
end;
procedure TRP_fPageSetup.FormShow(Sender: TObject);
var
Report: TQuickRep;
begin
Report := TQuickRep.Create(Application);
SetPageDesignColsWidth(APageDesign, PageDesignDBGrid);
GetPageDesign;
// CboPageSize.Items.Assign();
end;
{----------------------------------------------------------------------------}
procedure TRP_fPageSetup.BtnEyeBrowClick(Sender: TObject);
begin
if ReportPageHeadFontDialog.Execute then
begin
ReportPageHeadFontDialog.Tag := 1;
// SetPageDesign ;
end;
end;
procedure TRP_fPageSetup.BtnTitleClick(Sender: TObject);
begin
if ReportNameFontDialog.Execute then
begin
ReportNameFontDialog.Tag := 1;
// SetPageDesign ;
end;
end;
procedure TRP_fPageSetup.BtnHeaderDescriptionClick(Sender: TObject);
begin
if ReportTitleDeclareFontDialog.Execute then
begin
ReportTitleDeclareFontDialog.Tag := 1;
;
// SetPageDesign ;
end;
end;
procedure TRP_fPageSetup.BtnHeaderClick(Sender: TObject);
begin
if ReportHeadFontDialog.Execute then
begin
ReportHeadFontDialog.Tag := 1;
;
// SetPageDesign ;
end;
end;
procedure TRP_fPageSetup.BtnBodyClick(Sender: TObject);
begin
if ReportBodyFontDialog.Execute then
begin
ReportBodyFontDialog.Tag := 1;
// SetPageDesign ;
end;
end;
procedure TRP_fPageSetup.BtnTailClick(Sender: TObject);
begin
if ReportEndDeclareFontDialog.Execute then
begin
ReportEndDeclareFontDialog.Tag := 1;
// SetPageDesign ;
end;
end;
procedure TRP_fPageSetup.BtnFooterClick(Sender: TObject);
begin
if ReportPageFootFontDialog.Execute then
begin
ReportPageFootFontDialog.Tag := 1;
// SetPageDesign ;
end;
end;
procedure TRP_fPageSetup.OKButtonClick(Sender: TObject);
begin
SetPageDesign;
end;
procedure TRP_fPageSetup.PageLinesNumberSpinEditChange(Sender: TObject);
var
QReport: TQuickRep;
FooterHeight: integer;
begin
QReport := TQuickRep.Create(Application);
if RGPrint.ItemIndex = 0 then
QReport.Page.Orientation := poPortrait
else
QReport.Page.Orientation := poLandscape;
FooterHeight := QReport.Height - 140 - SpEBodyHeaderRowHeight.Value -
SpEReportPageTopMargin.Value - SpEReportPageBottomMargin.Value -
SpEBodyRowHeight.Value * PageLinesNumberSpinEdit.Value;
if FooterHeight < 30 then
begin
PageLinesNumberSpinEdit.Value := PageLinesNumberSpinEdit.Value - 1;
QReport.Free;
Exit;
end;
FooterHeight := QReport.Height - 140 - SpEBodyHeaderRowHeight.Value -
SpEReportPageTopMargin.Value - SpEReportPageBottomMargin.Value -
SpEBodyRowHeight.Value * PageLinesNumberSpinEdit.Value;
PagefooterSpinEdit.Value := FooterHeight;
QReport.Free;
// SetPageDesign ;
end;
procedure TRP_fPageSetup.SpEBodyRowHeightChange(Sender: TObject);
var
QReport: TQuickRep;
begin
QReport := TQuickRep.Create(Application);
if RGPrint.ItemIndex = 0 then
QReport.Page.Orientation := poPortrait
else
QReport.Page.Orientation := poLandscape;
PageLinesNumberSpinEdit.Value := (QReport.Height - SpEBodyHeaderRowHeight.Value
- SpEReportPageTopMargin.Value - SpEReportPageBottomMargin.Value - 180) div
SpEBodyRowHeight.Value;
QReport.Free;
// SetPageDesign ;
end;
procedure TRP_fPageSetup.PageDesignDBGridDblClick(Sender: TObject);
var
sc: integer;
begin
sc := PageDesignDBGrid.SelectedIndex;
if ((sc < 0) or (sc >= PageDesignDBGrid.DataSource.DataSet.FieldCount)) then
Exit;
with RadioGroup1 do
{spring 2001-9-13}
case ItemIndex of
0:
begin
PageDesignDBGrid.Columns[sc].Title.Alignment := taLeftJustify;
PageDesignDBGrid.Columns[sc].Alignment := taLeftJustify;
PageDesignDBGrid.Fields[sc].Alignment := taLeftJustify;
end;
1:
begin
PageDesignDBGrid.Columns[sc].Title.Alignment := taCenter;
PageDesignDBGrid.Columns[sc].Alignment := taCenter;
PageDesignDBGrid.Fields[sc].Alignment := taCenter;
end;
2:
begin
PageDesignDBGrid.Columns[sc].Title.Alignment := taRightJustify;
PageDesignDBGrid.Columns[sc].Alignment := taRightJustify;
PageDesignDBGrid.Fields[sc].Alignment := taRightJustify;
end;
end;
// SetPageDesign ;
{-spring 2001-9-13}
{ case ItemIndex of
0: PageDesignDBGrid.Columns[sc].Alignment:=taLeftJustify;
1: PageDesignDBGrid.Columns[sc].Alignment:=taCenter;
2: PageDesignDBGrid.Columns[sc].Alignment:=taRightJustify;
end;}
end;
procedure TRP_fPageSetup.RGPrintClick(Sender: TObject);
var
QReport: TQuickRep;
begin
QReport := TQuickRep.Create(Application);
if RGPrint.ItemIndex = 0 then
QReport.Page.Orientation := poPortrait
else
QReport.Page.Orientation := poLandscape;
PageLinesNumberSpinEdit.Value := (QReport.Height - SpEBodyHeaderRowHeight.Value
- SpEReportPageTopMargin.Value - SpEReportPageBottomMargin.Value - 180) div
SpEBodyRowHeight.Value;
QReport.Free;
// SetPageDesign ;
end;
procedure TRP_fPageSetup.BtnPreviewClick(Sender: TObject);
begin
SetPageDesign;
PreViewReportFile(APageDesign);
end;
procedure TRP_fPageSetup.BtnPrintClick(Sender: TObject);
begin
PrintReportFile(APageDesign);
end;
procedure TRP_fPageSetup.ReportNameEditExit(Sender: TObject);
begin
// if ReportNameEdit.Modified then SetPageDesign ;
end;
procedure TRP_fPageSetup.ReportTitleDeclareEditExit(Sender: TObject);
begin
// if ReportTitleDeclareEdit.Modified then SetPageDesign ;
end;
procedure TRP_fPageSetup.ReportEndDeclareEditExit(Sender: TObject);
begin
// if ReportEndDeclareEdit.Modified then SetPageDesign ;
end;
procedure TRP_fPageSetup.ReportBuilderEditExit(Sender: TObject);
begin
// if ReportBuilderEdit.Modified then SetPageDesign ;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -