如何在运行时更改晶体报告中的报告字段的对齐方式

时间:2012-06-29 10:50:37

标签: crystal-reports

在水晶报告中,我想相应地设置字段的对齐方式。我怎么能在运行时做同样的事情?


那很好。这很有效。谢谢。我做了同样的事,代码如下所示。

var fo = rpt.ReportDefinition.ReportObjects["InvoiceComment"];
fo.ObjectFormat.HorizontalAlignment = Alignment.LeftAlign;
if (ds.Tables[0].Rows[0].ItemArray[19].ToString() == "Right")
    fo.ObjectFormat.HorizontalAlignment = Alignment.RightAlign;
else
    if (ds.Tables[0].Rows[0].ItemArray[19].ToString() == "Center")
        fo.ObjectFormat.HorizontalAlignment  = Alignment.HorizontalCenterAlign;`  

但我现在正在经历另一个问题。

FieldObject fo = rpt.ReportDefinition.ReportObjects["InvoiceComment"] as FieldObject;                       

OR

var fo = rpt.ReportDefinition.ReportObjects["InvCom"];

显示相同的错误“索引超出了数组的范围。” 如果我使用另一个代码而不是它的工作原理。

FieldObject fo = rpt.ReportDefinition.ReportObjects[35] as FieldObject;                                                       

如何加强这一点。 在此先感谢。

3 个答案:

答案 0 :(得分:3)

要更改字段的水平对齐方式,请按照以下步骤操作:

1)右键单击该字段。

2)点击格式字段选项。

3)选择Common选项卡。

4)单击Horizo​​ntal Alignment前面的公式编辑器并添加所需的设置。

5)以下是可用的对齐常数:

crDefaultHorAligned           

crLeftAligned                 

crRightAligned                

crCenteredHorizontally        

crJustified  

根据您的标准使用它。

答案 1 :(得分:0)

在C#中

var field = report.ReportDefinition.ReportObjects["Description1"];
field.ObjectFormat.HorizontalAlignment = Alignment.Justified;

可能的选择:

namespace CrystalDecisions.Shared
{
    public enum Alignment
    {
        DefaultAlign,
        LeftAlign,
        HorizontalCenterAlign,
        RightAlign,
        Justified,
        Decimal,
    }
}

答案 2 :(得分:0)

我使用文本解释= RTF文本并以富文本格式设置值,我的问题解决了......我使用RTF动态设计了更好的水晶报告。