• 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界面为:

  • 相关阅读:
    MVC中单选按钮的实现
    前端点击手机号码跳转到手机拨号页面
    jQuery限制文本框只能输入正整数
    Asp.Net 之 二维码生成
    MVC +Jqyery+Ajax 实现弹出层提醒
    jQuery Ajax使用实例
    ASP的调试技术解答
    模式应用场景
    redis笔记
    yii resful
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/1810274.html
Copyright © 2020-2023  润新知