如何在报告(.rdlc)中有不同类型的变量
How to have different type of variable in report(.rdlc)
我在 MS-access
中有一个 table 是这样的:
本栏目格式为短文本
当我想在报表设计器中使用它时,我想将它的数字转换为只有 2 个十进制数,我使用以下表达式来做到这一点:
=IIF(isNumeric(Fields!Val.Value),FormatNumber(Fields!Val.Value,2),(Fields!Val.Value))
此代码在 number 变量中执行我想要的操作,而不是获取 > 305
我得到 #Error
问题出在哪里?
在 Access 中,IIf() 中的所有表达式都必须能够计算,即使不是 return 结果中的表达式。字符串 '>305' 上的 FormatNumber() 错误并导致 IIf() 到 return 错误。这里真正的问题是糟糕的设计。数字数据应位于数字类型字段中。
使用了多少种比较运算符或其他非数字字符?是否有 <=、>=、< 比较运算符?如果前缀字符存在,您的代码将必须提取它们。操作字符串时,结构的一致性至关重要。如果前缀总是只有 '>':
=IIf(IsNumeric([Val]), FormatNumber(替换([Val],">",""), 2), [Val])
否则,可能需要 VBA 中的自定义函数。
注意:Val 是 Access 中的保留字(它是一个函数)- 应避免将保留字作为任何名称。
我在 MS-access
中有一个 table 是这样的:
本栏目格式为短文本
当我想在报表设计器中使用它时,我想将它的数字转换为只有 2 个十进制数,我使用以下表达式来做到这一点:
=IIF(isNumeric(Fields!Val.Value),FormatNumber(Fields!Val.Value,2),(Fields!Val.Value))
此代码在 number 变量中执行我想要的操作,而不是获取 > 305
我得到 #Error
问题出在哪里?
在 Access 中,IIf() 中的所有表达式都必须能够计算,即使不是 return 结果中的表达式。字符串 '>305' 上的 FormatNumber() 错误并导致 IIf() 到 return 错误。这里真正的问题是糟糕的设计。数字数据应位于数字类型字段中。
使用了多少种比较运算符或其他非数字字符?是否有 <=、>=、< 比较运算符?如果前缀字符存在,您的代码将必须提取它们。操作字符串时,结构的一致性至关重要。如果前缀总是只有 '>':
=IIf(IsNumeric([Val]), FormatNumber(替换([Val],">",""), 2), [Val])
否则,可能需要 VBA 中的自定义函数。
注意:Val 是 Access 中的保留字(它是一个函数)- 应避免将保留字作为任何名称。