初学者往往觉得ASP.NET水晶报表像datagrid一样,给它个数据源,然后它就会显示出来 。其实不然 。不过这种动态的ASP.NET水晶报表也不是不能实现,只是要变相的实现,绝对的话得问水晶开发商了 。
以下大概地讲一下如何来实现动态ASP.NET水晶报表,原理是这样,具体的要求需要自己来调用了 。
实现动态ASP.NET水晶报表的主要步骤:
1.在ASP.NET水晶报表中插入FormulaFields,text object
2.在程序中
Dim dry As New CrystalReport1 项目中ASP.NET水晶报表类名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.基本完成
实现动态ASP.NET水晶报表的参考知识:
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 。