zoukankan      html  css  js  c++  java
  • FastReport分组打印并且指定每页行数(不足填空行)

    var
      GPage,GIndex,FGIndex:integer;
      PageList:array of integer;
      PageLine: integer;      
      PageMaxRow: integer=28;         
     
    procedure PageFooter1OnBeforePrint(Sender: TfrxComponent);
    begin
      GPage := GPage + 1;
    end;

    procedure Page1OnBeforePrint(Sender: TfrxComponent);
    begin
      GPage :=1;                                       
    end;

    procedure GroupFooter1OnBeforePrint(Sender: TfrxComponent);
    var
      i: integer;   
    begin
      if Engine.FinalPass then  //二次遍历时增加分组索引
        FGIndex := FGIndex + 1
      else
      begin
        setLength(PageList,GIndex + 1);                                                                   
        PageList[GIndex] := GPage; //存放分组的总页数         
        GIndex := GIndex + 1;
      end;
      GPage := 0;

      i := iif(PageLine=0, PageMaxRow, PageLine);
      child1.visible := True;       
      while i < PageMaxRow do
      begin
        i := i + 1;
        Engine.ShowBand(Child1);  //印空白表格
      end;         
      child1.visible := False;      
    end;

    procedure Memo6OnBeforePrint(Sender: TfrxComponent);
    begin
      if not Engine.FinalPass then exit;
      //Memo6.Lines[0] := '总页号:'+IntToStr(PageList[FGIndex]);
      Memo6.Lines[0] := '总页号:'+IntToStr(FGIndex+1);     
    end;                                                                                                                                                                                

    procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
    begin
      PageLine := <Line> mod PageMaxRow;
      if (PageLine = 1) and (<line> > 1) then
        Engine.newpage;
      child1.visible := False;
    end;

    //如果仅在最后一页补空行可用

    {procedure Footer1OnBeforePrint(Sender: TfrxComponent);
    var
      i: integer;   
    begin
       i := iif(PageLine=0, PageMaxRow, PageLine);
      child1.visible := True;       
      while i < PageMaxRow do
      begin
        i := i + 1;
        Engine.ShowBand(Child1);  //印空白表格
      end;         
      child1.visible := False;      
    end;}


    begin
      FGIndex :=0;       
    end.

    FastReport界面为:

  • 相关阅读:
    C# where用法解析
    C# 判断两张图片是否一致,极快速
    C# 文件过滤器filter
    C# 获取Image图片格式
    C# 中base和this关键字
    C# Http访问帮助类,支持get post请求文件下载 [
    C# 最小化到托盘,托盘右击菜单显示
    C# 导出资源文件到硬盘
    C# 线程安全与 lock锁
    DAO设计模式(转)
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/1810274.html
Copyright © 2011-2022 走看看