首页 > 解决方案 > Crystal Reports 条件文本输出

问题描述

示例我被要求编写一个公式,如果订单上的项目编号为某个值,则该公式将有条件地在单个字段上显示文本。

因此,如果订单上的任何商品与以下值匹配:

>{oeordlin_sql.item_no} = '022471-2000'
>{oeordlin_sql.item_no} = '142846-003'
>{oeordlin_sql.item_no} = '202522-2000'
>{oeordlin_sql.item_no} = '022468-2000'
>{oeordlin_sql.item_no} = '022471-2000'
>{oeordlin_sql.item_no} = '202522-2010'
>{oeordlin_sql.item_no} = '202258-01'
>{oeordlin_sql.item_no} = '142845-002'
>{oeordlin_sql.item_no} = '142847-20204'
>{oeordlin_sql.item_no} = '142848-01402'
>{oeordlin_sql.item_no} = '142848-01408'
>{oeordlin_sql.item_no} = '142849-001'

然后返回一个文本行,上面写着“需要 VI 级认证”,否则不应打印任何内容。

目前我有:

If {oeordlin_sql.item_no} = '022471-2000'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '142846-003'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '202522-2000'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '022468-2000'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '022471-2000'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '202522-2010'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '202258-01'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '142845-002'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '142847-20204'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '142848-01402'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '142848-01408'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '142849-001'
Then "Class VI certificate Required"
else ""

这在一定程度上有效,但它会为每个部分生成额外的页面,报告应该是单页。如果任何部件号匹配而不为每个部件生成一个新页面,我怎样才能让它打印出单页上的文本字段?

标签: if-statementcrystal-reportsconditional-statements

解决方案


我能够通过使用编辑公式来实现这一点:

If {oeordlin_sql.item_no} = '022471-2000'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '142846-003'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '202522-2000'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '022468-2000'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '022471-2000'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '202522-2010'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '202258-01'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '142845-002'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '142847-20204'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '142848-01402'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '142848-01408'
Then "Class VI certificate Required"
else if {oeordlin_sql.item_no} = '142849-001'
Then "Class VI certificate Required"
else "suppress"

然后选择专家:并将@Class VI Cert 设置为“不等于'抑制'”

然后格式字段:如果重复则抑制


推荐阅读