1

我正在尝试在 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

4

3 回答 3

2

试试这个。

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

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

您需要将结果转换为字符串才能在占位符中显示

我为您创建了一个示例,首先是查询

在此处输入图像描述

接下来是编辑模式下的报告 在此处输入图像描述

你能看到我在第一列中显示 TOPPRICE,在第二列中显示 TAX,我为第三列写了一个表达式

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

这是结果

在此处输入图像描述

于 2012-10-01T10:47:02.623 回答
2

如果可行,您可以检查这些选项吗

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

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

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

于 2012-10-04T14:11:44.237 回答
0

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

针对这个问题,我找到了两种解决方法:

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

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

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

于 2012-10-11T11:32:34.837 回答