crystal report 中,怎么将运行时汇总添加到交叉表中
若以下回答无法解决问题,邀请你更新回答
1个回答
展开全部
近研究Crystal Report报表发,觉非用特发要点结:
、Crystal Report几重要组件
1、Crystal Report Designer
Crystal Report所见即所靠组件Crystal Report Designer用于编辑.rpt报表文件
2、Crystal Report Viewer
Crystal Report Designer设计报表展示Web页面或Windows Form 用组件
3、Crystal Report Engine
Crystal Report Engine允许发员运行阶段报表结构与内容进行完整控制 Crystal Report Engine必须Crystal Report Viewer同使用
二、理解报表节(Report Section)
1、报表页眉节
报表页眉节数据整份报表现且显示第页
2、页眉节
页眉节数据固定显示每页顶端
3、详细资料节
显示报表实际信息绑定数据库表(DataSet)记录则些记录都显示详细资料节
4、报表页脚节
报表页眉节数据整份报表现且显示页详细资料节数据记录
5、页脚节
页脚节数据固定显示每页尾端
三、水晶报表执行模式
1、Pull模式
请求报表驱程序自连接数据库并视需要提取数据般简单报表用Pull模式
2、Push模式
使用Push模式发员必须自行编写代码连接数据库运行SQL命令创建DataSet并DataSet传递给报表Push模式比较灵并且效率高
四、使用Push模式
1、设计DataSet
(1)解决案浏览器选择添加--添加新项--数据集(DataSet)--"命名DSCustomer";
(2)服务器资源管理器SQL Server拖放数据表DataSet(CustomerList表)DataSetCustomerList表结构图保存DataSet(步能忘)(DataSet数据表)
2、创建.rpt文件
(3)解决案浏览器选择添加--添加新项--Crystal Report;
(4)建立.rpt文件右击报表设计界面空白处--"添加/删除数据库";
(5)"数据库专家"窗口展"项目数据"-"展ADO.NET数据集"--"DSCustomer(DataSet)"--"选择CustomerList表";
(6)"CustomerList"表填加"选定表"点击"确定";
(7)设计报表界面界面拖放CustomerList表字段;
3、建立Crystal Report Viewer控件,编写台代码
(8).aspx页面建立Crystal Report Viewer,根据需要设置其属性;
(9)代码访问数据库并数据填充DataSet;
private void BindReport()
{
RptRenderContract ReportDoc = new RptRenderContract();//.rpt文件应类
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["connStr"]);
DsCustomer ds = new DsCustomer(); //创建DataSet象ds
string strSelect = "SELECT * FROM CustomerList ;
SqlDataAdapter dadCustomer = new SqlDataAdapter(strSelect,conn);
dadRender.Fill(ds,"CustomerList"); //向ds填充CustomerList表
ReportDoc.SetDataSource(ds); //设置.rpt文件应类数据源
CRVContract.ReportSource = ReportDoc; //设置Crystal Report Viewer报表源
}
(10)Page_Load使用BindReport()函数
五、Crystal Report使用技巧
1、使用公式字段
Crystal Report公式编辑器,允许发员用Basic语Crystal(类Pascal)语编辑公式字段Example,:
Dim strCpuType As String
Select Case {CpuLeaseList.CpuType}
Case 1
strCpuType = "惠普CPU"
Case 2
strCpuType = "曙光CPU"
Case 3
strCpuType = "苹CPU"
End Select
formula = strCpuType
点遗憾Crystal Report公式编辑器没提供函数帮助说明,些函数用需要猜比获取期字段月份公式:
formula = Month({CpuLeaseList.LeaseStartTime})
总要发满足客户需求复杂报表必须熟练使用公式字段
2、数据排序
数据排序利用两种式
式1--用SQL语句先排序排序数据绑定报表
式2--利用Crystal Report排序功能右击报表设计界面空白处--报表--排序记录--根据需要设置排序字段
3、组报表数据
认Crystal Report组报表功能非强内置功能强根据字段组功能功能非用仅仅用SQL 语句Group BY 些功能能实现比SQL 语句:
SELECT DateName(mm, LeaseStartTime) AS [Month], sum(datediff(hh,LeaseStartTime,LeaseEndTime)) AS [Hour] FROM CpuLeaseList where LeaseStartTime
BETWEEN '2006-1-1' AND '2006-12-31'
GROUP BY DateName(mm,LeaseStartTime)
SELECT 所能筛选字段能 GROUP BY 跟相同字段或聚合函数运算字段问题Crystal Report组报表却容易解决
4、使用图表交叉表
快速创建图表交叉表Crystal Report优点要适节(sector)插入图表或交叉表设置些要显示字段OK
5、报表导打印
报表集Web应用程序,需要自编写代码实现报表导打印(报表Windows应用已经集导打印功能).据说,Visual studio 2005Crystal reportWeb应用集导打印功能.
遗憾,Visual studio2003面用代码实现导打印,Crystal Report稳定,现莫名其妙运行错误: ( 问题让我郁闷)
异详细信息: CrystalDecisions.CrystalReports.Engine.LogOnException: 登录失败
报表导需要注意:1)必须设置导目录相应安全权限,否则往本计算机磁盘写文件. 2)要实现打印导,每Page_Load()必须要绑定DataSet数据报表.(点要非注意!)
导代码:
private void btnExport_Click(object sender, System.EventArgs e)
{
CrystalDecisions.Shared.DiskFileDestinationOptions DiskOpts = new CrystalDecisions. Shared. DiskFileDestinationOptions();
ReportDoc.ExportOptions.ExportDestinationType = CrystalDecisions. Shared.ExportDestinationType.DiskFile;
switch (ddlFormat.SelectedItem.Text)
{
case "Rich Text (RTF)":
ReportDoc.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.RichText;//
DiskOpts.DiskFileName = "D://Output.rtf";
break;
case "Portable Document (PDF)":
ReportDoc.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat;//
DiskOpts.DiskFileName = "D://Output.pdf";
break;
case "MS Word (DOC)":
ReportDoc.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.WordForWindows;//
DiskOpts.DiskFileName = "D://Output.doc";
break;
case "MS Excel (XLS)":
ReportDoc.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.Excel;//
DiskOpts.DiskFileName = "D://Output.xls";
break;
default:
break;
}
ReportDoc.ExportOptions.DestinationOptions = DiskOpts;
ReportDoc.Export();
}
、Crystal Report几重要组件
1、Crystal Report Designer
Crystal Report所见即所靠组件Crystal Report Designer用于编辑.rpt报表文件
2、Crystal Report Viewer
Crystal Report Designer设计报表展示Web页面或Windows Form 用组件
3、Crystal Report Engine
Crystal Report Engine允许发员运行阶段报表结构与内容进行完整控制 Crystal Report Engine必须Crystal Report Viewer同使用
二、理解报表节(Report Section)
1、报表页眉节
报表页眉节数据整份报表现且显示第页
2、页眉节
页眉节数据固定显示每页顶端
3、详细资料节
显示报表实际信息绑定数据库表(DataSet)记录则些记录都显示详细资料节
4、报表页脚节
报表页眉节数据整份报表现且显示页详细资料节数据记录
5、页脚节
页脚节数据固定显示每页尾端
三、水晶报表执行模式
1、Pull模式
请求报表驱程序自连接数据库并视需要提取数据般简单报表用Pull模式
2、Push模式
使用Push模式发员必须自行编写代码连接数据库运行SQL命令创建DataSet并DataSet传递给报表Push模式比较灵并且效率高
四、使用Push模式
1、设计DataSet
(1)解决案浏览器选择添加--添加新项--数据集(DataSet)--"命名DSCustomer";
(2)服务器资源管理器SQL Server拖放数据表DataSet(CustomerList表)DataSetCustomerList表结构图保存DataSet(步能忘)(DataSet数据表)
2、创建.rpt文件
(3)解决案浏览器选择添加--添加新项--Crystal Report;
(4)建立.rpt文件右击报表设计界面空白处--"添加/删除数据库";
(5)"数据库专家"窗口展"项目数据"-"展ADO.NET数据集"--"DSCustomer(DataSet)"--"选择CustomerList表";
(6)"CustomerList"表填加"选定表"点击"确定";
(7)设计报表界面界面拖放CustomerList表字段;
3、建立Crystal Report Viewer控件,编写台代码
(8).aspx页面建立Crystal Report Viewer,根据需要设置其属性;
(9)代码访问数据库并数据填充DataSet;
private void BindReport()
{
RptRenderContract ReportDoc = new RptRenderContract();//.rpt文件应类
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["connStr"]);
DsCustomer ds = new DsCustomer(); //创建DataSet象ds
string strSelect = "SELECT * FROM CustomerList ;
SqlDataAdapter dadCustomer = new SqlDataAdapter(strSelect,conn);
dadRender.Fill(ds,"CustomerList"); //向ds填充CustomerList表
ReportDoc.SetDataSource(ds); //设置.rpt文件应类数据源
CRVContract.ReportSource = ReportDoc; //设置Crystal Report Viewer报表源
}
(10)Page_Load使用BindReport()函数
五、Crystal Report使用技巧
1、使用公式字段
Crystal Report公式编辑器,允许发员用Basic语Crystal(类Pascal)语编辑公式字段Example,:
Dim strCpuType As String
Select Case {CpuLeaseList.CpuType}
Case 1
strCpuType = "惠普CPU"
Case 2
strCpuType = "曙光CPU"
Case 3
strCpuType = "苹CPU"
End Select
formula = strCpuType
点遗憾Crystal Report公式编辑器没提供函数帮助说明,些函数用需要猜比获取期字段月份公式:
formula = Month({CpuLeaseList.LeaseStartTime})
总要发满足客户需求复杂报表必须熟练使用公式字段
2、数据排序
数据排序利用两种式
式1--用SQL语句先排序排序数据绑定报表
式2--利用Crystal Report排序功能右击报表设计界面空白处--报表--排序记录--根据需要设置排序字段
3、组报表数据
认Crystal Report组报表功能非强内置功能强根据字段组功能功能非用仅仅用SQL 语句Group BY 些功能能实现比SQL 语句:
SELECT DateName(mm, LeaseStartTime) AS [Month], sum(datediff(hh,LeaseStartTime,LeaseEndTime)) AS [Hour] FROM CpuLeaseList where LeaseStartTime
BETWEEN '2006-1-1' AND '2006-12-31'
GROUP BY DateName(mm,LeaseStartTime)
SELECT 所能筛选字段能 GROUP BY 跟相同字段或聚合函数运算字段问题Crystal Report组报表却容易解决
4、使用图表交叉表
快速创建图表交叉表Crystal Report优点要适节(sector)插入图表或交叉表设置些要显示字段OK
5、报表导打印
报表集Web应用程序,需要自编写代码实现报表导打印(报表Windows应用已经集导打印功能).据说,Visual studio 2005Crystal reportWeb应用集导打印功能.
遗憾,Visual studio2003面用代码实现导打印,Crystal Report稳定,现莫名其妙运行错误: ( 问题让我郁闷)
异详细信息: CrystalDecisions.CrystalReports.Engine.LogOnException: 登录失败
报表导需要注意:1)必须设置导目录相应安全权限,否则往本计算机磁盘写文件. 2)要实现打印导,每Page_Load()必须要绑定DataSet数据报表.(点要非注意!)
导代码:
private void btnExport_Click(object sender, System.EventArgs e)
{
CrystalDecisions.Shared.DiskFileDestinationOptions DiskOpts = new CrystalDecisions. Shared. DiskFileDestinationOptions();
ReportDoc.ExportOptions.ExportDestinationType = CrystalDecisions. Shared.ExportDestinationType.DiskFile;
switch (ddlFormat.SelectedItem.Text)
{
case "Rich Text (RTF)":
ReportDoc.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.RichText;//
DiskOpts.DiskFileName = "D://Output.rtf";
break;
case "Portable Document (PDF)":
ReportDoc.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat;//
DiskOpts.DiskFileName = "D://Output.pdf";
break;
case "MS Word (DOC)":
ReportDoc.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.WordForWindows;//
DiskOpts.DiskFileName = "D://Output.doc";
break;
case "MS Excel (XLS)":
ReportDoc.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.Excel;//
DiskOpts.DiskFileName = "D://Output.xls";
break;
default:
break;
}
ReportDoc.ExportOptions.DestinationOptions = DiskOpts;
ReportDoc.Export();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询