Tablix的SSRS数据集字段刷新不更新

时间:2014-02-20 16:50:05

标签: reporting-services ssrs-2008 ssrs-tablix

我已更新了Tablix正在使用的附加数据集的SP。刷新工作正常,当我查看Fields选项卡时,我可以在共享数据集中看到我的新字段。我的问题是tablix本身不允许我访问新字段。在某个地方存在断开连接,我无法找到热点来获取Tablix以查看数据集中可用的更新字段。我经常遇到这个问题,并希望我能在这里得到一个好的答案,以便将来回归,因为我相信我需要。我用Google搜索并查看了建议的问题,但我找不到与此问题直接相关的问题。

我还要知道报告项目是在TFS源代码控制中,因为我读到它有一些不利的副作用。我已经标记了整个项目进行编辑,并且还进入了文件夹结构并确保所有内容都未设置为只读。

我在VS 2010中使用SSRS 2008。

16 个答案:

答案 0 :(得分:16)

刚刚找到它......我不明白是否需要这样的隐藏菜单..

单击报告本身,然后转到菜单上的“查看”,最下方是“报告数据”。从这里,您可以选择数据集并转到其属性并刷新报告附加数据集的字段。对接是多么痛苦。

这是一个有助于更好地解释它的链接。 http://blog.dontpaniclabs.com/post/2012/01/26/Developings-Reports-for-SQL-Server-Reporting-Services

答案 1 :(得分:15)

如果仍然无法刷新.data文件,也可以删除它。

  1. 进入 .rdl 文件存在的文件夹
  2. 旁边应该有一个同名的文件 .rdl.data 扩展程序。删除此文件。
  3. 似乎强制刷新可能是因为它必须重新创建文件。

    这是一种侵入性较小的方式,但可能并不总是有效:

    1. 报告数据 windown中,右键单击您的数据集并单击 数据集属性如下:
    2. enter image description here

      1. 点击数据集属性右下角附近的刷新字段 窗口:
      2. enter image description here

答案 2 :(得分:2)

进入存储rdl的解决方案文件夹,然后删除报告的.rdl.data文件。 下次运行报告时,将创建新的rdl.data文件,它将包含更新的SP中的所有新字段。

答案 3 :(得分:2)

好吧,这可能是一个较老的线程,但我偶尔会遇到同样的问题。最简单的解决方法是将以下代码行添加到生成报表数据集的存储过程的开头:

SET FMTONLY OFF;

快乐编码:)

答案 4 :(得分:1)

我遇到了一个非常类似的问题:

  • 向现有SQL表函数添加了新字段
  • (有些困难)将新字段添加到SSRS中的现有数据集
  • 花了一些时间尝试在设计模式下将新字段添加到表格(tablix?)失败。

这对我没有用,所以最终我在文本编辑器中打开了特定的报告文件[filename] .rdl,令人惊讶的是它是XML。手动添加缺失字段很容易,然后visual studio会提示我刷新报告。

 <DataSets>
  <DataSet Name="DataSet1">
   ...
   <Fields>
    <!-- add new field at this level -->
    <Field Name="[newfield]">
      <DataField>Email</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
   </Fields>
  </DataSet>
 </DataSets>

答案 5 :(得分:1)

我在VS 2012中遇到完全相同的问题。用作查询的存储过程将不允许刷新字段。按下按钮时没有任何反应。

我找到的唯一解决方案是将查询类型翻转为文本,并在SELECT MAX(mi.last_updated_dts) AS max_date FROM member_info AS mi WHERE mi.id = 1276 UNION ALL SELECT MAX(lt.created_dts) FROM live_training as lt WHERE lt.me_id = 1156 UNION ALL SELECT MAX(gm.created_dts) FROM group_member as gm WHERE gm.me_id = 1156 UNION ALL SELECT MAX(clm.created_dts) FROM contact_list_member as clm WHERE clm.me_id = 1156 UNION ALL SELECT MAX(mc.created_dts) FROM member_case as mc WHERE mc.me_id = 1156 UNION ALL SELECT MAX(mcc.created_dts) FROM member_case_comment as mcc INNER JOIN member_case as mc ON (mcc.member_case_id = mc.id) WHERE mc.me_id = 1156 ORDER BY max_date DESC LIMIT 1; 调用SP上提供参数值。

为什么我们必须忍受这些明显的显示阻止错误?

答案 6 :(得分:1)

有同样的问题,我可以通过在属性中重命名我的数据集,创建一个包含原始名称的新数据集,然后点击刷新按钮来解决它。

答案 7 :(得分:1)

旧线程,但我使用VS 2015和SSMS 2016遇到了这个问题。我确信这是VS的一个问题。但是当我回到SSMS并尝试执行我的存储过程时,我发现传递某些参数值会导致查询失败。有趣的是,我能够更改存储过程而不会遇到任何错误。 (也许是因为某些参数组合不会导致失败?)

无论如何,在一天结束时,我的sproc编码错误导致SSRS中的字段无法刷新。当我回过头来纠正我的代码问题时,一切都按预期在VS中运行。

答案 8 :(得分:1)

我在Visual Studio 2015中工作,上述答案都不适合我。如果要从存储过程获取数据,则需要打开.xsd文件并右键单击数据模型。选择“配置”,窗口右侧将显示该过程中的正确值。 然后从“报表数据”选项卡中刷新数据集。

答案 9 :(得分:1)

更改存储过程代码后,不更改返回的字段的名称和数目,我只能通过单击报表的“预览”选项卡中的“刷新”按钮来使报表看似调用存储过程的新格式。

enter image description here

答案 10 :(得分:0)

答案 11 :(得分:0)

我试图将ODBC驱动程序用于连接好的数据源,但不会在VS 2015 SSRS报告中显示字段。我回去使用了一个基于SQL Server驱动程序的数据源(它在设计数据源时的选择)并且它运行良好。

答案 12 :(得分:0)

我有同样的问题,但原因与撰写本文时的其他答案不同。

就我而言,用作数据源的存储过程正在返回多个数据集(由于我留在那里的一些调试代码)。

SSRS是&#34;看到&#34;第一个数据集中的字段,而我希望它能看到第二个数据集中的字段。

删除无关数据集解决了问题,SSRS能够看到我想要的字段。

答案 13 :(得分:0)

清理reportviewer的数据源对我有用。

this.(reportviewername).LocalReport.DataSources.Clear();

答案 14 :(得分:0)

  1. 打开Visual Studio 2008报表解决方案
  2. 在左窗格中打开(双击)报告(.rpt文件)
  3. 按Ctrl + Alt + D打开“报告数据”面板
  4. 展开“ DataSets”文件夹
  5. 找到报告的主要数据集,然后右键单击“ DataSet属性”菜单
  6. 在弹出窗口中单击“刷新字段”按钮。

enter image description here

答案 15 :(得分:0)

删除.data对我没有用。删除数据集并再次添加有效。而且我之前已将VS / SSRS配置为不缓存。