将参数动态传递给晶体报告

时间:2014-02-03 09:26:38

标签: vb.net crystal-reports

我正在使用vb.net开发一个Windows应用程序。我需要在水晶报告的报告页脚中打印'Createdby '。这个CreatedBy是一个参数字段,我从数据库中检索并传递后面的代码。如果CreatedBy为Null,我想在报告页脚中显示'PrintedBy',即当前用户名。我希望它采用以下格式:

创建人:?CreatedBy 其他打印方式:?PrintedBy

我怎样才能实现这一目标?由于Created By和Printed By已经是参数字段,如果我没有传递它们,它将提示用户输入,这不是我想要的。同时,我不想同时显示两个参数字段。

请帮帮我。

非常感谢提前..

2 个答案:

答案 0 :(得分:0)

尝试:

// {@footer}
If Not(Isnull({?CreatedBy})) Then {?CreatedBy}
Else If Not(Isnull({?PrinteddBy})) Then {?PrintedBy}

答案 1 :(得分:0)

您可以将参数标记为可选参数,从代码运行报表时需要进行一些特殊处理。报告中的公式如下所示:

If HasValue({?CreatedBy}) Then {?CreatedBy}
Else If  HasValue({?PrinteddBy}) Then {?PrinteddBy}
Else 'Unknown'

要在Crystal设计器中对此进行测试,您需要使用Crystal Reports 2008或更高版本。