rdlc mysql_RDLC 报表开发

rdlc mysql_RDLC 报表开发RDLC 报表开发打开 VisualStudio 新建 ASP NET 网站添加数据集会自动调出数据集配置窗口 TableAdapter 如果上面的窗口没有自动调出 可以如下图 可以调出上面的 TableAdapter 窗口新建立数据库连接下面的这一步会将数据库连接保存到 config 文件中下面的这一步可以 选择生成 SQL 的方式让我们先回到 SQLServerQue 打开 SQLSe

RDLC报表开发

打开Visual Studio 2005

新建ASP.NET网站

添加数据集

会自动调出数据集配置窗口TableAdapter

如果上面的窗口没有自动调出,可以如下图,

可以调出上面的TableAdapter窗口

新建立数据库连接

下面的这一步会将数据库连接保存到config文件中

下面的这一步可以,选择生成SQL的方式

让我们先回到SQL Server Query Analyzer

打开SQL Server查询分析器

创建如下图的存储过程

然后回到Visual Studio 2005

选择使用现在的存储过程,下一步

这里,我们只需要选择所需要的存储过程,如刚才建立的EmployeeReport即可

点击 完成。完成TableAdapter向导的配置.

添加报表项

拖动一个Table到报表设计器中

选择网站数据集中的字段,把它拖动到表格的列中

新建立一个ASPX页面,拖动一个Report Viewer控件到页面中

在ReportViewer任务窗口中,选择刚才建立的rdlc文件

生成解决方案,然后执行

看到结果,报表执行完成

至此报表开发成功。

注意

1.刚才的SQL脚本

CREATE PROCEmployeeReport

AS

SELECT* FROM Employee

GO

实际的报表开发中,一定不要用SELECT * ,只取报表中需要查看的字段。

2.有时候,可能需要用户选择一些条件,有选择性的查看报表。而不是全部绑定数据

如上图,用户可能只需要查看2008-9-29至2008-9-30时间段之间的数据

则作法如下

先建立好如上图的ASPX页面,在View Report事件中写如下的程序

ReportViewer1.LocalReport.ReportPath = AppDomain.CurrentDomain.BaseDirectory + “/Report/Request.rdlc”;

DateTime dtFrom =Convert.ToDateTime(txtDateFrom.Text);

DateTime dtTo =Convert.ToDateTime(txtDateTo.Text);

string requester = txtRequester.Text;

string dept = txtRequestDept.Text;

string material = ddlMaterial.SelectedValue;

string iprstatus = ddlStatus.SelectedValue;

DataTable reqrpt = ReportDB.RequestReport(dtFrom, dtTo, material, dept,requester, iprstatus);

if (reqrpt != null)

{

ReportViewer1.LocalReport.DataSources.Clear();

ReportViewer1.LocalReport.DataSources.Add(

new Microsoft.Reporting.WebForms.ReportDataSource(“Request_RequestReport”, reqrpt));

ReportViewer1.LocalReport.Refresh();

}

ReportViewer1.LocalReport.Refresh();

根据用户所选的参数,把数据值传到SQL语句中即可.下面是RequestReport方法的源码

DataTable RequestReport(DateTime dtFrom, DateTime dtTo, string pMaterial, string pDept, string pRequester, string pIPRStatus){

string MySQL = Purchase;

string whDate = ” RequestDate BETWEEN ‘{0}’AND ‘{1}'”;

MySQL = MySQL + string.Format(whDate, dtFrom, dtTo);

string whMaterial = “ANDMaterialCode='{0}’ “;

if (pMaterial != “ALL”)

{

MySQL = MySQL + string.Format(whMaterial, pMaterial);

}

string whDept = ” ANDRequestDepartment='{0}’ “;

MySQL = MySQL + string.Format(whDept, pDept);

stringwhRequester=” ANDRequester='{0}’ “;

if(pRequester!=”ALL”)

MySQL = MySQL + string.Format(whRequester, pRequester);

string whIPRStatus = ” AND IPRStatus={0}”;

if (pIPRStatus != “ALL”)

{

MySQL = MySQL + string.Format(whIPRStatus, pIPRStatus);

}

IDataProvider privider = DataProvider.CreateDataProvider();

DataSet ds = privider.RetriveDataSet(MySQL);

if (ds != null && ds.Tables.Count > 0)

return ds.Tables[0];

else

return null;

}

const string Purchase=”SELECT Name FROM Employee”;

3.设计报表时,可以用上述的方法,实际运行时,可以替换成SQL语句,传到ReportDataSource中即可,只要相当的表结构字段是存在的。

4.报表的定义是XML结构的,如果熟悉报表的定义格式规范,可以用文本编辑器打开直接修改。

5.如果采用SQL Server 2005的服务器端报表,可能还会有进一步的方便设计和开发的地方.这里采用的是.net framework的组件,客户端只需要安装.net framework2.0即可,无需安装额外的组件.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227166.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午9:48
下一篇 2026年3月16日 下午9:48


相关推荐

  • css水平居中最佳写法

    css水平居中最佳写法ul position absolute left 50 li position relative right 50 此方法实现水平居中 兼容性强 扩展性强

    2026年3月17日
    2
  • android图片资源加密,Android平台图像文件加密

    android图片资源加密,Android平台图像文件加密传统计算机平台下的图像加密技术已经得到了广泛的研究和应用,但移动平台受限于当前的硬件架构,无法直接继承传统平台的安全性技术。针时智能手机等移动平台中的图像信息安全问题,提出了一种基于Android移动平台的图像加密方案。一、图像加密技术1、传统图像加密技术分析传统的图像加密技术主要基于现代密码体制。通常将图像像素信息看作一维数据流,在密钥的控制下,利用加密算法(常用加密算法如EDS、AES、RC6…

    2022年5月17日
    47
  • IGMP协议原理_IGMP协议详解

    IGMP协议原理_IGMP协议详解IGMP协议概述IGMP(InternetGroupManagementProtocol)因特网组管理协议,是TCP/IP协议簇中负责IP组播成员管理的协议。IGMP协议运行于主机与主机直接相连的组播路由器之间,主要用于维护组播成员关系。IGMP发展了三个版本:IGMPv1:定义了基本的组成员查询和报告过程。IGMPv2:添加了组成员快速离开的机制。IGMPv3:成员可以指定接收…

    2025年11月18日
    3
  • setInterval定时刷新,清空定时器clearInterval

    setInterval定时刷新,清空定时器clearInterval注 定时器对象不清空 会造成刷新效果叠加 随时间增加 刷新变频繁 varmyInterva 定义定时器对象 清空对象 if myInterval window clearInterva myInterval 定时器对象赋值 myInterval setInterval InitProduct pageIndex 10000

    2026年3月17日
    2
  • Error filterStart 错误解决「建议收藏」

    Error filterStart 错误解决「建议收藏」2019独角兽企业重金招聘Python工程师标准>>>…

    2022年7月11日
    19
  • Iocomp 5.12 SP6 ActiveX Crack

    Iocomp 5.12 SP6 ActiveX Crack不需要安装,免去大家下载,Q578867473安装需要注册账号的麻烦的IocompActiveX/VCL标准包是由29个控件组成的套件,Q578867473用于使用ActiveX或VCL开发环境创建专业的仪表应用程序。这些控件可用于科学,工程,医学,石油和天然气,半导体,工厂自动化,航空航天,军事,机器人技术,电信,楼宇和家庭自动化,HMI,SCADA以及数百种其他类型的应用程序。所有Iocomp控件均启用OPC。如果您的项目需要OPC连接,则可以将任何属性连接到OPC项/标签。所有连接都可

    2022年7月25日
    13

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号