📄 rp_pagesetup.pas
字号:
procedure TRP_fPageSetup.ReportOthersEditExit(Sender: TObject);
begin
// if ReportOthersEdit.Modified then SetPageDesign ;
end;
procedure TRP_fPageSetup.ChbHLineClick(Sender: TObject);
begin
// SetPageDesign ;
end;
procedure TRP_fPageSetup.ChbSLineClick(Sender: TObject);
begin
// SetPageDesign ;
end;
procedure TRP_fPageSetup.SpEBodyHeaderRowHeightChange(Sender: TObject);
begin
// SetPageDesign ;
end;
procedure TRP_fPageSetup.ReportPageHeadEditExit(Sender: TObject);
begin
// if ReportPageHeadEdit.Modified then SetPageDesign ;
end;
procedure TRP_fPageSetup.ReportPageFootEditExit(Sender: TObject);
begin
// if ReportPageFootEdit.Modified then SetPageDesign ;
end;
procedure TRP_fPageSetup.ChbPrintDateClick(Sender: TObject);
begin
// SetPageDesign ;
end;
procedure TRP_fPageSetup.ChbPrintPageNumClick(Sender: TObject);
begin
// SetPageDesign ;
end;
procedure TRP_fPageSetup.SpEReportPageTopMarginChange(Sender: TObject);
begin
// SetPageDesign ;
end;
procedure TRP_fPageSetup.SpEReportPageBottomMarginChange(Sender: TObject);
begin
// SetPageDesign ;
end;
procedure TRP_fPageSetup.SpEReportPageLeftMarginChange(Sender: TObject);
begin
// SetPageDesign ;
end;
procedure TRP_fPageSetup.SpEReportPageRightMarginChange(Sender: TObject);
begin
// SetPageDesign ;
end;
procedure TRP_fPageSetup.PageDesignDBGridMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
// SetPageDesign ;
end;
procedure TRP_fPageSetup.PageDesignDBGridColumnMoved(Sender: TObject;
FromIndex, ToIndex: Integer);
begin
GetFieldsName(DBGridFieldIDS, DBGridFieldNames, PageDesignDBGrid);
ResetADOQueryClause(DBGridFieldIDS, DBGridFieldNames);
APageDesign.ReportBodyColsWidth.Move(FromIndex, ToIndex);
end;
{-------------------------------------------------------------------------------}
procedure TRP_fPageSetup.SetPageDesign;
var
i: integer;
SumColWidth: integer;
begin
if APageDesign.CPrintPreviewADOQuery = nil then
Exit;
with APageDesign do
begin
ReportName := ReportNameEdit.Text;
ReportTitleDeclare := ReportTitleDeclareEdit.Text;
ReportEndDeclare := ReportEndDeclareEdit.Text;
ReportBuilder := ReportBuilderEdit.Text;
ReportOthers := ReportOthersEdit.Text;
ReportPageHead := ReportPageHeadEdit.Text;
ReportPageFoot := ReportPageFootEdit.Text;
TopFrameLine := ChbTopFrameLine.Checked;
BottomFrameLine := ChbBottomFrameLine.Checked;
LeftFrameLine := ChbLeftFrameLine.Checked;
RightFrameLine := ChbRightFrameLine.Checked;
AddHGrid := ChbHLine.Checked;
AddSGrid := ChbSLine.Checked;
AddNo := ChbAddNo.Checked;
ReportPageNumber := ChbPrintPageNum.Checked;
ReportPrintDate := ChbPrintDate.Checked;
ReportBodyHeadRowHeight := SpEBodyHeaderRowHeight.Value;
ReportBodyRowHeight := SpEBodyRowHeight.Value;
ReportPageFootHeight := PagefooterSpinEdit.Value;
if RGPrint.ItemIndex = 0 then
ReportOrientation := Vertical
else
ReportOrientation := Horizand;
PageLinesNumber := PageLinesNumberSpinEdit.Value;
ReportBodyColsWidth.Clear;
SetLength(ReportBodyAlignment, CPrintPreviewADOQuery.FieldCount);
SumColWidth := 0;
for i := 0 to CPrintPreviewADOQuery.FieldCount - 1 do
begin
SumColWidth := SumColWidth + PageDesignDBGrid.Columns[i].Width;
ReportBodyColsWidth.Add(IntToStr(PageDesignDBGrid.Columns[i].Width));
ReportBodyAlignment[i] := PageDesignDBGrid.Columns[i].Title.Alignment;
end;
ReportPageTopMargin := SpEReportPageTopMargin.Value;
ReportPageBottomMargin := SpEReportPageBottomMargin.Value;
ReportPageLeftMargin := SpEReportPageLeftMargin.Value;
ReportPageRightMargin := SpEReportPageRightMargin.Value;
if ReportNameFontDialog.Tag = 1 then
ReportNameFont.Assign(ReportNameFontDialog.Font);
if ReportTitleDeclareFontDialog.Tag = 1 then
ReportTitleDeclareFont.Assign(ReportTitleDeclareFontDialog.Font);
if ReportHeadFontDialog.Tag = 1 then
ReportHeadFont.Assign(ReportHeadFontDialog.Font);
if ReportBodyFontDialog.Tag = 1 then
ReportBodyFont.Assign(ReportBodyFontDialog.Font);
if ReportEndDeclareFontDialog.Tag = 1 then
ReportEndDeclareFont.Assign(ReportEndDeclareFontDialog.Font);
if ReportPageHeadFontDialog.Tag = 1 then
ReportPageHeadFont.Assign(ReportPageHeadFontDialog.Font);
if ReportPageFootFontDialog.Tag = 1 then
ReportPageFootFont.Assign(ReportPageFootFontDialog.Font);
end;
// ResetADOQueryClause(DBGridFieldIDS,DBGridFieldNames);
GetFieldsName(DBGridFieldIDS, DBGridFieldNames, PageDesignDBGrid);
end;
procedure TRP_fPageSetup.CreateTemplate;
var
i: integer;
TempIni: TIniFile;
begin
if APageDesign.CPrintPreviewADOQuery = nil then
Exit;
SetPageDesign;
TempIni := TIniFile.Create('');
with TempIni, APageDesign do
begin
WriteString('RDescription', 'ReportName', ReportName);
WriteString('RDescription', 'ReportTitleDeclare', ReportTitleDeclare);
WriteString('RDescription', 'ReportEndDeclare', ReportEndDeclare);
WriteString('RDescription', 'ReportBuilder', ReportBuilder);
WriteString('RDescription', 'ReportOthers', ReportOthers);
WriteString('RHeadFoot', 'ReportPageHead', ReportPageHead);
WriteString('RHeadFoot', 'ReportPageFoot', ReportPageFoot);
WriteBool('RFrameLine', 'AddHGrid', AddHGrid);
WriteBool('RFrameLine', 'AddSGrid', AddSGrid);
WriteBool('RPageNoDate', 'ReportPageNumber', ReportPageNumber);
WriteBool('RPageNoDate', 'ReportPrintDate', ReportPrintDate);
WriteInteger('RHeight', 'ReportBodyHeadRowHeight', ReportBodyHeadRowHeight);
WriteInteger('RHeight', 'ReportBodyRowHeight', ReportBodyRowHeight);
WriteInteger('RHeight', 'ReportPageFootHeight', ReportPageFootHeight);
WriteInteger('ROrientation', 'ReportOrientation', Ord(ReportOrientation));
WriteInteger('RPageLineNumber', 'PageLinesNumber', PageLinesNumber);
for i := 0 to ReportBodyColsWidth.Count - 1 do
WriteString('RColWidth', 'Col' + IntToStr(i), ReportBodyColsWidth[i]);
for i := 0 to ReportBodyColsWidth.Count - 1 do
WriteInteger('RColAlignment', 'ColAlignment' + IntToStr(i),
Ord(ReportBodyAlignment[i]));
WriteInteger('RMargin', 'Top', ReportPageTopMargin);
WriteInteger('RMargin', 'Bottom', ReportPageBottomMargin);
WriteInteger('RMargin', 'Left', ReportPageLeftMargin);
WriteInteger('RMargin', 'Right', ReportPageRightMargin);
WriteString('RFont', 'ReportNameFontName', ReportNameFont.Name);
WriteInteger('RFont', 'ReportNameFontSize', ReportNameFont.Size);
WriteString('RFont', 'ReportTitleDeclareFontName',
ReportTitleDeclareFont.Name);
WriteInteger('RFont', 'ReportTitleDeclareFontSize',
ReportTitleDeclareFont.Size);
WriteString('RFont', 'ReportHeadFontName', ReportHeadFont.Name);
WriteInteger('RFont', 'ReportHeadFontSize', ReportHeadFont.Size);
WriteString('RFont', 'ReportBodyFontName', ReportBodyFont.Name);
WriteInteger('RFont', 'ReportBodyFontSize', ReportBodyFont.Size);
WriteString('RFont', 'ReportEndDeclareFontName', ReportEndDeclareFont.Name);
WriteInteger('RFont', 'ReportEndDeclareFontSize',
ReportEndDeclareFont.Size);
WriteString('RFont', 'ReportPageHeadFontName', ReportPageHeadFont.Name);
WriteInteger('RFont', 'ReportPageHeadFontSize', ReportPageHeadFont.Size);
WriteString('RFont', 'ReportPageFootFontName', ReportPageFootFont.Name);
WriteInteger('RFont', 'ReportPageFootFontSize', ReportPageFootFont.Size);
end;
end;
procedure TRP_fPageSetup.CreateInstance;
var
i: integer;
TempIni: TIniFile;
OrientationOrd: integer;
AlignmentOrd: integer;
begin
if APageDesign.CPrintPreviewADOQuery = nil then
Exit;
TempIni := TIniFile.Create('');
with TempIni, APageDesign do
begin
ReadString('RDescription', 'ReportName', ReportName);
ReadString('RDescription', 'ReportTitleDeclare', ReportTitleDeclare);
ReadString('RDescription', 'ReportEndDeclare', ReportEndDeclare);
ReadString('RDescription', 'ReportBuilder', ReportBuilder);
ReadString('RDescription', 'ReportOthers', ReportOthers);
ReadString('RHeadFoot', 'ReportPageHead', ReportPageHead);
ReadString('RHeadFoot', 'ReportPageFoot', ReportPageFoot);
ReadBool('RFrameLine', 'AddHGrid', AddHGrid);
ReadBool('RFrameLine', 'AddSGrid', AddSGrid);
ReadBool('RPageNoDate', 'ReportPageNumber', ReportPageNumber);
ReadBool('RPageNoDate', 'ReportPrintDate', ReportPrintDate);
ReadInteger('RHeight', 'ReportBodyHeadRowHeight', ReportBodyHeadRowHeight);
ReadInteger('RHeight', 'ReportBodyRowHeight', ReportBodyRowHeight);
ReadInteger('RHeight', 'ReportPageFootHeight', ReportPageFootHeight);
ReadInteger('ROrientation', 'ReportOrientation', OrientationOrd);
ReportOrientation := TPagePrintOrientation(OrientationOrd);
ReadInteger('RPageLineNumber', 'PageLinesNumber', PageLinesNumber);
for i := 0 to ReportBodyColsWidth.Count - 1 do
ReadString('RColWidth', 'Col' + IntToStr(i), ReportBodyColsWidth[i]);
for i := 0 to ReportBodyColsWidth.Count - 1 do
begin
ReadInteger('RColAlignment', 'ColAlignment' + IntToStr(i), AlignmentOrd);
ReportBodyAlignment[i] := TAlignment(AlignmentOrd);
end;
ReadInteger('RMargin', 'Top', ReportPageTopMargin);
ReadInteger('RMargin', 'Bottom', ReportPageBottomMargin);
ReadInteger('RMargin', 'Left', ReportPageLeftMargin);
ReadInteger('RMargin', 'Right', ReportPageRightMargin);
ReadString('RFont', 'ReportNameFontName', ReportNameFont.Name);
ReadInteger('RFont', 'ReportNameFontSize', ReportNameFont.Size);
ReadString('RFont', 'ReportTitleDeclareFontName',
ReportTitleDeclareFont.Name);
ReadInteger('RFont', 'ReportTitleDeclareFontSize',
ReportTitleDeclareFont.Size);
ReadString('RFont', 'ReportHeadFontName', ReportHeadFont.Name);
ReadInteger('RFont', 'ReportHeadFontSize', ReportHeadFont.Size);
ReadString('RFont', 'ReportBodyFontName', ReportBodyFont.Name);
ReadInteger('RFont', 'ReportBodyFontSize', ReportBodyFont.Size);
ReadString('RFont', 'ReportEndDeclareFontName', ReportEndDeclareFont.Name);
ReadInteger('RFont', 'ReportEndDeclareFontSize', ReportEndDeclareFont.Size);
ReadString('RFont', 'ReportPageHeadFontName', ReportPageHeadFont.Name);
ReadInteger('RFont', 'ReportPageHeadFontSize', ReportPageHeadFont.Size);
ReadString('RFont', 'ReportPageFootFontName', ReportPageFootFont.Name);
ReadInteger('RFont', 'ReportPageFootFontSize', ReportPageFootFont.Size);
end;
end;
procedure TRP_fPageSetup.GetPageDesign;
var
i: integer;
begin
Screen.Cursor := crHourGlass;
TabbedNotebook1.PageIndex := 0;
with APageDesign do
begin
ReportNameEdit.Text := ReportName;
ReportTitleDeclareEdit.Text := ReportTitleDeclare;
ReportEndDeclareEdit.Text := ReportEndDeclare;
ReportBuilderEdit.Text := ReportBuilder;
ReportOthersEdit.Text := ReportOthers;
ReportPageHeadEdit.Text := ReportPageHead;
ReportPageFootEdit.Text := ReportPageFoot;
ChbTopFrameLine.Checked := TopFrameLine;
ChbBottomFrameLine.Checked := BottomFrameLine;
ChbLeftFrameLine.Checked := LeftFrameLine;
ChbRightFrameLine.Checked := RightFrameLine;
ChbHLine.Checked := AddHGrid;
ChbSLine.Checked := AddSGrid;
ChbAddNo.Checked := AddNo;
ChbPrintPageNum.Checked := ReportPageNumber;
ChbPrintDate.Checked := ReportPrintDate;
SpEBodyHeaderRowHeight.Value := ReportBodyHeadRowHeight;
SpEBodyRowHeight.Value := ReportBodyRowHeight;
PagefooterSpinEdit.Value := ReportPageFootHeight;
PageLinesNumberSpinEdit.Value := PageLinesNumber;
SpEReportPageTopMargin.Value := ReportPageTopMargin;
SpEReportPageBottomMargin.Value := ReportPageBottomMargin;
SpEReportPageLeftMargin.Value := ReportPageLeftMargin;
SpEReportPageRightMargin.Value := ReportPageRightMargin;
ReportNameFontDialog.Font.Assign(ReportNameFont);
ReportTitleDeclareFontDialog.Font.Assign(ReportTitleDeclareFont);
ReportHeadFontDialog.Font.Assign(ReportHeadFont);
ReportBodyFontDialog.Font.Assign(ReportBodyFont);
ReportEndDeclareFontDialog.Font.Assign(ReportEndDeclareFont);
ReportPageHeadFontDialog.Font.Assign(ReportPageHeadFont);
ReportPageFootFontDialog.Font.Assign(ReportPageFootFont);
if ReportOrientation = Horizand then
RGPrint.ItemIndex := 1
else
RGPrint.ItemIndex := 0;
if not OpenReportFileDataSource(CServerName, CDataBaseName, CTableName,
CSQLFileName, CSqlString, CPrintPreviewADOQuery) then
begin
Screen.Cursor := crDefault;
ShowMessage('因无法打开数据源,所以您无法设置报表列宽!');
Exit;
end;
{spring 2001=9-13}
DataSource1.Dataset := CPrintPreviewADOQuery;
CPrintPreviewADOQuery.First;
for i := 0 to ReportBodyColsWidth.Count - 1 do
PageDesignDBGrid.Columns[i].Width := StrToInt(ReportBodyColsWidth[i]);
for i := 0 to Length(reportbodyAlignment) - 1 do
begin
PageDesignDBGrid.Columns[i].Title.Alignment := ReportBodyAlignment[i];
PageDesignDBGrid.Columns[i].Alignment := ReportBodyAlignment[i];
PageDesignDBGrid.Fields[i].Alignment := ReportBodyAlignment[i];
end;
end;
for i := 0 to PageDesignDBGrid.FieldCount - 1 do
begin
if PageDesignDBGrid.Columns[i].Width > (PageDesignDBGrid.Width div 5) * 2
then
PageDesignDBGrid.Columns[i].Width := (PageDesignDBGrid.Width div 5) * 2;
end;
//spring 2001-9-17
GetFieldsName(DBGridFieldIDS, DBGridFieldNames, PageDesignDBGrid);
Screen.Cursor := crDefault;
end;
procedure TRP_fPageSetup.ResetADOQueryClause(FieldsID, FieldsName: TStrings);
var
SelectClause: string;
OtherClause: string;
i: integer;
ColumnID: string;
begin
OtherClause := GetOtherClauseWithoutSelect(APageDesign.CPrintPreviewADOQuery);
for i := 0 to PageDesignDBGrid.Columns.Count - 2 do
begin
ColumnID := IntToStr(PageDesignDBGrid.Columns[i].ID);
SelectClause := SelectClause + FieldsName[FieldsID.IndexOf(ColumnID)] + ',';
end;
ColumnID := IntToStr(PageDesignDBGrid.Columns[i].ID);
SelectClause := 'select ' + SelectClause +
FieldsName[FieldsID.IndexOf(ColumnID)];
with APageDesign.CPrintPreviewADOQuery do
begin
Close;
SQL.Clear;
SQL.Add(SelectClause);
SQL.Add(OtherClause);
Open;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -