钻取报表

using Microsoft.Reporting.WinForms;
using System;
using System.Data;
using System.Windows.Forms;

namespace WindowsFormsApp13
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

    ReportViewer reportViewer = new ReportViewer();//创建报表
    private void button1_Click(object sender, EventArgs e)
    {

        reportViewer.ProcessingMode = ProcessingMode.Local;//设置本地处理模式
        reportViewer.Dock = DockStyle.Fill;//设置报表控件填满窗体
        this.groupBox1.Controls.Add(reportViewer);//填加报表控件到窗体
        reportViewer.LocalReport.DataSources.Clear();//清空报表数据
        reportViewer.LocalReport.ReportEmbeddedResource = "WindowsFormsApp13.Report1.rdlc";//设置rdlc文件,ReportEmbeddedResource(嵌入式模式)
                                                                                           //reportViewer1.LocalReport.ReportPath = "Book.Report1.rdlc";
        reportViewer.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", LoadDepartmentsData()));//DataSet1是设计报表时指定的数据集名称
        reportViewer.Drillthrough += new DrillthroughEventHandler(DemoDrillthroughEventHandler);//添加钻取事件
        reportViewer.LocalReport.Refresh();
        reportViewer.RefreshReport();//刷新报表,这句一定要有
    }
    private DataTable LoadDepartmentsData()
    {
        DataSet dt = new DataSet();
        string sql = "select Bookauthor, ";
        sql += "sum(case when TypeName='操作系统' then bookprice else 0 end) as 操作系统, ";
        sql += "sum(case when TypeName='办公软件' then bookprice else 0 end) as 办公软件, ";
        sql += "sum(case when TypeName='计算机语言' then bookprice else 0 end) as 计算机语言 ";
        sql += "from (select BookAuthor,TypeName,BookPrice from book left join BookType on book.BookType=BookType.TypeId) as a group by BookAuthor";
        dt = SqlHelper.SqlHelper.GetDataSet(sql);
        return dt.Tables[0];
    }
    private DataTable LoadEmployeesData()//获取要钻取的数据表
    {
        DataSet dt = new DataSet();
        string sql = "select BookAuthor,BookName,StorageInNum from book";
        dt = SqlHelper.SqlHelper.GetDataSet(sql);
        return dt.Tables[0];
    }
    void DemoDrillthroughEventHandler(object sender,DrillthroughEventArgs e)//给钻取报表添加数据源
    {
        LocalReport localReport = (LocalReport)e.Report;
        localReport.DataSources.Add(new ReportDataSource("DataSet1", LoadEmployeesData()));

    }
}

}

原文地址:https://www.cnblogs.com/zhujie-com/p/12342565.html

时间: 2024-10-15 08:21:39

钻取报表的相关文章

报表开发实例——动态多层次KPI钻取报表(II)

在报表开发实例--动态多层次KPI钻取报表(I)中,我们说到了动态层次报表需要层次钻取的场景,并介绍了利用oracle复杂sql的实现方法.这里仍然通过该报表来了解一下使用"脚本+本地文件"的开发方法. 各级部门KPI报表的格式和具体要求参见(I).有所不同的是,报表数据源从数据库表变为本地文件:tree.b(树形结构维表)和kpi.b(指标事实表),数据如下图: Tree文件数据 Kpi文件数据 Tree的叶子节点,通过id字段与kpi表关联.KPI文件每个ID每天都会新增kpi记录

皕杰报表钻取报表超链接地址

钻取报表的超链接地址可以是绝对地址,也可以是相对地址. 如:'http://www.XXX'"/iface/ReportEmitter?rpt=Demo/"+urlenc('参数报表','utf-8')+"/"+urlenc('时间参数','utf-8')+".brt?ms=year="+ a5br/>报表中相对地址从wabapp下主目录写起,且参数用拼串的形式拼接,可以是@参数名也可以是单元格名称.有人写的超链接没有问题,为什么查不出数据

报表开发实例——动态多层次KPI钻取报表(I)

在报表项目中有时会有动态层次报表,而且还需要层次钻取的场景,开发难度较大.这里记录了使润乾集算报表开发<各级部门KPI报表>的过程. <各级部门KPI报表>初始状态如下图: 当前节点是根节点"河北省",要求报表显示当前节点的下一级节点"地市"汇总的KPI数值.Kpi又分为普通指标和VIP指标两类,共四项.如果点击"石家庄"来钻取的时候,要求能够将石家庄下一级的KPI汇总指标显示出来,如下图: 点击"中心区&quo

SSRS 2012 交互式报表 -- 钻取式报表

SSRS 2012 交互式报表 -- 钻取式报表 当分析者运用报表观察汇总数据时,当对某个数据感兴趣或是察觉异常时,往往需要调阅汇总值,以仔细深入分析.这种需求称之为钻取(Drill-Through),钻取的观念也是来自于多维度分析,不过大家要注意别与刚才介绍的深化(Drill-Down)报表搞混了. 所谓的钻取式报表是由母子报表(两张独立的报表)所构成,在母报表可以预先定义某些区域经点击后可以调用子报表,使用者借由触发母报表的单元格,以导向定义好的子报表.同时在母报表连接至子报表的过程中,可以

ActiveReports 报表应用教程 (1)---Hello ActiveReports

原文:ActiveReports 报表应用教程 (1)---Hello ActiveReports 在开始专题内容之前,我们还是了解一下 ActiveReports 是一款什么产品:ActiveReports是一款在全球范围内应用非常广泛的报表控件,以提供.NET报表所需的全部报表设计功能领先于同类报表控件,包括对交互式报表的强大支持.丰富的数据可视化形式.与Visual Studio的完美集成.以及对WPF / WinForm / ASP.NET / Silverlight和Windows A

ActiveReports 报表控件官方中文入门教程 (3)-如何选择页面报表和区域报表

原文:ActiveReports 报表控件官方中文入门教程 (3)-如何选择页面报表和区域报表 本篇文章将介绍区域报表和页面报表的常见使用场景.区别和选择报表类型的一些建议,两种报表的模板设计.数据源(设计时和运行时)设置.和浏览报表的区别. ActiveReports 报表控件官方中文入门教程 (1)-安装.激活以及产品资源 ActiveReports 报表控件官方中文入门教程 (2)-创建.数据源.浏览以及发布 本篇文章包括以下部分: 1.区域报表和页面报表的区别 两种报表的具体应用场景 区

crm制作报表添加导航

报表导航实现了动态的交互式报告体验.通过使用各种类型的操作,报表让用户导航到详细报表.Microsoft Dynamics CRM 记录或其他网站 动态钻取到 Microsoft Dynamics CRM 可以钻取报表来导航到 Microsoft Dynamics CRM Web 窗体.按以下步骤实现钻取报表: 向报表中添加图像或值项(如文本框).此项的 Value 属性包含使用 Microsoft Dynamics CRM 的基址和引用特定记录的参数生成 URL 的代码. 用户单击报表项时,会

强大的报表前端展现功能

强大的报表前端展现功能,企业数据信息化,数据信息可视化日渐成为当前企业数据管理的趋势,为满足不同用户对报表展现的不同需求,快逸报表提供了强大的报表前端展现功能. 灵活的查询交互 报表为用户提供了通用的查询面板用于各种条件过滤,在报表展现界面,用户设定各查询条件的值后点击查询按钮,报表数据便将根据输入的条件值动态查询出相应的结果. 形象的图表结合 报表以形象美观的图表化展现形式,更生动,更直观,更灵活的展现数据的内在关系,形象地展示数据的状态,为数据的分析与决策提供辅助. 多种统计图类型 报表提供

葡萄城报表V11 SP2新版本震撼发布!

葡萄城报表正式发布 v11.2 版本,强势推出国内首创的基于HTML5的在线报表设计器,从此报表设计告别桌面应用程序,随时随地修改报表,真正跨平台操作,从而使任何报表用户更快速的响应报表业务变化! 在线报表设计器/Web报表设计器 全在线设计,无需安装客户端设计器,能与 B/S 系统直接集成 采用 OFFICE 的操作体验,易于学习,无论软件开发者,还是最终用户都能很快上手 使用选项设置窗格替代传统的属性窗口,简单轻松配置报表元素行为 内置报表主题与元素样式,无需专业美工,也能创建外观精美的报表