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
}
}
查看全文
相关阅读:
POJ 3669 Meteor Shower(bfs)
MongoDB 分片的原理、搭建、应用
Linux下Mongodb安装和启动配置
目录操作
一阶段第四次整理(关于滚动条监听的进一步解释)
HTML DOM 节点介绍(nodeName,nodeValue,nodeType)
ASP.NET 开发人员应该知道的8个网站
Java 里快如闪电的线程间通讯
php-多态
Winform控件学习-TreeView
原文地址:https://www.cnblogs.com/ejiyuan/p/936148.html
最新文章
L
30分钟入门正则表达式
10.7实战演练第一题
HTML
DFS----Lake Counting (poj 2386)
Create Virtual Machines with Vagrant and Puppet
Convert a Private Project on bitbucket.com to a github Public Project
myvimrc
Package Repository for Ubuntu Offline Installation
seneca的一段代码(原创)
热门文章
如何做个好员工(转载)
Xocde 自动注释插件
锁
【刷题】BZOJ 1093 [ZJOI2007]最大半连通子图
【刷题】BZOJ 3724 PA2014Final Krolestwo
vue 简单的 diy 搜索框 封装,全局组件化,对象配置
自动化构建工具 grunt [国外使用较多]
JS 和简历方面的
E
D
Copyright © 2011-2022 走看看