怎样动态添加水晶报表的报表对象? 是不是用ReportDocument .Container.add()和ReportDocument .Container.remove()来实现的,怎么实现的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 海波.NET 问题: 水晶报表中,因为数据源的字段是不固定的,可否在运行时动态添加字段,就象在winform中动态添加控件一样?(更新:2003-11-05) —————————————————————————————————————— 解决方案: 用“公式字段” 1、根据字段的最大数量,定义若干个“公式字段”,FormulaFeild1、FormulaFeild2……,公式为空; 2、把“公式字段”按顺序放在“详细资料”里; 3、在程序里动态将“公式字段”赋值为“具体字段”; 如:FormulaField1.Text= "{客户.客户 ID}" —————————————————————————————————————— 参考: 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。 事实上,完全动态添加好像还没有实现过就像你在form上面添加控件一样,IDE会帮你写好代码,我们可以参考它动态添加控件但是水晶报表中我们看不到它封装好的代码,也就无从参考。 感谢fgc5201314(成成(转工,C#,广州,深圳,佛山)提供的方法,但是我已经实现过了,我要的是完全的动态添加功能,不过好像很难 在Crystal中你大概是没有办法定义添加对象的位置,同时也没有办法做灵活的编程,我提供一种方法给你参考,就是做多个报表,每个报表对应不同多个的公式字段,然后在看你要输出的是多少个字段信息,就调用对应的报表就可以,前提是你要输出的报表字段不能有太多的组合,否则这种方式也就没有什么价值了. 好像水晶报表做不到,我看最好是用excel,或是自己画 请教大家ds数据集打印方法 如何让checkedlistbox中的栏宽度适应字符串长度? 求救!comboBox的绑定问题,在线等…… 关于怎么给一个textbox赋个背景色 有很高参考价值的软件源码 需要者发邮件到[email protected] 每信必复 谢谢! 请问在AD里如何得到online的计算机? 接收刷卡机的数据 很奇怪的一个窗体事件 如何写程序修改DataGrid的列标题? 各位看看,帮下忙 数据库事务处理的问题,比较郁闷 在线求助-查找Tencent Explorer浏览器中指定窗口?
问题:
水晶报表中,因为数据源的字段是不固定的,可否在运行时动态添加字段,就象在winform中动态添加控件一样?(更新:2003-11-05)
——————————————————————————————————————
解决方案:
用“公式字段”
1、根据字段的最大数量,定义若干个“公式字段”,FormulaFeild1、FormulaFeild2……,公式为空;
2、把“公式字段”按顺序放在“详细资料”里;
3、在程序里动态将“公式字段”赋值为“具体字段”;
如:FormulaField1.Text= "{客户.客户 ID}"
——————————————————————————————————————
参考:
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。
就像你在form上面添加控件一样,IDE会帮你写好代码,我们可以参考它动态添加控件
但是水晶报表中我们看不到它封装好的代码,也就无从参考。