找回密码
 立即注册

QQ登录

只需一步,快速开始

ehecd
论坛元老   /  发表于:2014-2-19 14:55  /   查看:13104  /  回复:10
如题,怎样在页面报表中让table的列根据内容自动变宽?

10 个回复

倒序浏览
roger.wang
社区贡献组   /  发表于:2014-2-19 15:11:00
沙发
回复 1楼ehecd的帖子

通过Table的格子--TextBox,
设置其CanGrow、CanShrink、ShrinkToFit 这3个属性试试。
看那个效果最符合您的需求。
回复 使用道具 举报
ehecd
论坛元老   /  发表于:2014-2-19 15:44:00
板凳
回复 2楼roger.wang的帖子

CanRow和CanShink不符合需求,而ShrinkToFit设置为true还是显示不完,不知道是不是因为文本框里的内容太长了,Matrix不用设置什么属性就可以根据内容改变列的宽度,怎么table不行呢?
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-2-19 16:28:00
地板
回复 3楼ehecd的帖子

在Table.TextBox中,通过CanShrink=true、ShrinkToFit=true可显示文本内容--根据TextBox设计的大小,缩放文字适应大小。
但是不会让所在的列自动增加宽度。

您的这个Table,同列的文本框内容相差有多大? 能举个例子吗?
回复 使用道具 举报
ehecd
论坛元老   /  发表于:2014-2-19 17:12:00
5#
回复 4楼roger.wang的帖子

最长的35个汉字,最短的11个汉字
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-2-20 10:02:00
6#
回复 5楼ehecd的帖子

好的,需求收到了。
我再尝试其他办法试试,稍后给您回复进展。
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-2-20 11:49:00
7#
回复 5楼ehecd的帖子

抱歉,Table无自带的AutoSize的办法。

有一个解决办法:
在运行时,动态生成报表的方法,可依照数据“最长的35个汉字,最短的11个汉字”来设置TextBox的宽、和高。
核心代码:

  1. GrapeCity.ActiveReports.PageReportModel.TextBox _objTextBox = new GrapeCity.ActiveReports.PageReportModel.TextBox();
  2. _objTextBox.Name = "TextBox1";
  3. _objTextBox.Top = "0in";
  4. _objTextBox.Left = "0in";
  5. _objTextBox.Height = "0.25in";
  6. _objTextBox.Width = "0.25in";
  7. _objTextBox.Value = "=Fields!CategoryID.Value";
  8. _objTextBox.Style.BackgroundColor = "Blue";
  9. _pageReport.Report.Body.ReportItems.Add(_objList);
复制代码


demo如下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
ehecd
论坛元老   /  发表于:2014-2-20 16:44:00
8#
回复 7楼roger.wang的帖子

我先看下
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-2-21 10:02:00
9#
回复 8楼ehecd的帖子

如何,能否间接解决您遇到的问题?
回复 使用道具 举报
ehecd
论坛元老   /  发表于:2014-2-21 15:11:00
10#
回复 9楼roger.wang的帖子

还是用调整CanGrow效果好点
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部