我的程序中,希望能够动态调整一张报表上各元素的坐标位置,包括其中的线条,即LineObject对象,但发现有以下的问题:
对于“横线”,即LineObject.Top==LineObject.Bottom,可以设置它的Left和Right属性,但假如要修改它的Top和Bottom的值,则会触发异常,错误提示为:“线条对象的坐标值无效。只支持垂直或水平线条。”
相反,对于“竖线”,即垂直线条,可以设置它的Top和Bottom属性,但要修改其Left和Right属性时,就会触发同样的异常。
请问有朋友知道如何才能解决这个问题吗?
我在网上搜索后发现过去也有人遇到同样的情况,但一直未能解决。不知道在这里是否可获得正确的答案?还请有经验的朋友不吝指教。
Demo的代码如下:
if (this.rptReport.Section1.ReportObjects[i].Kind == ReportObjectKind.LineObject)
{
//横线可以左右,纵线只可上下
CrystalDecisions.CrystalReports.Engine.LineObject LineObject;
LineObject = (CrystalDecisions.CrystalReports.Engine.LineObject)this.rptReport.Section1.ReportObjects[i];
if (LineObject.Top == LineObject.Bottom)
{
//横线处理
LineObject.Left = LineObject.Left + ALeft;
LineObject.Right = LineObject.Right + ALeft;
//LineObject.Bottom = LineObject.Bottom + ATop; 执行该语句出错
//LineObject.Top = LineObject.Top + ATop;
}
else
{
//纵线处理
LineObject.Top = LineObject.Top + ATop;
LineObject.Bottom = LineObject.Bottom + ATop;
}
}