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

📄 margin.pas

📁 企业智能(ERP)管理系统
💻 PAS
字号:
// create 李泽伦
unit Margin;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, Spin, ReportControl, printers,GodmanForm;

type
  TMarginForm = class(TGodmanForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    LeftMargin: TSpinEdit;
    TopMargin: TSpinEdit;
    BitBtn2: TBitBtn;
    BitBtn1: TBitBtn;
    PrinterSetupDialog1: TPrinterSetupDialog;
    ReportControl1: TReportControl;
    RightMargin: TSpinEdit;
    BottomMargin: TSpinEdit;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    SpeedButton2: TSpeedButton;
    procedure BitBtn1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
    IsFile:Boolean;
    IsStream:Boolean;

    FFileName:String;
    FStream:TStream;
    procedure Init;
  public
    IsModified: Boolean; //是否更改了设置
    class function EditFile(AOwner:TComponent;FileName:String):TMarginForm;
    class function EditStream(AOwner:TComponent;Stream:TStream):TMarginForm;
  end;

implementation

{$R *.DFM}
//uses fr_prntr;

procedure TMarginForm.BitBtn1Click(Sender: TObject);
var
  MarginRect: TRect;
begin
  ReportControl1.cp_pgw := 0;
  ReportControl1.CalcWndSize; //

  ReportControl1.SetMargin(LeftMargin.Value, TopMargin.Value, RightMargin.Value, BottomMargin.Value);
  if IsFile then
    ReportControl1.SaveToFile(FFilename);
  if IsStream then
    ReportControl1.SaveToStream(FStream);

  ReportControl1.ResetContent; //清除内层中的表格数据
  IsModified := True;
end;

procedure TMarginForm.SpeedButton2Click(Sender: TObject);
begin
  if PrinterSetupDialog1.Execute then
  begin
    {    cp_pgw:=0;
        ReportControl1.CalcWndSize;//  根据用户选择的纸来确定报表窗口的大小并对该窗口进行设置。
        ReportControl1.SaveToFile(filename.Caption);
     } IsModified := True;
  end
  else
    IsModified := False;
end;

procedure TMarginForm.BitBtn2Click(Sender: TObject);
begin
  IsModified := False;
end;

class function TMarginForm.EditFile(AOwner: TComponent;
  FileName: String): TMarginForm;
begin
  Result:=TMarginForm.GodmanCreate(AOwner);
  try
    Result.IsFile:=True;
    Result.FFileName:=FileName;
    Result.Init;
  except
    Result.Free;
    raise;
  end;
end;

class function TMarginForm.EditStream(AOwner: TComponent;
  Stream: TStream): TMarginForm;
begin
  Result:=TMarginForm.GodmanCreate(AOwner);
  try
    Result.IsStream:=True;
    Result.FStream:=Stream;
    Result.Init;
  except
    Result.Free;
    raise;
  end;
end;

procedure TMarginForm.Init;
var
  MarginRect: TRect;
  prPageXy: integer;
begin
  IsModified := False;
  if IsFile then
    ReportControl1.LoadFromFile(FFilename); //装入模版以做修改页面或纸张
  if IsStream then
    ReportControl1.LoadFromStream(FStream); //装入模版以做修改页面或纸张
  MarginRect := ReportControl1.GetMargin;
  LeftMargin.Value := MarginRect.Left;
  TopMargin.Value := MarginRect.Top;
  RightMargin.Value := MarginRect.Right;
  BottomMargin.Value := MarginRect.Bottom;

  prDeviceMode;
  with Devmode^ do //设置打印纸  李泽伦
  begin
    dmFields := dmFields or DM_PAPERSIZE;
    dmPapersize := ReportControl1.FprPageNo;
    dmFields := dmFields or DM_ORIENTATION;
    dmOrientation := ReportControl1.FprPageXy; //1为纵向,2为横向

    dmPaperLength := ReportControl1.fpaperLength;
    dmPaperWidth := ReportControl1.fpaperWidth;
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -