日期:2011-11-21  浏览次数:20406 次

往往初学者觉得水晶报表像datagrid一样,给它个数据源,然后它就会显示出来
不过这种动态的水晶报表也不是不能实现,只是要变向的实现,绝对的话得问水晶开发商了
以下大概地讲一下如何来实现,原理是这样,具体的要求需要自己来调用了
主要步骤如下:

1.在水晶报表中插入FormulaFields,text object

2.在程序中
Dim dry As New CrystalReport1 '项目中水晶报表类名CrystalReport1
'文本1
dry.ReportDefinition.ReportObjects.Item("text1").Left = 12 '排版
dry.ReportDefinition.ReportObjects.Item("text1").ObjectFormat.EnableCanGrow = True
Dim GetTextObject1 As CrystalDecisions.CrystalReports.Engine.TextObject
GetTextObject1 = dry.ReportDefinition.ReportObjects.Item("text1")
GetTextObject1.Text = "love you.........." '付值
'字段1
dry.ReportDefinition.ReportObjects.Item("t1").Left = 12 '排版
dry.DataDefinition.FormulaFields("t1").Text = "{codes.type_id}" '付值,表名.字段

3.基本完成

------------------------------------------------------------------------------------------
参考:
1、通过 ReportDocument 对象的 DataDefinition 属性来检索 DataDefinition 对象。
ReportDocument 成员
公共实例属性
DataDefinition DataDefinition。获取 DataDefinition 对象。
2、DataDefinition 类
DataDefinition 成员 | CrystalDecisions.CrystalReports.Engine 命名空间
要求
命名空间:CrystalDecisions.CrystalReports.Engine
平台:Windows 98,Windows NT 4.0,Windows Millennium Edition,Windows 2000,Windows XP
程序集:CrystalDecisions.Crystalreports.Engine(在 CrystalDecisions.Crystalreports.Engine.dll 中)
包含所有与数据操作有关的信息(数据操作依据报表中的数据源)。
有关该类型所有成员的列表,请参见 DataDefinition 成员。
Object
DataDefinition
备注
可以使用该类来定义为报表和组选择记录的方式,还可以检索组集合和各种字段定义集合。
通过 ReportDocument 对象的 DataDefinition 属性来检索 DataDefinition 对象。

3、通过 DataDefinition 对象的 FormulaFieldDefinitions 属性来检索 FormulaFields 对象。
DataDefinition 成员
DataDefinition 类 | CrystalDecisions.CrystalReports.Engine 命名空间
公共实例属性
FormulaFields FormulaFieldDefinitions。获取 FormulaFieldDefinitions 集合。

4、FormulaFieldDefinitions 类
FormulaFieldDefinitions 成员 | CrystalDecisions.CrystalReports.Engine 命名空间
要求
命名空间:CrystalDecisions.CrystalReports.Engine
平台:Windows 98,Windows NT 4.0,Windows Millennium Edition,Windows 2000,Windows XP
程序集:CrystalDecisions.Crystalreports.Engine(在 CrystalDecisions.Crystalreports.Engine.dll 中)
包含报表中的每个公式字段的 FormulaFieldDefinition 对象。
有关该类型所有成员的列表,请参见 FormulaFieldDefinitions 成员。
Object
SCRCollection
FormulaFieldFieldDefinitions
备注
通过 DataDefinition 对象的 FormulaFields 属性来检索 FormulaFieldDefinitions 集合。

5、获取 FormulaFieldDefinition 对象,并设置公式。
如:FormulaFieldDefinition.Text = "{客户.客户 ID}"

FormulaFieldDefinition 成员
FormulaFieldDefinition 类 | CrystalDecisions.CrystalReports.Engine 命名空间
公共实例属性
FormulaName(从 FieldDefinition 中继承而来) 字符串。获取 Crystal Report 公式语法中的字段定义唯一公式名。
Kind(从 FieldDefinition 中继承而来) FieldKind。获取字段的类型。
名称 字符串。获取显示在“字段资源管理器”中的公式字段名。
NumberOfBytes(从 FieldDefinition 中继承而来) Int32。获取在内存中存储字段数据所需的字节数。
Text 字符串。获取或设置公式的文本。
UseCount(从 FieldDefinition 中继承而来) Int32。获取某字段在报表中使用的次数。
ValueType(从 FieldDefinition 中继承而来) FieldValueType。获取字段值的类型。
公共实例方法
Check 检查公式。如果有语法错误,则返回错误字符串和 false。