Crystal reports Crystal:作为回退的默认值(来自数据库)

Crystal reports Crystal:作为回退的默认值(来自数据库),crystal-reports,report,Crystal Reports,Report,我们计划使用CR2013为客户创建发票和其他文档。 报告生成将由JAVA调用启动 在genral中,所有文档都具有相同的基本布局,但对于我们的一些客户,我们需要在文档的页脚中添加特殊文本 想法是,有3张桌子: 顾客 发票数据 自定义文本 所有三个表都可以通过customer\u id进行升级和连接 自定义文本现在应该包含一行customer\u id=0,如果未提供特定于客户的文本,该行将作为后备行 例如: Custom-Texts ID | customer_id | Footer

我们计划使用CR2013为客户创建发票和其他文档。
报告生成将由JAVA调用启动

在genral中,所有文档都具有相同的基本布局,但对于我们的一些客户,我们需要在文档的页脚中添加特殊文本

想法是,有3张桌子:

  • 顾客
  • 发票数据
  • 自定义文本
所有三个表都可以通过
customer\u id
进行升级和连接

自定义文本现在应该包含一行
customer\u id=0
,如果未提供特定于客户的文本,该行将作为后备行

例如:

Custom-Texts

ID    | customer_id | Footertext 1 | Footertext 2
- - - - - - - - - - - - - - - - - - - - - - - - -
0     | 0           | Defaulttext  | Defaulttext
1     | 44          | Special Text | Special Text    
2     | 78          | Special 2    | Special
因此,对于id为44和78的客户,采用特殊文本,对于所有其他客户,采用
id=0
中提供的文本


这可能吗?我们该怎么做?

在页脚中创建一个公式,并编写下面的代码。下面的代码假定
默认文本
特殊文本
都来自数据库

if customer_id=0
then Footertext 1
else Footertext 1
上面的代码将id与0进行比较,如果是,则返回默认文本,如果否,则返回特殊文本

对Footer2也遵循相同的过程

编辑---------------------------------------

在页脚中放置一个子报告

在该子报告中,创建一个具有客户ID的组,并将下面的公式放在详细信息部分

Footertext 1

现在只需在子报表中显示详细信息,并抑制所有其他部分。

这真的有效吗?我们永远不会有id=0的客户,因为0代表所有未单独指定的用户(如示例中的id=44)。因此,客户44将获得Specialtext,而所有其他客户将获得默认。。。。我需要通过额外的原因id来扩展此列表。如果您从未获得id=0的客户,则您的控件将始终转到其他部分,并显示所需的数据。我刚刚编辑了描述,以更清楚地说明,我们可能有数百个针对不同id的特殊文本。