Fastreport报表中有一个参数需要乘以数字15,怎么办?例如,参数[Доход]
必须乘以 15。编译器会抱怨这样的事情:[Доход*15]
FastReport 4.12.6 中有一个报告。它显示按类型分组的数据(使用 SubReport)。报告本身在卸载和分组数据方面起作用。问题是组字段的高度没有延伸到它们自己的 MasterData。它看起来(示意性地)像这样:
正如您在图像中看到的:字段 2(组名)和 5(类型总数(在第 2 行的字段 3 中表示))应该在高度上拉伸,但这不会发生。“播放”了备忘录本身的 StretchMode 属性,以及放置它们的 MasterData 的 Stretched。
报告的结构如下:
MasterData
Memo //для поля 2 (название группы)
Subreport
MasterData
Memo //для поля 5 (общее количество типов (указаны в поле 3 во 2й строке))
Subreport
MasterData
Memo //для остальных полей
数据附加到 MasterData 和 Memo(三个不同的查询:组 (2)、组中的类型及其编号 (5)、详细信息 (3,6,7))如果子 ID 与父 ID 不匹配。
我无法更详细地描述它,因为它是公司机密。
有关如何将 Memo 扩展到其 MasterData 的完整高度的建议?好吧,或者告诉我,也许我通常使用错误的分组方法,我应该,好吧,相应地指导它。
我附上了一个与我的主要报告完全相同的最小示例(也就是说,不正确,没有拉伸,设置仍然相同)。
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<TfrxReport Version="4.12.6" DotMatrixReport="False" IniFile="\Software\Fast Reports" PreviewOptions.Buttons="4095" PreviewOptions.Zoom="1" PrintOptions.Printer="Default" PrintOptions.PrintOnSheet="0" ReportOptions.CreateDate="43705,4791322454" ReportOptions.Description.Text="" ReportOptions.LastChange="43705,4818397107" ScriptLanguage="PascalScript" ScriptText.Text="begin end." PropData="03546F7003C0000844617461736574730100095661726961626C65730100055374796C650100">
<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="MasterData1" Height="18,89765" Left="0" Top="18,89765" Width="718,1107" ColumnWidth="0" ColumnGap="0" RowCount="2" Stretched="True">
<TfrxSubreport Name="Subreport1" Left="0" Top="0" Width="718,1107" Height="18,89765" ShowHint="False" Page="Page2"/>
<TfrxMemoView Name="Memo1" Left="109,60637" Top="0" Width="94,48825" Height="18,89765" ShowHint="False" StretchMode="smMaxHeight" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" Text="Group"/>
</TfrxMasterData>
</TfrxReportPage>
<TfrxReportPage Name="Page2" PaperWidth="210" PaperHeight="297" PaperSize="9" LeftMargin="10" RightMargin="10" TopMargin="10" BottomMargin="10" ColumnWidth="0" ColumnPositions.Text="" HGuides.Text="" VGuides.Text="">
<TfrxMasterData Name="MasterData2" Height="18,89765" Left="0" Top="18,89765" Width="718,1107" ColumnWidth="0" ColumnGap="0" RowCount="2" Stretched="True">
<TfrxSubreport Name="Subreport2" Align="baWidth" Left="0" Top="0" Width="718,1107" Height="18,89765" ShowHint="False" Page="Page3"/>
<TfrxMemoView Name="Memo3" Left="204,09462" Top="0" Width="94,48825" Height="18,89765" ShowHint="False" StretchMode="smMaxHeight" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" Text="Count"/>
</TfrxMasterData>
</TfrxReportPage>
<TfrxReportPage Name="Page3" PaperWidth="210" PaperHeight="297" PaperSize="9" LeftMargin="10" RightMargin="10" TopMargin="10" BottomMargin="10" ColumnWidth="0" ColumnPositions.Text="" HGuides.Text="" VGuides.Text="">
<TfrxMasterData Name="MasterData3" Height="18,89765" Left="0" Top="18,89765" Width="718,1107" ColumnWidth="0" ColumnGap="0" RowCount="5" Stretched="True">
<TfrxMemoView Name="Memo4" Left="298,58287" Top="0" Width="94,48825" Height="18,89765" ShowHint="False" StretchMode="smMaxHeight" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" Text="Details"/>
</TfrxMasterData>
</TfrxReportPage>
</TfrxReport>
在构建报表时,我们设置了模板页面的大小以及报表元素的相对位置,单位为毫米(例如,297x210)和厘米(例如,模板中的典型行高0.50
)。同时,报表元素的所有大小和相对位置,当从脚本访问时,都以其他一些单位指定(模板中的行高相同0.50
,但在脚本中 - 18.89765
)。
问题是 - 脚本中的这些测量单位是什么,以及如何将它们转换为厘米/毫米?
在fastreport报告的其中一列中显示1或0,需要将1改为Yes,相应的将0改为No。不是什么事情做不到。这是我通过脚本执行此操作的方法。
private void Text42_BeforePrint(object sender, EventArgs e)
{
if(Text42.Value.ToString() == "1")
{
Report.SetParameterValue("T.DPR_CONFIRM") = "Да";
}
else if(Text42.Value.ToString() == "0")
{
Report.SetParameterValue("T.DPR_CONFIRM") = "Нет";
}
}
但它说 setparametervalue 不接受 1 个参数。它应该是什么样子,我在这里做错了什么?他们第一次使用 fastreport 中的脚本。或者如何在条件选择中完成相同的条件?