【问题标题】:Addition of two field values in SSRS report expression在 SSRS 报表表达式中添加两个字段值
【发布时间】:2012-10-01 10:34:46
【问题描述】:

我正在尝试在 SSRS 报告中的占位符表达式中添加两个报告字段:

= SUM(Fields!TOTPRICE.Value) + SUM(Fields!TAX.Value)

但是当我运行报告时,占位符值出现错误。

这是我为报告创建数据源的方式

enter code here     <DataSources>
<DataSource Name="DummyDataSource">
  <ConnectionProperties>
    <DataProvider>SQL</DataProvider>
    <ConnectString />
  </ConnectionProperties>
  <rd:DataSourceID>ef567ff-88fd-ef88f8f2b6b4</rd:DataSourceID>
</DataSource>

这是我为报告创建数据集的方式:

 `enter code here`  <DataSets>
<DataSet Name="CStore_POReport">
  <Fields>
    <Field Name="IDOBJECTNAME">
      <DataField>IDOBJECTNAME</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="CDEACCOU">
      <DataField>CDEACCOU</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="NMEREQUE">
      <DataField>NMEREQUE</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="FLDTXTCONTACTPHONE">
      <DataField>FLDTXTCONTACTPHONE</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="NMECOMPANY">
      <DataField>NMECOMPANY</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="FLDTXTPOBOX">
      <DataField>FLDTXTPOBOX</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="NMESTREET">
      <DataField>NMESTREET</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="NMECITY">
      <DataField>NMECITY</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="NMESTATE">
      <DataField>NMESTATE</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="FLDTXTZIP">
      <DataField>FLDTXTZIP</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="NUMQTYORDER">
      <DataField>NUMQTYORDER</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="DSCITEM">
      <DataField>DSCITEM</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="CURUNITDOLLARS">
      <DataField>CURUNITDOLLARS</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="TXTUNITOFMEASURE">
      <DataField>TXTUNITOFMEASURE</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="TOTPRICE">
      <DataField>TOTPRICE</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="NUMTAXT">
      <DataField>NUMTAXT</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="TXTCOMMENTS">
      <DataField>TXTCOMMENTS</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="TAGTAX">
      <DataField>TAGTAX</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="NUMREQ">
      <DataField>NUMREQ</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="DTECREATED">
      <DataField>DTECREATED</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="TAX">
      <DataField>TAX</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="CRNCYID">
      <DataField>CRNCYID</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="CRNCY_SYMB_TXT">
      <DataField>CRNCY_SYMB_TXT</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="ITEM_CLS_CD">
      <DataField>ITEM_CLS_CD</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="ITEM_CD">
      <DataField>ITEM_CD</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
  </Fields>
  <Query>
    <DataSourceName>DummyDataSource</DataSourceName>
    <CommandText />
    <rd:UseGenericDesigner>true</rd:UseGenericDesigner>
  </Query>
  <rd:DataSetInfo>
    <rd:DataSetName>CStore</rd:DataSetName>
    <rd:TableName>POReport</rd:TableName>
  </rd:DataSetInfo>
</DataSet>

http://i.stack.imgur.com/JYjdG.png

【问题讨论】:

  • 您遇到的错误是什么?
  • 你到底遇到了什么错误?
  • 我在运行报告时没有收到任何错误,但是当我打开报告时,带有表达式字段的文本框只显示#Err ...

标签: c# vb.net visual-studio-2010 reporting-services


【解决方案1】:

试试这个。

= CStr(SUM(CInt(Fields!TOTPRICE.Value)) + SUM(CInt(Fields!TAX.Value)))

好的,我认为您的问题是由于您的两个字段的类型都是字符串,所以在执行添加操作之前,您需要将它们转换为整数

您需要将结果转换为字符串以便在占位符中显示它

我已经为你创建了一个例子,首先是查询

接下来是编辑模式下的报告

您是否可以看到我在第一列中显示 TOPPRICE,在第二列中显示 TAX,并且我为第三列编写了表达式

= CStr(CInt(Fields!TOTPRICE.Value) + CInt(SUM(Fields!TAX.Value)))

这是结果

【讨论】:

  • 好的,我需要更多信息。您使用的是矩阵布局还是表格?您是在表格之外(在报告正文上)制作此表达式吗?您能提供更多信息吗?你能显示查询吗?
  • 如果单独使用任何字段..例如如果将表达式 SUM(Fields!TOTPRICE.Value) 分配给占位符,我会在报告中获取值,但是当我尝试同时添加值应该出现的报告字段仅显示#Error
  • 你确定其中一个不是 null/noting?
  • 是的,实际上我在该字段上方的同一个 tablix 中单独使用它们...现在我只需要显示该字段中其他字段的总和
【解决方案2】:

你能检查这些选项是否有效

1.尝试 = SUM(VAL(Fields!TOTPRICE.Value)) + SUM(VAL(Fields!TAX.Value))

2.确保您的查询填充了所有必需的列

3.确保您的查询具有与您在报告中标记下提到的相同的列标题名称。例如,如果您已定义 TAX,但您的查询将列标题返回为 tax/Tax,则可能会产生问题,因为 RDL 后端是 XML 且区分大小写。

【讨论】:

  • 是的,我都试过了,但没有效果..我也有字段,我必须显示 SUM(Fields!TOTPRICE.Value) 和 SUM(Fields!TAX.Value) 的单个值,它们都单独工作正常,我得到了价值,但只有当我尝试将它们加在一起时,我才会得到错误字段......
【解决方案3】:

终于知道了这个问题的解决方案......我很惊讶有多少人遇到同样的问题,但没有一篇文章可以清楚地解释这个问题的解决方案......

我找到了两个解决这个问题的方法:

1) 在项目设置中将目标框架从 4.0 更改为 3.5

2) 在 system.web 部分的 web.config 中添加以下行:

<trust legacyCasModel="true" level="Full"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多