Crystal reports Crystal Reports:公式字段中的总和出错

Crystal reports Crystal Reports:公式字段中的总和出错,crystal-reports,Crystal Reports,简介: 我有一份非常复杂的报告。为了使其更简单,我采用以下方式构建报告: 在VS.net中,我有一个类。在报告中,我制作了一个“仅字段定义”文件(ttx),它与类完全相同。在代码隐藏中,我将该类设置为(子)报告的数据源 问题: 一个类(以及ttx文件)具有以下字段:PriceTraditional、PriceCommercial。有两个配方域,分别是Sumprice传统配方域和Sumprice商业配方域 当类为空时,数据源也为空。这就是错误发生的时间。可能是因为我取了一个空字段的和 我尝试过的解

简介: 我有一份非常复杂的报告。为了使其更简单,我采用以下方式构建报告: 在VS.net中,我有一个类。在报告中,我制作了一个“仅字段定义”文件(ttx),它与类完全相同。在代码隐藏中,我将该类设置为(子)报告的数据源

问题: 一个类(以及ttx文件)具有以下字段:PriceTraditional、PriceCommercial。有两个配方域,分别是Sumprice传统配方域和Sumprice商业配方域

当类为空时,数据源也为空。这就是错误发生的时间。可能是因为我取了一个空字段的和

我尝试过的解决方案(但不起作用):

  • 我试图用一个formulaField(例如:PriceTraditionalDummy;使用公式:if isnull({DamageForReport.PriceTraditional})更改PriceTraditional,然后是0 else{DamageForReport.PriceTraditional}。但是我得到了一个错误:这里需要一个数字。(这是由结构的else部分引起的)
  • 我尝试打开和关闭默认值替换(无结果)
  • 问题:我只想有一个报告,如果总和中使用的字段为空,我可以使用该总和公式字段,而不必炸毁报告

    任何关于如何解决这个问题的建议都将是非常好的

    亲切问候,


    Wim

    您可以尝试使用CCur将0转换为货币,或者使用CDbl或ToNumber将{DamageForReport.PriceTraditional}转换为数字

    似乎出于某种原因,它认为第一部分中的0和第二部分中的{DamageForReport.PriceTraditional}属于不同的类型,因此可以强制转换其中一个以匹配另一个

    这两种方法我都没有试过,但可能很简单,只需使用$0或0.0而不是0


    只是提出一些想法。希望能有所帮助。

    只需按照本文中描述的步骤操作即可

    职位