SSRS. Сохраняйте таблицу одинаковой ширины при динамическом сокрытии столбцов?

Приветствую.

У меня есть отчет SSRS 2005, который показывает цены на вещи. Для некоторых клиентов я скрываю столбец из таблицы (с выражением в видимости – скрытое свойство).

Когда я это делаю, мой стол сжимается. Я долго искал способ динамически изменять размер этой таблицы (или делать что-то во время разработки, чтобы она оставалась той же ширины), но я застрял.

Ответы, которые просто говорят: «Вы не можете этого сделать», не помогут мне. Я уже читал это: http://forums.asp.net/t/1354956.aspx

Я надеюсь, что у некоторой умной души сообщества SO есть обходной путь для меня. Благодаря!

Единственный способ, которым я знаю, как это сделать, – это изменить файл RDLC во время выполнения. В принципе, вы можете загрузить свой файл RLDC в память (его просто файл XML), найти узел XML, который содержит ширину вашей таблицы, а затем изменить настройку в памяти. После этого вы можете обновить элемент управления reportViewer с помощью файла RDLC, загруженного в память.

И да, я уже это сделал, и он работает.

EDIT — Следующий пример кода – изменить данные файла RDLC в памяти через его путь XMLpath.

Private Sub ModifyRDLCInMemory() Dim xmlDoc As XmlDocument = New XmlDocument Dim asm As Reflection.Assembly = Reflection.Assembly.GetExecutingAssembly() 'create in memory, a XML file from a embedded resource Dim xmlStream As Stream = asm.GetManifestResourceStream(ReportViewer1.LocalReport.ReportEmbeddedResource) Try 'Load the RDLC file into a XML doc xmlDoc.Load(xmlStream) Catch e As Exception MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1) End Try 'Create an XmlNamespaceManager to resolve the default namespace Dim nsmgr As XmlNamespaceManager = New XmlNamespaceManager(xmlDoc.NameTable) nsmgr.AddNamespace("nm", "http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition") nsmgr.AddNamespace("rd", "http://schemas.microsoft.com/SQLServer/reporting/reportdesigner") 'Loop through each node in the XML file Dim node As XmlNode For Each node In xmlDoc.DocumentElement.SelectNodes(String.Format("//nm:{0}[@rd:LocID]", "Value"), nsmgr) 'XPath to LocID node.. You will want to change this to locate your Table Width node. You may need to read up on XMLPath Dim nodeValue As String = node.InnerText 'Gets current value of Node If (String.IsNullOrEmpty(nodeValue) Or Not nodeValue.StartsWith("=")) Then Try node.InnerText = YOURNEWVALUE Catch ex As Exception 'handle error End Try End If Next ReportViewer1.LocalReport.ReportPath = String.Empty ReportViewer1.LocalReport.ReportEmbeddedResource = Nothing 'Load the updated RDLC document into LocalReport object. Dim rdlcOutputStream As StringReader = New StringReader(xmlDoc.DocumentElement.OuterXml) Using rdlcOutputStream ReportViewer1.LocalReport.LoadReportDefinition(rdlcOutputStream) End Using End Sub 
  • Подписки для служб Reporting Services не позволят изменить поле Кому:
  • Вложенный оператор CASE WHEN
  • SSRS: возможно ли, чтобы действие загрузило подчиненный отчет?
  • SSRS - добавление статического значения null в запрос параметров
  • SSRS 2008 Wont вернет правильный набор данных из хранимой процедуры
  • Не удается распечатать отчет из служб SQL Reporting Services
  • Как отобразить значок отчета в Firefox для управления просмотром отчетов Reporting Services SQL Server
  • Как передать несколько значений одному параметру в хранимой процедуре
  • Параметр отчета SSRS
  • Администратор не может управлять службами отчетов SQL Server
  • В чем разница между схемой RDL 2008 и схемой RDL 2010? Особенность
  • Давайте будем гением компьютера.