在crystal report中更改列字体样式运行时

时间:2012-05-26 10:30:36

标签: c# dynamic fonts crystal-reports dataset

我的项目中有Crystal报表是使用数据集设计的(具有列名为inLanguage1,inLanguage2的表)。

此数据集中填充了数据库中某个表中的数据,每个表都有两列,用两种不同的语言存储名称。

例如: 表1以印地语和英语命名。 表2的英文和印地文名称。 表3在卡纳达语和印地语中有名称。

当我使用我的前端(C#)在这些表中存储名称时,我已经为文本框设置了相应的字体类型,以便用该语言键入名称。 (对于印地语,我已将文本框字体设置为'Devnagri',我已在系统上安装,因此将显示在textbox属性资源管理器中。对于英语,font-type为Arial)。该数据存储在相应的表中。

现在,当我在运行时获取表数据并填充数据集时,它可以正常工作。但是,我还想在我要打印的报告中设置列的字体。

例如:对于table1,在Crystal报表中我想将'Devnagri'设置为第一列的字体,将第二列的字体设置为'Arial',如果数据集填充了table2中的数据,我想设置报表的第一个字体属性列为'Arial',第二列为'Devnagri'

因此,请为C#中的Crystal报表建议一种方法。

2 个答案:

答案 0 :(得分:2)

在Crystal Report中运行时更改字体样式,字体大小和字体使用以下代码,这将正常运行:

您可以使用TextObject或FieldObject,具体取决于您的条件。使用TextObject。

TextObject MyText = (TextObject)Repotrdocumentobject.ReportDefinition.ReportObjects[i];

MyText.ApplyFont(new Font("Arial", 11f,FontStyle.Bold));

此处 i 是Crystal Report中TextObject的数量, 11f 是字体大小

答案 1 :(得分:1)

有一个链接here。它显示了如何更改FieldObject的字体。

例如:

FieldObject field;
field = Report.ReportDefinition.ReportObjects[reportObjectName] as FieldObject;
field.ApplyFont(YourFont);

由于字体名称存储在表格中,您应该能够根据存储在那里的FontFamily制作字体。

我假设您使用标准TextObjects来显示值,因此在这种情况下,这应该适合您。