【问题标题】:Conditionally prompting for optional parameters有条件地提示输入可选参数
【发布时间】:2011-08-26 01:56:45
【问题描述】:

版本:水晶报表 2008

我有 2 个参数提示用户输入信息。

参数 1(布尔值): 选择所有时间段? - True:显示所有时间段 - 错误:我会选择日期

参数2(日期/时间): 基于日期/时间字段的动态日期时间。

如果第一个参数为真,那么我想省略参数2。如果第一个参数为假,那么我想提示用户输入日期。关于如何做到这一点的任何想法?

另外,我的“记录选择”中有以下内容

(if {?Select All Time Periods}= True then
date({ReleaseDate.ReleaseDate}) >= date(currentdatetime)
else if {?Select All Time Periods}= False then
date({?Select Release Date}) = {ReleaseDate.ReleaseDate})

【问题讨论】:

    标签: crystal-reports crystal-reports-2008


    【解决方案1】:

    我会完全取消布尔参数。保留您的 {?Select Release Date},但将其设置为可选(在 CR 2008 及更高版本中可用)。然后,将其放入您的记录选择中

    if hasvalue({?Select Release Date} then 
        {ReleaseDate.ReleaseDate} = {?Select Release Date}
    else {ReleaseDate.ReleaseDate} >= currentdate

    默认情况下,如果用户对参数不做任何事情,则只会选择未来的发布日期。如果你真的想选择所有发布日期,过去和未来,你可以简单地省略 else 语句。

    【讨论】:

    • 我确实尝试过,但是 Business Objects 在尝试运行报告时会抛出错误。我确实让我的初始流程开始工作了。
    • 错误:此处应为数字、货币金额、布尔值、日期、时间、日期时间或字符串。详细信息:文件 C:\WINDOWS\TEMP\{047CB282-281F-4E5E-8ABB-ABC695245AC2}.rpt 中的 errorKind 错误:公式中的错误。 'if hasvalue({?Release Date})=false then ' 此处应为数字、货币金额、布尔值、日期、时间、日期时间或字符串。详细信息:errorKind
    • 嗯...检查条件中的布尔值时不需要“=true”或“=false”,但这不会导致错误。但是,如果您在 {?Release Date} 实际上没有值的情况下尝试使用它,则可能会出错。
    • 如果我删除“=True”或“=False”,我会得到以下信息:错误:此处应为数字、货币金额、布尔值、日期、时间、日期时间或字符串。详细信息:文件 C:\WINDOWS\TEMP\{B0872BF6-482D-446C-B174-E307BA51155F}.rpt 中的 errorKind 错误:公式中的错误。 'if hasvalue({?Release Date}) then ' 此处应为数字、货币金额、布尔值、日期、时间、日期时间或字符串。详细信息:errorKind
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    相关资源
    最近更新 更多