zoukankan
html css js c++ java
通用水晶报表绑定类[原]
using
System;
using
System.Data;
using
System.ComponentModel;
using
System.Collections;
using
CrystalDecisions.Shared;
using
CrystalDecisions.Web;
using
CrystalDecisions.CrystalReports.Engine;
namespace
Ylgl.Ent.Report
{
/**/
///
<summary>
///
BindReport 的摘要说明。
///
</summary>
public
class
BindReport
{
ReportClass Rept
=
null
;
ArrayList al
=
new
ArrayList();
Hashtable _ParameterFields
=
null
;
/**/
///
<summary>
///
报表中的参数集合
///
</summary>
public
Hashtable ParameterFields
{
get
{
if
(_ParameterFields
==
null
)
{
_ParameterFields
=
new
Hashtable();
}
return
_ParameterFields;
}
set
{
_ParameterFields
=
value;
}
}
/**/
///
<summary>
///
用于构造当前实例的表明命名空间
///
</summary>
///
<param name="NamespaceName"></param>
public
BindReport(
string
NamespaceName)
{
Type type
=
Type.GetType(NamespaceName,
true
);
Rept
=
(ReportClass)Activator.CreateInstance(type);
}
/**/
///
<summary>
///
报表绑定方法
///
</summary>
///
<param name="DataSource">
数据源
</param>
///
<param name="ReportViewer">
报表显示控件
</param>
public
void
BindMainReport(IListSource DataSource,CrystalReportViewer ReportViewer)
{
Rept.SetDataSource(DataSource);
//
绑定子报表
if
(al.Count
!=
0
)
{
for
(
int
i
=
0
;i
<
al.Count;i
++
)
{
SubReport sr
=
(SubReport)al[
0
];
SubreportObject oSubreport1
=
(SubreportObject)Rept.ReportDefinition.Sections[sr.Place].ReportObjects[sr.SubObject];
ReportDocument oSub1
=
oSubreport1.OpenSubreport(sr.SubPath);
oSub1.SetDataSource(sr.DataSource);
}
}
//
给参数字段赋值
if
(ParameterFields
!=
null
)
{
ParameterFields fs
=
Rept.ParameterFields;
foreach
(DictionaryEntry de
in
ParameterFields)
{
ParameterField ParameterName
=
fs[de.Key.ToString()];
ParameterDiscreteValue ParameterValue
=
new
ParameterDiscreteValue();
ParameterValue.Value
=
de.Value;
ParameterName.CurrentValues.Add(ParameterValue);
}
ReportViewer.ParameterFieldInfo
=
fs;
}
ReportViewer.ReportSource
=
Rept;
ReportViewer.DataBind();
}
/**/
///
<summary>
///
设置添加绑定一个子报表到当前实例中
///
</summary>
///
<param name="dt">
子报表数据源
</param>
///
<param name="_SubObject">
用于显示子报表的对象名
</param>
///
<param name="_SubPath">
子报表文件路径
</param>
///
<param name="place">
子报表位置索引
</param>
public
void
SetSubReport(IListSource dt,
string
_SubObject,
string
_SubPath,
int
place)
{
SubReport sr
=
new
SubReport();
sr.DataSource
=
dt;
sr.SubObject
=
_SubObject;
sr.SubPath
=
_SubPath;
sr.Place
=
place;
al.Add(sr);
}
构造子报表数据类型
#region
构造子报表数据类型
/**/
///
<summary>
///
构造子报表数据类型
///
</summary>
class
SubReport
{
/**/
///
<summary>
///
用于显示子报表的对象名
///
</summary>
public
string
SubObject;
/**/
///
<summary>
///
子报表文件路径
///
</summary>
public
string
SubPath;
/**/
///
<summary>
///
子报表位置索引
///
</summary>
public
int
Place;
/**/
///
<summary>
///
子报表数据源
///
</summary>
public
IListSource DataSource;
}
#endregion
}
}
查看全文
相关阅读:
可实现B站 蒙版弹幕 效果的前端组件 —— Barrage UI
C# 中的"yield"使用
不遮挡人物弹幕是怎么实现的——图片蒙版效果-webkit-mask
使用eslint检查代码质量
vue 项目中assets 和static的区别
快速生成html文本文档——typora
VsCode中好用的git源代码管理插件GitLens
C# 根据前台校验的值,决定是否执行后台方法
C# 从字符串中取出英文字母
C# 科学计数法转换成数字
原文地址:https://www.cnblogs.com/ejiyuan/p/936148.html
最新文章
基于durid的JDBCUtils工具类
Spring JdbcTemplate实例
利用Bag中的getCount()方法统计list集合中重复元素
Eclipse进行Debug时断点上有一个斜杠,并且debug没有停在断点处
json字符串转map、json数组演示
SQL中group by使用
通过自定义注解区分数据源
构造函数私有方法和公有方法
ES5和ES6的继承
内部属性[[class]]
热门文章
咖啡和甜点的搭配
喝咖啡的好处和坏处及注意事项
咖啡产地及如何鉴赏评价
咖啡种类、做法和历史来源
说话聊天技巧
巧克力
坚果种类和营养价值排名
NPM install --save 、 --save-dev 、-g区别
原生js+canvas实现滑动拼图验证码
JS实现图片验证码功能——用户输入验证码
Copyright © 2011-2022 走看看