📄 rm_reg.pas
字号:
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{TRMRichEditStrings}
type
THackDesigner = class(TRMReportDesigner)
end;
THackRMPageHeaderFooter = class(TRMPageHeaderFooter)
end;
function TRMRichEditStrings.GetAttributes: TPropertyAttributes;
begin
Result := inherited GetAttributes + [paDialog] - [paSubProperties];
end;
procedure TRMRichEditStrings.Edit;
var
Stream: TStringStream;
begin
if RMDesignerClass <> nil then
begin
RMDesigner := TRMReportDesigner(RMDesignerClass.NewInstance);
RMDesigner.Create(nil);
THackDesigner(RMDesigner).FReport := THackRMPageHeaderFooter(GetComponent(0)).ParentFormReport.Report;
end;
with TRMRichForm.Create(Application) do
begin
try
Stream := TStringStream.Create('');
TStrings(GetOrdValue).SaveToStream(Stream);
Stream.Position := 0;
Editor.Lines.LoadFromStream(Stream);
case ShowModal of
mrOk:
begin
Stream.Position := 0;
Editor.Lines.SaveToStream(Stream);
Stream.Position := 0;
TStrings(GetOrdValue).LoadFromStream(Stream);
Modified;
end;
end;
Stream.Free;
finally
if RMDesignerClass <> nil then
begin
RMDesigner.Free;
RMDesigner := nil;
end;
Free;
end;
end;
end;
{-----------------------------------------------------------------------}
{-----------------------------------------------------------------------}
{ TRMPageLayoutProperty }
function TRMPageLayoutProperty.GetAttributes: TPropertyAttributes;
begin
Result := [paDialog];
end;
procedure TRMPageLayoutProperty.Edit;
var
tmpForm: TRMPageSetupForm;
tmp: TRMPageLayout;
begin
tmp := TRMPageLayout(GetOrdValue);
tmpForm := TRMPageSetupForm.Create(Application);
try
tmpForm.PageSetting.Title := tmp.Title;
tmpForm.PageSetting.DoublePass := tmp.DoublePass;
tmpForm.PageSetting.PageOr := tmp.PageOrientation;
tmpForm.PageSetting.MarginLeft := RMRound(RMToMMThousandths(tmp.LeftMargin, rmutScreenPixels) / 1000, 1);
tmpForm.PageSetting.MarginTop := RMRound(RMToMMThousandths(tmp.TopMargin, rmutScreenPixels) / 1000, 1);
tmpForm.PageSetting.MarginRight := RMRound(RMToMMThousandths(tmp.RightMargin, rmutScreenPixels) / 1000, 1);
tmpForm.PageSetting.MarginBottom := RMRound(RMToMMThousandths(tmp.BottomMargin, rmutScreenPixels) / 1000, 1);
tmpForm.PageSetting.PageWidth := tmp.Width;
tmpForm.PageSetting.PageHeight := tmp.Height;
tmpForm.PageSetting.PageSize := tmp.PageSize;
tmpForm.PageSetting.PageBin := tmp.PageBin;
tmpForm.PageSetting.PrinterName := tmp.PrinterName;
tmpForm.PageSetting.ColorPrint := tmp.ColorPrint;
tmpForm.PageSetting.ColCount := tmp.ColumnCount;
tmpForm.PageSetting.ColGap := RMFromScreenPixels(tmp.ColumnGap, rmutMillimeters);
if tmpForm.ShowModal = mrOk then
begin
tmp.Title := tmpForm.PageSetting.Title;
tmp.PrinterName := tmpForm.PageSetting.PrinterName;
tmp.DoublePass := tmpForm.PageSetting.DoublePass;
tmp.PageOrientation := tmpForm.PageSetting.PageOr;
tmp.ColorPrint := tmpForm.PageSetting.ColorPrint;
tmp.ColumnCount := tmpForm.PageSetting.ColCount;
tmp.ColumnGap := RMToScreenPixels(tmpForm.PageSetting.ColGap, rmutMillimeters);
tmp.LeftMargin := Round(RMToScreenPixels(tmpForm.PageSetting.MarginLeft * 1000, rmutMMThousandths));
tmp.TopMargin := Round(RMToScreenPixels(tmpForm.PageSetting.MarginTop * 1000, rmutMMThousandths));
tmp.RightMargin := Round(RMToScreenPixels(tmpForm.PageSetting.MarginRight * 1000, rmutMMThousandths));
tmp.BottomMargin := Round(RMToScreenPixels(tmpForm.PageSetting.MarginBottom * 1000, rmutMMThousandths));
tmp.Width := tmpForm.PageSetting.PageWidth;
tmp.Height := tmpForm.PageSetting.PageHeight;
tmp.PageBin := tmpForm.PageSetting.PageBin;
tmp.PageSize := tmpForm.PageSetting.PageSize;
Modified;
// SetOrdValue(Longint(tmp));
end;
finally
tmpForm.Free;
end;
end;
{----------------------------------------------------------------------------}
{----------------------------------------------------------------------------}
{ TRMFormReportEditor }
procedure TRMFormReportEditor.ExecuteVerb(Index: Integer);
begin
DoShow;
end;
function TRMFormReportEditor.GetVerb(Index: Integer): string;
begin
Result := RMLoadStr(SPreview);
end;
function TRMFormReportEditor.GetVerbCount: Integer;
begin
Result := 1;
end;
procedure TRMFormReportEditor.DoShow;
begin
TRMCustomFormReport(Component).ShowReport;
end;
{----------------------------------------------------------------------------}
{----------------------------------------------------------------------------}
{ TRMGridReportEditor }
procedure TRMGridReportEditor.ExecuteVerb(Index: Integer);
begin
DoShow;
end;
function TRMGridReportEditor.GetVerb(Index: Integer): string;
begin
Result := RMLoadStr(SPreview);
end;
function TRMGridReportEditor.GetVerbCount: Integer;
begin
Result := 1;
end;
procedure TRMGridReportEditor.DoShow;
begin
TRMCustomGridReport(Component).ShowReport;
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
procedure TRMDataSet_Editor.ExecuteVerb(Index: Integer);
var
tmp: TRMEditorFieldAlias;
begin
tmp := TRMEditorFieldAlias.Create(nil);
try
if tmp.Edit(TRMDataSet(Component)) then
Designer.Modified;
finally
tmp.Free;
end;
end;
function TRMDataSet_Editor.GetVerb(Index: Integer): string;
begin
Result := 'Edit Field Alias';
end;
function TRMDataSet_Editor.GetVerbCount: Integer;
begin
Result := 1;
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
function TRMDataSet_FieldAlias_Editor.GetAttributes: TPropertyAttributes;
begin
Result := [paDialog];
end;
procedure TRMDataSet_FieldAlias_Editor.Edit;
var
tmp: TRMEditorFieldAlias;
begin
tmp := TRMEditorFieldAlias.Create(nil);
try
if tmp.Edit(TRMDataSet(GetComponent(0))) then
Designer.Modified;
finally
tmp.Free;
end;
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
procedure Register;
begin
RegisterComponents('Report Machine',
[TRMGridReport, TRMReport, TRMCompositeReport, TRMDBDataSet, TRMUserDataset,
TRMAngledLabelObject, TRMRichObject, TRMCheckBoxObject, TRMOLEObject,
TRMChineseMoneyObject, TRMDiagonalObject, TRMAsBarCodeObject, TRMCrossObject
{$IFDEF TurboPower}, TRMBarCodeObject{$ENDIF}
{$IFDEF TeeChart}, TRMChartObject, TRMDBChartObject{$ENDIF}
{$IFDEF JVCLCTLS}{$ENDIF}
{$IFDEF InfoPower}, TRMwwRichObject{$ENDIF}
, TRMDialogControls, TRMPreview,
TRMTextExport, TRMCSVExport, TRMBMPExport, TRMEMFExport, TRMWMFExport,
TRMTiffExport, TRMXLSExport, TRMHTMExport
{$IFDEF llPDFlib}, TRMllPDFExport{$ENDIF}
{$IFDEF RXGIF}, TRMGIFExport{$ENDIF}
{$IFDEF JPEG}, TRMJPEGExport{$ENDIF}
]);
RegisterComponents('RM Designer', [TRMGridReportDesigner, TRMDesigner, TRMDataDictionary, TRMReportExplorer
{$IFDEF DM_BDE}, TRMDBDEComponents{$ENDIF}
{$IFDEF DM_ADO}, TRMDADOComponents{$ENDIF}
{$IFDEF DM_IBX}, TRMDIBXComponents{$ENDIF}
{$IFDEF DM_DBX}, TRMDDBXComponents{$ENDIF}
{$IFDEF DM_MIDAS}, TRMDMidasComponents{$ENDIF}
, TRMFormReport, TRMPrintDBGrid
{$IFDEF DecisionGrid}, TRMPrintDecision{$ENDIF}
{$IFDEF InfoPower}, TRMwwGridReport{$ENDIF}
{$IFDEF JVCLCTLS}, TRMPrintRxControls{$ENDIF}
{$IFDEF EHLib}, TRMPrintEHLib{$ENDIF}
//{$IFDEF DecisionGrid}, TRMPrintDecision{$ENDIF}
{$IFDEF TeeChart}, TRMPrintChart{$ENDIF}
]);
RegisterComponentEditor(TRMReport, TRMReportEditor);
RegisterPropertyEditor(TypeInfo(string), TRMSaveReportOptions, 'IniFileName', TRMIniFileNameProperty);
RegisterPropertyEditor(TypeInfo(string), TRMDesigner, 'DefaultDictionaryFile', TRMDictionaryFileNameProperty);
RegisterPropertyEditor(TypeInfo(string), TRMDesigner, 'DefaultPageClassName', TRMDesigner_DefaultPageClass_Editor);
RegisterPropertyEditor(TypeInfo(TRMPageLayout), TRMCustomFormReport, 'PageLayout', TRMPageLayoutProperty);
RegisterPropertyEditor(TypeInfo(TRMPageLayout), TRMCustomGridReport, 'PageLayout', TRMPageLayoutProperty);
RegisterPropertyEditor(TypeInfo(string), TRMGroupItem, 'GroupFieldName', TRMFieldProperty);
RegisterPropertyEditor(TypeInfo(TStrings), TRMPageHeaderFooter, 'Caption', TRMRichEditStrings);
RegisterPropertyEditor(TypeInfo(TStringList), TRMDataSet, 'FieldAlias', TRMDataSet_FieldAlias_Editor);
RegisterComponentEditor(TRMCustomFormReport, TRMFormReportEditor);
RegisterComponentEditor(TRMCustomGridReport, TRMGridReportEditor);
RegisterComponentEditor(TRMDataSet, TRMDataSet_Editor);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -