如何在Crystal Report上放置特定行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Crystal Report上放置特定行相关的知识,希望对你有一定的参考价值。
我有一个Crystal Report,它调用存储过程来返回包含各种值的表。
我希望在报告的各个位置放置此表的各行。为此,我使用公式中指定的数据项创建公式字段: -
{sp_MyReport.Column1}
并在必要时将它们分散在报告中。要选择不同的行,我将选择公式更改为: -
{sp_MyReport.IdColumn} = 2
但是当我这样做时,所有其他公式字段中的记录选择都会更改为匹配,因此我只能显示一行数据项。
首先,创建公式字段是正确的方法来解决这个问题(我必须在标题中隐藏文本,这表明它可能不是预期用途)?
如果是这样,我如何让不同的公式字段显示不同的行?
如果没有,我该怎么办?
答案
一种方法是创建包含存储过程的子报表,然后使用共享变量缓存值。
定义应在主报表中显示的每个值的变量,并为其分配相应的值。
子报表中的公式如下所示:
WhilePrintingRecords;
Shared NumberVar myValueX;
Shared NumberVar myValueY;
//assign the corresponding value to the variable
If {sp_MyReport.IdColumn}=2 Then myValueX := {sp_MyReport.ValueColumn}
If {sp_MyReport.IdColumn}=3 Then myValueY := {sp_MyReport.ValueColumn}
要在主报表中显示值,请按如下方式创建公式:
WhilePrintingRecords;
Shared NumberVar myValueX;
子报表应放在报表头部分内,因为变量总是从上到下进行评估。
要隐藏子报表,只需减小大小,直到它足够小,以适应报表的某处,而不会“破坏”报表设计。 (不要压缩子报表,因为它不会被评估。)
以上是关于如何在Crystal Report上放置特定行的主要内容,如果未能解决你的问题,请参考以下文章
Crystal Report,根据Criteria将行分组为单行