点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我正在运行时动态创建选择公式,并且没有产生任何行。 HasData返回false,rows.count = 0。
使用相同的数据,以及在运行时生成的相同选择公式,可以在主报表预览中获取数据。
Crystal gui(在Visual Studio 2017中使用)与运行时(在Visual Studio 2017中)又如何产生不同的结果?
我在下面列出了选择公式:
lookslike(trim(totext({ReportingCrossTab_v1r01.TransactionTypeCode})),trim(totext('')))
是,选择默认值为null。
是的,我知道我正在与空白字符串值进行比较。 在我要查找的记录中,该字段的值为空白,并且在gui中有效。
是的,我知道应该没有理由将''转换为文本,因为它已经是文本,但是当 它是一个数字值,可以确保使用晶振逻辑转换字段和数字,而无需我深入了解它是什么。 同样,在gui中也可以正常工作。
我已经尝试过几种类似的公式,包括简单的trim(totext({field}))= trim(totext(''))。
每次尝试时,报告预览gui都会生成记录集,而运行时不会生成记录。
奇怪的是,这仅在我测试的字段为null时才出现问题。
运行时是否忽略null的默认值?
由于要在运行时创建选择公式,因此很可能是运行时忽略了null设置的默认值。 最好的测试方法是在公式中添加空值处理。 诀窍在于,在测试其他任何内容之前,必须先测试null。 因此,您的公式可能看起来像这样:
如果在运行时使用此公式时出现数据,那么您已经确定了 问题是。 如果未出现,则说明还有其他情况。
-Dell
我还应该提到我正在使用版本13.0.25(CRforVS_13_0_25.exe)
好,
虽然我仍然觉得运行时很像,并且gui绝不能使用相同的数据和选择公式产生不同的结果,但是由于戴尔,我已经找到了适合我的情况的解决方法。
由于我是通过代码执行此操作的,因此我可以读取测试值,并且当它为空字符串时,我可以简单地将公式调整为读取
isnull({ReportingCrossTab_v1r01.TransactionTypeCode})或trim(totext({ReportingCrossTab_v1r01.TransactionTypeCode}))=''
由于我希望每个测试值提供不同的报告,因此这对我来说很好。 它还使我可以返回非空值的简单相等性,而不是使用looklikelike(,)进行模式匹配。
尽管如此,我仍然对通过运行时为选择公式设置或验证"空值默认值"感到好奇。
Dell,
谢谢您的回答...但是我觉得我应该再详细一点。 我在运行时将附加到报表中的选择公式。在选择公式中已经检查了null的默认值。 有没有办法检查是否通过sdk设置了" null的默认值"?
我需要遍历值列表(是的,包括null/nullstring),并为每个值生成报告的单独副本,其中仅包含字段与我正在测试的值匹配的那些记录。 在您建议的公式中,无论测试值如何,都将包含空记录,而这不是我所需要的。
但是我会尝试并报告。 谢谢!
VS内置的嵌入式报表设计器是非常古老的技术,不应用于验证报表。
运行时将是正确的。...
在CR Designer中一直要求检查空值。
一周热门 更多>