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

📄 preview.pas

📁 对fastreport进行封装成dll,只需传一个query即可显示报表内容,显示的列可以自定义,对学习fastreport可以参考一下
💻 PAS
字号:
unit Preview;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Buttons, ExtCtrls,

  StdCtrls, ImgList, ComCtrls, ToolWin, FR_DSet, FR_DBSet,Printers,
  FR_Class, Menus, FR_View ;

type
  TFormPreview = class(TForm)
    Panel1: TPanel;
    SpeedButton11: TSpeedButton;
    SpeedButton12: TSpeedButton;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    SpeedButton6: TSpeedButton;
    SpeedButton7: TSpeedButton;
    SpeedButton8: TSpeedButton;
    SpeedButton9: TSpeedButton;
    frPreview1: TfrPreview;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ImageList1: TImageList;
    frDBDataSet1: TfrDBDataSet;
    edtTableName: TEdit;
    frReport1: TfrReport;
    edtPrintPeaple: TEdit;
    PopupMenu1: TPopupMenu;
    N2001: TMenuItem;
    N1001: TMenuItem;
    N751: TMenuItem;
    N501: TMenuItem;
    N251: TMenuItem;
    N101: TMenuItem;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    edtPageCode: TEdit;
    edtPageWidth: TEdit;
    edtPageHeigth: TEdit;
    SpeedButton10: TSpeedButton;
    PrintDialog1: TPrintDialog;
    procedure ToolButton1Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton12Click(Sender: TObject);
    procedure SpeedButton11Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton6Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject);
    procedure SpeedButton8Click(Sender: TObject);
    procedure SpeedButton9Click(Sender: TObject);
    procedure N2001Click(Sender: TObject);
    procedure N1001Click(Sender: TObject);
    procedure N751Click(Sender: TObject);
    procedure N501Click(Sender: TObject);
    procedure N251Click(Sender: TObject);
    procedure N101Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure SpeedButton10Click(Sender: TObject);
    
    
    
  private
    { Private declarations }
  public
    { Public declarations }
    procedure SetPaperSize(X, Y: Integer;iPageSize:Integer);
  end;

var
  FormPreview: TFormPreview;

implementation

uses CommUseFunctionExport, SetupReportPreview;

{$R *.DFM}



procedure TFormPreview.ToolButton1Click(Sender: TObject);
begin
   close;
   
end;

procedure TFormPreview.SpeedButton12Click(Sender: TObject);
begin
   
   frPreview1.Zoom := 100;
end;

procedure TFormPreview.SpeedButton11Click(Sender: TObject);
begin

   frPreview1.OnePage;
end;

procedure TFormPreview.SpeedButton1Click(Sender: TObject);
begin

   frPreview1.PageWidth;
end;

procedure TFormPreview.SpeedButton2Click(Sender: TObject);
begin
    frPreview1.First;
end;

procedure TFormPreview.SpeedButton3Click(Sender: TObject);
begin
     frPreview1.Prev;
end;

procedure TFormPreview.SpeedButton4Click(Sender: TObject);
begin
    frPreview1.Next;
end;

procedure TFormPreview.SpeedButton5Click(Sender: TObject);
begin
    frPreview1.Last;
end;

procedure TFormPreview.SpeedButton6Click(Sender: TObject);
begin
    frPreview1.LoadFromFile;
end;

procedure TFormPreview.SpeedButton7Click(Sender: TObject);
begin
    frPreview1.SaveToFile;
end;

procedure TFormPreview.SpeedButton8Click(Sender: TObject);
begin
   // frPreview1.PageSetupDlg;
   SetupReportFormat(frDBDataSet1.DataSet,application,pchar(edtTableName.Text));
end;

procedure TFormPreview.SpeedButton9Click(Sender: TObject);
begin
    if edtPageCode.text='256' then
       SetPaperSize(strtoint(edtPageWidth.text),strtoint(edtPageHeigth.text),256)
    else
      SetPaperSize(0,0,strtoint(edtPageCode.text));
    frPreview1.Print;
end;

procedure TFormPreview.SetPaperSize(X, Y, iPageSize: Integer);
var
  Device: array[0..cchDeviceName - 1] of char;
  Driver: array[0..Max_Path - 1] of char;
  Port: array[0..32] of char;
  hDMode: THandle;
  PDMode: PDEVMODE;
begin
  Printer.PrinterIndex := Printer.PrinterIndex;
  Printer.GetPrinter(Device, Driver, Port, hDMode);
  if hDMode<> 0 then
    begin
      pDMode := GlobalLock(hDMode);
      if pDMode <> nil then
        begin
          if (x = 0) or (y = 0) then
            begin
              {设置合法的纸张大小}
              pDMode^.dmFields := pDMode^.dmFields or dm_PaperSize;
              {pDMode^.dmPaperSize := DMPAPER_LEGAL; changed by wulianmin}
             // pDMode^.dmPaperSize := DMPAPER_FANFOLD_US;
              pDMode^.dmPaperSize := iPageSize;
            end
          else
            begin
              {设置用户自定义纸张}//要更修改下面三项
              pDMode^.dmFields := pDMode^.dmFields or
                DM_PAPERSIZE or
                DM_PAPERWIDTH or
                DM_PAPERLENGTH;
              pDMode^.dmPaperSize := DMPAPER_USER;
              pDMode^.dmPaperWidth := x {SomeValueInTenthsOfAMillimeter};
              pDMode^.dmPaperLength := y {SomeValueInTenthsOfAMillimeter};
            end;
          {设定纸张来源}
          pDMode^.dmFields := pDMode^.dmFields or DMBIN_MANUAL;
          pDMode^.dmDefaultSource := DMBIN_MANUAL;
          Printer.SetPrinter(Device, Driver, Port,hDMode );
          GlobalUnlock(hDMode);
        end;
    end;

end;



procedure TFormPreview.N2001Click(Sender: TObject);
begin
   frPreview1.Zoom:=200;
end;

procedure TFormPreview.N1001Click(Sender: TObject);
begin
    frPreview1.Zoom:=100;
end;

procedure TFormPreview.N751Click(Sender: TObject);
begin
    frPreview1.Zoom:=75;
end;

procedure TFormPreview.N501Click(Sender: TObject);
begin
    frPreview1.Zoom:=50;
end;

procedure TFormPreview.N251Click(Sender: TObject);
begin
    frPreview1.Zoom:=25;
end;

procedure TFormPreview.N101Click(Sender: TObject);
begin
    
    frPreview1.Zoom:=10;
end;

procedure TFormPreview.N2Click(Sender: TObject);
begin
   frPreview1.PageWidth ;
end;

procedure TFormPreview.N3Click(Sender: TObject);
begin
   frPreview1.TwoPages;   
end;

procedure TFormPreview.N1Click(Sender: TObject);
begin
   frPreview1.OnePage;
end;

procedure TFormPreview.SpeedButton10Click(Sender: TObject);

begin

 // frPreview.Free;
 PrintDialog1.Execute;
 //frPreview1.;
end;

end.

⌨️ 快捷键说明

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