水晶报表 自适应节宽度

阿双2009 2009-12-15 04:42:16
如题,比如现在有一个文本对象,如何让其与节宽度一样呢,就是想实现Dock那样的效果。。
...全文
517 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿双2009 2009-12-17
  • 打赏
  • 举报
回复
看来不能用.ToString(),现在的问题变成如何获取字段里的值??。。
阿双2009 2009-12-17
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 luols 的回复:]
很感谢!在泰哥您的指点下进步了很多,可是还是有问题,这是最新截图,就是第四题是正确的,可是3、5两题不对!说明右一列是“RIGHTANS1”,右二列是“ANSRATE1”,代码如下:
C# code
crystalReportViewer1.ReportSource= reportDoc;
BoxObject bo= (BoxObject)reportDoc.ReportDefinition.ReportObjects["Box3"];
FieldObject answer= (FieldObject)reportDoc.ReportDefinition.ReportObjects["ANSRATE1"];
FieldObject rightAnswer= (FieldObject)reportDoc.ReportDefinition.ReportObjects["RIGHTANS1"];if (answer.ToString()== rightAnswer.ToString())
{
bo.FillColor= Color.FromArgb(0,128,0);
}if (answer.ToString()!="__"&& answer.ToString()!= rightAnswer.ToString())
{
bo.FillColor= Color.FromArgb(128,0,0);
}if (answer.ToString()=="__")
{
bo.FillColor= Color.FromArgb(192,192,192);
}
[/Quote]
阿泰 2009-12-16
  • 打赏
  • 举报
回复
水晶报表运行时各节高度可能会因为内容的不同有所变化,但是宽度不变的啊。
阿泰 2009-12-16
  • 打赏
  • 举报
回复
... 宽度还要适应么。。直接拉到跟节一样宽不就行了吗。。
阿双2009 2009-12-16
  • 打赏
  • 举报
回复

很感谢!在泰哥您的指点下进步了很多,可是还是有问题,这是最新截图,就是第四题是正确的,可是3、5两题不对!说明右一列是“RIGHTANS1”,右二列是“ANSRATE1”,代码如下:

crystalReportViewer1.ReportSource = reportDoc;
BoxObject bo = (BoxObject)reportDoc.ReportDefinition.ReportObjects["Box3"];
FieldObject answer = (FieldObject)reportDoc.ReportDefinition.ReportObjects["ANSRATE1"];
FieldObject rightAnswer = (FieldObject)reportDoc.ReportDefinition.ReportObjects["RIGHTANS1"];
if (answer.ToString() == rightAnswer.ToString())
{
bo.FillColor = Color.FromArgb(0, 128, 0);
}
if (answer.ToString() != "__" && answer.ToString() != rightAnswer.ToString())
{
bo.FillColor = Color.FromArgb(128, 0, 0);
}
if (answer.ToString() == "__")
{
bo.FillColor = Color.FromArgb(192, 192, 192);
}
阿双2009 2009-12-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 babyt 的回复:]
参考本文中控件的操作方法,可以设定height属性=节(Section)高度

http://topic.csdn.net/u/20090705/14/745f6153-e120-41af-a28b-75b09355b663.html
[/Quote]

泰哥,代码有.Height属性,可是没看到.Width属性啊,我想适应节宽度。。
阿泰 2009-12-16
  • 打赏
  • 举报
回复
其实你根本不用控制box的高度
你只要把box的上下边沿画在这个节的上下边沿的外面就行了
阿双2009 2009-12-16
  • 打赏
  • 举报
回复
我的失误!
不过为什么box的高度没有和节的高度保持一致呢,我写了代码:
crystalReportViewer1.ReportSource = reportDoc;
BoxObject bx = (BoxObject)reportDoc.ReportDefinition.ReportObjects["Box3"];
bx.Bottom = reportDoc.Section3.Height;
阿双2009 2009-12-16
  • 打赏
  • 举报
回复
谢谢泰哥!不过为什么还是参差不齐呢,我已经都把字段放到box里面了,并且已经设置了box的bottom等于节(section)的高度。
阿泰 2009-12-16
  • 打赏
  • 举报
回复
实际操作了一下。框背景色是可以动态设置的。

你从这个方向试试吧


rystalReport1 cr1 = new CrystalReport1();
BoxObject bx;
bx = (BoxObject)cr1.ReportDefinition.ReportObjects["Box1"];
bx.FillColor = Color.Blue;
crystalReportViewer1.ReportSource = cr1;


阿双2009 2009-12-16
  • 打赏
  • 举报
回复
呵呵,用节底色确实很不稳定,其实我这里是这样一种情况,就是报表中字段长度不一样,有些是可以增大的,然后都用公式控制背景色的话,运行之后的效果就参差不齐了,所以我就想直接控制节底色,暂时没想到其他方法,还请泰哥指教。。。3Q
阿泰 2009-12-16
  • 打赏
  • 举报
回复
那就拖个公式字段,这个东西的可以控制的,呵呵。
可以直接在字段背景后面的公式里设置。结合参数来可以再代码里进一步控制。
阿双2009 2009-12-16
  • 打赏
  • 举报
回复
可是不能动态控制颜色显示啊。。
阿泰 2009-12-16
  • 打赏
  • 举报
回复
用节底色,是不可靠的。

还不如拖个大框,用框的背景色。
阿双2009 2009-12-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 babyt 的回复:]
... 宽度还要适应么。。直接拉到跟节一样宽不就行了吗。。
[/Quote]

我试过了,在自己机子上运行结果是正常的,可是在其他机器上就不一样,由于我节的背景颜色用公式设置了,所以在其他机器上运行的结果节的背景颜色很明显在报表右边多出了那一部分,,
阿泰 2009-12-15
  • 打赏
  • 举报
回复
参考本文中控件的操作方法,可以设定height属性=节(Section)高度

http://topic.csdn.net/u/20090705/14/745f6153-e120-41af-a28b-75b09355b663.html
阿双2009 2009-12-15
  • 打赏
  • 举报
回复
可是Box的背景颜色不能动态控制啊,就是不能写公式。。

另:代码怎么实现??
饥渴的学习欲望。。。
阿泰 2009-12-15
  • 打赏
  • 举报
回复
1:可以通过代码可以实现。
2:如果你只想要个边框效果,那可以用个Box,把线画在这个节的外围就可以了。

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧