Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Проблема с KeepHeader и KeepFooter в FastReport: сохранение заголовка, данных и подвала на одной странице

Delphi , Базы данных , Отчеты

FastReport KeepHeader/KeepFooter properties ignored

Описание проблемы:

У меня есть очень простой образец отчета, цель которого - сохранить заголовок/данные/подвал вместе на одной странице, поэтому, если они не помещаются на текущей странице, я хочу, чтобы они переместились на новую, пустую страницу. В соответствии с руководством пользователя FastReport я должен был установить свойства KeepHeader/KeepFooter в True, но у меня не получилось. Не могли бы вы сказать, что я делаю не так?

Образец отчета:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<TfrxReport Version="5.3.17" DotMatrixReport="False" IniFile="\Software\Fast Reports" PreviewOptions.Buttons="4095" PreviewOptions.Zoom="1" PrintOptions.Printer="Default" PrintOptions.PrintOnSheet="0" ReportOptions.CreateDate="42655,3512323611" ReportOptions.Description.Text="" ReportOptions.LastChange="42655,3605296875" ScriptLanguage="PascalScript" ScriptText.Text="&#13;&#10;begin&#13;&#10;&#13;&#10;end.">
  <TfrxDataPage Name="Data" Height="1000" Left="0" Top="0" Width="1000"/>
  <TfrxReportPage Name="Page1" PaperWidth="210" PaperHeight="297" PaperSize="9" LeftMargin="10" RightMargin="10" TopMargin="10" BottomMargin="10" ColumnWidth="0" ColumnPositions.Text="" HGuides.Text="" VGuides.Text="">
    <TfrxReportTitle Name="ReportTitle1" FillType="ftBrush" FillGap.Top="0" FillGap.Left="0" FillGap.Bottom="0" FillGap.Right="0" Height="430,86642" Left="0" Top="18,89765" Width="718,1107">
      <TfrxMemoView Name="Memo1" Left="7,55906" Top="7,55906" Width="94,48825" Height="18,89765" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" ParentFont="False" Text="title"/>
    </TfrxReportTitle>
    <TfrxHeader Name="Header1" FillType="ftBrush" FillGap.Top="0" FillGap.Left="0" FillGap.Bottom="0" FillGap.Right="0" Height="22,67718" Left="0" Top="510,23655" Width="718,1107">
      <TfrxMemoView Name="Memo2" Left="7,55906" Top="0,77953" Width="94,48825" Height="18,89765" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" ParentFont="False" Text="header"/>
    </TfrxHeader>
    <TfrxMasterData Name="MasterData1" FillType="ftBrush" FillGap.Top="0" FillGap.Left="0" FillGap.Bottom="0" FillGap.Right="0" Height="22,67718" Left="0" Top="555,59091" Width="718,1107" ColumnWidth="0" ColumnGap="0" KeepFooter="True" KeepHeader="True" RowCount="30">
      <TfrxMemoView Name="Memo4" Left="22,67718" Top="1" Width="400,63018" Height="18,89765" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" ParentFont="False" Text="row"/>
    </TfrxMasterData>
    <TfrxFooter Name="Footer1" FillType="ftBrush" FillGap.Top="0" FillGap.Left="0" FillGap.Bottom="0" FillGap.Right="0" Height="22,67718" Left="0" Top="600,94527" Width="718,1107">
      <TfrxMemoView Name="Memo3" Left="7,55906" Top="1,22047" Width="94,48825" Height="18,89765" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" ParentFont="False" Text="footer"/>
    </TfrxFooter>
  </TfrxReportPage>
</TfrxReport>

Альтернативный ответ:

У меня есть очень простой образец отчета, цель которого - сохранить заголовок/данные/подвал вместе на одной странице, поэтому, если они не помещаются на текущей странице, я хочу, чтобы они переместились на новую, пустую страницу. В соответствии с руководством пользователя FastReport я должен был установить свойства KeepHeader/KeepFooter в True, но у меня не получилось. Не могли бы вы сказать, что я делаю не так?

Образец отчета:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<TfrxReport Version="5.3.17" DotMatrixReport="False" IniFile="\Software\Fast Reports" PreviewOptions.Buttons="4095" PreviewOptions.Zoom="1" PrintOptions.Printer="Default" PrintOptions.PrintOnSheet="0" ReportOptions.CreateDate="42655,3512323611" ReportOptions.Description.Text="" ReportOptions.LastChange="42655,3605296875" ScriptLanguage="PascalScript" ScriptText.Text="&#13;&#10;begin&#13;&#10;&#13;&#10;end.">
  <TfrxDataPage Name="Data" Height="1000" Left="0" Top="0" Width="1000"/>
  <TfrxReportPage Name="Page1" PaperWidth="210" PaperHeight="297" PaperSize="9" LeftMargin="10" RightMargin="10" TopMargin="10" BottomMargin="10" ColumnWidth="0" ColumnPositions.Text="" HGuides.Text="" VGuides.Text="">
    <TfrxReportTitle Name="ReportTitle1" FillType="ftBrush" FillGap.Top="0" FillGap.Left="0" FillGap.Bottom="0" FillGap.Right="0" Height="430,86642" Left="0" Top="18,89765" Width="718,1107">
      <TfrxMemoView Name="Memo1" Left="7,55906" Top="7,55906" Width="94,48825" Height="18,89765" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" ParentFont="False" Text="title"/>
    </TfrxReportTitle>
    <TfrxHeader Name="Header1" FillType="ftBrush" FillGap.Top="0" FillGap.Left="0" FillGap.Bottom="0" FillGap.Right="0" Height="22,67718" Left="0" Top="510,23655" Width="718,1107">
      <TfrxMemoView Name="Memo2" Left="7,55906" Top="0,77953" Width="94,48825" Height="18,89765" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" ParentFont="False" Text="header"/>
    </TfrxHeader>
    <TfrxMasterData Name="MasterData1" FillType="ftBrush" FillGap.Top="0" FillGap.Left="0" FillGap.Bottom="0" FillGap.Right="0" Height="22,67718" Left="0" Top="555,59091" Width="718,1107" ColumnWidth="0" ColumnGap="0" KeepFooter="True" KeepHeader="True" RowCount="30">
      <TfrxMemoView Name="Memo4" Left="22,67718" Top="1" Width="400,63018" Height="18,89765" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" ParentFont="False" Text="row"/>
    </TfrxMasterData>
    <TfrxFooter Name="Footer1" FillType="ftBrush" FillGap.Top="0" FillGap.Left="0" FillGap.Bottom="0" FillGap.Right="0" Height="22,67718" Left="0" Top="600,94527" Width="718,1107">
      <TfrxMemoView Name="Memo3" Left="7,55906" Top="1,22047" Width="94,48825" Height="18,89765" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" ParentFont="False" Text="footer"/>
    </TfrxFooter>
  </TfrxReportPage>
</TfrxReport>

Подтвержденный ответ:

Я получил ответ от службы поддержки FastReport, и если у кого-то есть такая же проблема, вот решение:

Здравствуйте,

KeepHeader - Определяет, будет ли банд (первая запись) напечатан вместе со своим заголовком KeepFooter - Определяет, будет ли банд (последняя запись) напечатан вместе со своим подвалом Также, начало сохранения не работает, когда банд ReportTitle напечатан только один раз Поэтому, вместо TfrxReportTitle и TfrxHeader вы должны использовать TfrxMasterData с RowCount = 1 и TfrxGroupHeader.

Образец отчета:

<?xml version="1.0" encoding="utf-8"?>
<TfrxReport Version="5.5.8" DotMatrixReport="False" IniFile="\Software\Fast Reports" PreviewOptions.Buttons="4095" PreviewOptions.Zoom="1" PrintOptions.Printer="Default" PrintOptions.PrintOnSheet="0" ReportOptions.CreateDate="42655,3512323611" ReportOptions.Description.Text="" ReportOptions.LastChange="42655,4867425" ScriptLanguage="PascalScript" ScriptText.Text="&#13;&#10;begin&#13;&#10;&#13;&#10;end.">
  <TfrxDataPage Name="Data" Height="1000" Left="0" Top="0" Width="1000"/>
  <TfrxReportPage Name="Page1" PaperWidth="210" PaperHeight="297" PaperSize="9" LeftMargin="10" RightMargin="10" TopMargin="10" BottomMargin="10" ColumnWidth="0" ColumnPositions.Text="" HGuides.Text="" VGuides.Text="">
    <TfrxMasterData Name="ReportTitle1" FillType="ftBrush" FillGap.Top="0" FillGap.Left="0" FillGap.Bottom="0" FillGap.Right="0" Height="430,86642" Left="0" Top="18,89765" Width="718,1107" ColumnWidth="0" ColumnGap="0" RowCount="1">
      <TfrxMemoView Name="Memo1" Left="7,55906" Top="7,55906" Width="94,48825" Height="18,89765" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" ParentFont="False" Text="title"/>
    </TfrxMasterData>
    <TfrxMasterData Name="MasterData1" FillType="ftBrush" FillGap.Top="0" FillGap.Left="0" FillGap.Bottom="0" FillGap.Right="0" Height="22,67718" Left="0" Top="555,59091" Width="718,1107" ColumnWidth="0" ColumnGap="0" RowCount="30">
      <TfrxMemoView Name="Memo4" Left="22,67718" Top="1" Width="400,63018" Height="18,89765" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" ParentFont="False" Text="row"/>
    </TfrxMasterData>
    <TfrxFooter Name="Footer1" FillType="ftBrush" FillGap.Top="0" FillGap.Left="0" FillGap.Bottom="0" FillGap.Right="0" Height="22,67718" Left="0" Top="600,94527" Width="718,1107">
      <TfrxMemoView Name="Memo3" Left="7,55906" Top="1,22047" Width="94,48825" Height="18,89765" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" ParentFont="False" Text="footer"/>
    </TfrxFooter>
    <TfrxGroupHeader Name="GroupHeader1" FillType="ftBrush" FillGap.Top="0" FillGap.Left="0" FillGap.Bottom="0" FillGap.Right="0" Height="21,91373" Left="0" Top="496" Width="718,1107" Condition="True" KeepTogether="True">
      <TfrxMemoView Name="Memo2" Left="7,55906" Top="3,01608" Width="94,48825" Height="18,89765" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" ParentFont="False" Text="header"/>
    </TfrxGroupHeader>
  </TfrxReportPage>
</TfrxReport>

Заключение:

В данной статье мы рассмотрели проблему с свойствами KeepHeader и KeepFooter в FastReport, когда пользователь хочет сохранить заголовок, данные и подвал на одной странице. Было показано, что свойства KeepHeader и KeepFooter не работают, когда банд ReportTitle напечатан только один раз. В качестве альтернативного решения было предложено использовать TfrxMasterData с RowCount = 1 и TfrxGroupHeader вместо TfrxReportTitle и TfrxHeader. Образец отчета был представлен для демонстрации решения.

Создано по материалам из источника по ссылке.

Пользователь FastReport столкнулся с проблемой, когда свойства KeepHeader и KeepFooter не работали, как они должны были. Цель пользователя состояла в том, чтобы сохранить заголовок, данные и подвал на одной странице, перемещая их на новую, пустую страницу


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Отчеты ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-28 06:00:55/0.0088541507720947/1