4

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


很好。这正在工作。谢谢。我也这样做了,代码如下所示。

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;                       

或者

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

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

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

如何发生这种情况。提前致谢。

4

3 回答 3

2

要更改字段的水平对齐方式,请执行以下步骤:

1) 右键单击​​该字段。

2) 单击格式字段选项。

3) 选择常用选项卡。

4) 点击Horizo​​ntal Alignment前面的公式编辑器,添加需要的设置。

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

持续的

crDefaultHorAligned           

crLeftAligned                 

crRightAligned                

crCenteredHorizontally        

crJustified  

根据您的标准使用它。

于 2012-06-29T11:25:20.307 回答
1

在 C# 中:

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

可能的选择:

namespace CrystalDecisions.Shared
{
    public enum Alignment
    {
        DefaultAlign,
        LeftAlign,
        HorizontalCenterAlign,
        RightAlign,
        Justified,
        Decimal,
    }
}
于 2012-06-29T17:03:47.183 回答
-1

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

于 2015-09-01T11:37:58.833 回答