我在C#中有一个显示表格的RDLC报告 .
我正在为用户提供一个工具来选择要在报告中显示的所需列 .
因此,当报告中的列数减少时,右侧页面的一半显示为空白,因此报告的显示看起来很糟糕 .
I want to find out a way using which either I can set the column size of the visible columns dynamically.
OR
I can change the table location so that the table is displayed in the centre of the page.
到目前为止,我发现我无法编写Expression或pass参数来设置RDLC Report中控件的大小或位置 .
我想知道是否有其他方法可以实现这一目标 .
4 回答
How To adjust each column size, Check Image
单击任何列 Headers ,您将看到该表格的结构在 table 上方以灰色显示,从那里您可以调整列大小 . 请参阅附图,顶部指向“红色箭头”,这是您的表格结构,并且您可以在其中修改表格的结构 . 希望能帮助到你 .
你可以做的是在运行时更改rdlc,它只是和xml文件,所以你可以解析它并以编程方式设置表的宽度 . 我使用这种方法来翻译我的多语言报告,它工作正常 .
此链接向您显示如何翻译报告,但此代码是一个很好的起点 . 我认为您可以轻松地为您的目的定制它 . Change RDLC XML
这可能是另一种选择:
使列变小
添加组行
在顶部组行中,添加将用于组中两行的"push" col宽度的图像
在图像属性上,将其设置为使用外部图像源并使用报告参数设置要使用的图像
在图像上,设置"keep original size"
编辑:您也可以动态生成这样的“填充图像”以允许不同的宽度,例如在MVC中:
To make visible columns expand and fill the space of excluded (hidden) columns so that report width is maintained, work needs to be done is as under.
rdlc文件是一个xml文档 . 它将列宽定义为以下xml(这特定于使用Visual Studio 2005创建的RDLC文件,对于其他版本可能不同) . xml下面表示表中有6列 .
基本上逻辑很简单,只需增加可见列的宽度即可 . 但它的实现需要很少的代码行 .
继续指定DataSources和ReportParameters等,最后显示报告 . 注意:不要忘记关闭TextReader
tr.Close()
.