更改水晶报表中的列字体样式运行时

本文关键字:字体 样式 运行时 水晶 报表 | 更新日期: 2023-09-27 18:35:28

我的项目中有使用数据集设计的 Crystal 报告(在语言 1、语言 2 中具有列名的表)。

此数据集由来自数据库的一个表的数据填充,每个表都有两列,以两种不同的语言存储名称。

例如:表 1 的名称为印地语和英语。表 2 的名称为英语和印地语。表3有卡纳达语和印地语的名称。

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

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

例如:对于表1,在Crystal报表中,我想将"Devnagri"设置为第一列的字体,将第二列的字体设置为"Arial",

如果数据集填充了table2中的数据,我想将报表第一列的字体属性设置为"Arial",将第二列设置为"Devnagri"

因此,请建议一种在 C# 中为 Crystal 报告进行此字体设置的方法。

更改水晶报表中的列字体样式运行时

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

您可以根据您的条件使用 TextObject 或 FieldObject。这里使用的是 TextObject。

TextObject MyText = (TextObject)Repotrdocumentobject.ReportDefinition.ReportObjects[i];
MyText.ApplyFont(new Font("Arial", 11f,FontStyle.Bold));

这里我是水晶报告中文本对象的数量,11f 是字体大小

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

例如:

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

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

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