变相实现动态ASP.NET水晶报表


  本文标签:ASP.NET水晶报表 ASP.NET

  初学者往往觉得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  。