⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rm_reg.pas

📁 这是一个功能强大
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -