微软rdlc报表讨论与制作

2024-05-10 11:58
文章标签 制作 讨论 微软 报表 rdlc

本文主要是介绍微软rdlc报表讨论与制作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

终于有东西可以写了,在此把在做rdlc报表中过程中遇到的一些问题记录下来,希望和我当时一样迷惑的盆友能够迅速入门和开发,本人的项目是Asp.net,我发现这方面的资料很少,虽然与winform有很多相似,但毕竟不是完全相同,在这个项目中用到的easyui和异步加载等技术,在此过程中遇到的问题在本文同样有解决之道!(动态加载数据源)

接下来说一下步骤:

1)第一明确自己的报表要求,需要的字段,因为我们自己设置数据源,我的建议先设计DataSet1.xsd文件,单击项目右键->添加->新建项->数据->DataSet.xsd文件

建立之后,在界面单击右键->表->然后设置字段!(最好把Dataset.xsd 放置根目录下,方便rdlc文件找到)

图片(1):


2)新建一张rdlc报表,在此过程中发现不能找到数据源添加的定义,解决方法,在视图中-》报表数据(Vs2010)然后-》新建数据集-,数据源选择DataSet1,然后点击OK,就完成了!在设计过程中有时候需要输入参数如日期或者其他参数,

这时可以在右侧的报表数据中的参数中-》单击右键添加参数(把允许为Null和允许为空白值勾上),下面就可以设置报表了!


上面日期后面的就是自定义的参数 ,制表日期是采用rdlc报表中的函数,在制表日期后面放入一个文本框,然后单击文本框右键-》表达式-》=now().toShortday();可以先输入now()然后点会自动弹出方法。

下面是一条黑线,可以在工具栏中,选择折线图,然后拉直。

接下来,在下面放入一个表-,在表中的标题处,填写个字段的名称,数据可以选择自动,这个很简单。这些做完了!恭喜你一个rdlc文件做好了,如果要好看,自己可以美化!


2)下面讲解如何使用Rdlc报表,新建一个页面!如图:


2.1)在改图中使用了easyui和异步加载技术(<asp:scriptmanager>必须要添加,否则,reportview报错!)在使用<asp:updatepanel >时发现easyui中日期不能正常显示,变成了一个普通文本框,查询资料发现原来加载时的顺序问题解决方法如下:

<code>

<script type="text/javascript">

function reload() {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}

function EndRequestHandler() {

// easyui 重新渲染updatepanel1
$.parser.parse($('#panel1').parent());//panel1 为<asp:updatepanel >的ID
}

$(function () {
reload();
}); 
</script>

</code>

这段代码就可以解决easyUI在异步加载中的失效问题。下面就添加一个reportview,单击右侧找到rdlc报表!(在说一下reportview的Style,Width="100%"时,reprotview 就无缝衔接页面!)

给出界面代码:

<code>

<head runat="server">
<title>报表</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="../Scripts/icon.css" rel="stylesheet" type="text/css" />
<link href="../Scripts/default/easyui.css" rel="stylesheet" type="text/css" />
<script src="../Scripts/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="../Scripts/Cookie.js" type="text/javascript"></script>
<script src="../Scripts/jquery.easyui.min.js" type="text/javascript"></script>
<script src="../Scripts/jquery.easyui.min.1.2.2.js" type="text/javascript"></script>
<script src="../Scripts/easyui-lang-zh_CN.js" type="text/javascript"></script>
<script type="text/javascript">
function reload() {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}

function EndRequestHandler() {
// easyui 重新渲染updatepanel1
$.parser.parse($('#panel1').parent());
}

$(function () {
reload();
}); 
</script>
<style type="text/css">
.style1
{
height: 25px;
}
</style>
</head>
<body style="margin-top:5px;margin-left:5px">
<form id="form1" runat="server">
<div >
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div id="search" class="easyui-panel"title="查询条件"  collapsible="true" >
<asp:UpdatePanel ID="panel1" runat="server">
<ContentTemplate>
<table border="0" cellpadding="0" cellspacing="2">
<tr>
<td class="style1">日期:</td><td class="style1">
<input class="easyui-datebox" id="date1" data-options="sharedCalendar:'#cc'" style="width:120px" runat="server" >到
<input class="easyui-datebox" data-options="sharedCalendar:'#cc'" style="width:120px"  id="date2" runat="server" >
</td>
<td><asp:RadioButton ID="rad_any" runat="server" Text="任意" checked="true"
GroupName="report" /></td>
<td class="style1"><asp:RadioButton ID="rad_day" runat="server" Text="日报表" 
GroupName="report" AutoPostBack="true" 
oncheckedchanged="rad_day_CheckedChanged"/></td>
<td class="style1"><asp:RadioButton ID="rad_week" runat="server" GroupName="report" 
Text="周报表" AutoPostBack="true" 
oncheckedchanged="rad_week_CheckedChanged" /></td>
<td class="style1"><asp:RadioButton ID="rad_mon" runat="server" Text=" 月报表" 
GroupName="report"  AutoPostBack="true" 
oncheckedchanged="rad_mon_CheckedChanged"/></td>
<td class="style1"><asp:RadioButton ID="rad_year" runat="server" Text="年报表" 
GroupName="report" AutoPostBack="true" 
oncheckedchanged="rad_year_CheckedChanged" /></td>
<td >
<asp:Button ID="btn_search" runat="server" 
Text="查询" Height="18px" Width="41px" οnclick="btn_search_Click"  /></td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div>
<table border="0" cellpadding="0" width="100%">
<tr><td style="width:100%">
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Height="310px" 
Width="100%" Font-Names="Verdana" Font-Size="8pt" InteractiveDeviceInfos="(集合)" 
WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt">
<LocalReport ReportPath="Report\Report.rdlc">
</LocalReport>
</rsweb:ReportViewer>
;</td></tr>
</table>
</div>
</div>
</form>
</body>
</html>

</code>




2.2)一个界面就设计完成了,为何把这段代码放上来,是这样的,前段时间研究easyui发现在vs2010 asp.net 中有很多问题,本打算写一篇文章,但是发现自己只是能使用,并不太会,使用时常常出现意想不到的的问题,因此在此供上代码(vs2010中)!

3)工作快要到结尾了,就是后台代码(这是绑定报表数据源的函数,用sql语句生成DataTable,参数传入进去就可以了!)

<code>

 protected void bindreport(DataTable dt,string d1,string d2)
{


this.ReportViewer1.LocalReport.DataSources.Clear() ;//此句很重要,如果没有第二次查询 rdlc就不会刷新,显示新数据!
// this.ReportViewer1.LocalReport.ReportPath = "Report/Report.rdlc";
this.ReportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("DataSet1", dt));
ReportParameter rp = new ReportParameter("ReportParameter1", d1);//rdlc中的自定义参数
ReportParameter rp2 = new ReportParameter("ReportParameter2", d2);
//ReportParameter rp3 = new ReportParameter("ReportParameter3", count);
this.ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp, rp2 });
//报表缩放,随页宽改变
this.ReportViewer1.ZoomMode = ZoomMode.PageWidth;
this.ReportViewer1.LocalReport.Refresh();
}

</code>



寄语:我希望每个看见这个文章的同学,能够看了此篇之后,自己研究得出一些新的东西,把它写下来,方便更多人!






这篇关于微软rdlc报表讨论与制作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/976377

相关文章

多线程解析报表

假如有这样一个需求,当我们需要解析一个Excel里多个sheet的数据时,可以考虑使用多线程,每个线程解析一个sheet里的数据,等到所有的sheet都解析完之后,程序需要提示解析完成。 Way1 join import java.time.LocalTime;public class Main {public static void main(String[] args) thro

用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:中(人物移动、跳起、静止动作)

上回我们学到创建一个地形和一个人物,今天我们实现一下人物实现移动和跳起,依次点击,我们准备创建一个C#文件 创建好我们点击进去,就会跳转到我们的Vision Studio,然后输入这些代码 using UnityEngine;public class Move : MonoBehaviour // 定义一个名为Move的类,继承自MonoBehaviour{private Rigidbo

微软正式推出 Spartan 斯巴达浏览器

作为用于替代 IE 浏览器的下一代继任者,微软的 Project Spartan 斯巴达浏览器可算是吊足了玩家们的胃口!如今,在最新的 Windows 10 Build 10049 版本起,它终于正式登场了。 斯巴达浏览器搭载了全新的渲染引擎、新的用户界面并集成了 Cortana 语音助手。功能上新增了稍后阅读列表、阅读视图、F12开发者工具、支持网页注释 (手写涂鸦),可以保存到 O

BIRT报表script

1.隔行高亮显示 1. 在布局(Layout)中,选择Table-Detail的行。如下图:   2. 然后选择Script,打开脚本窗口顶部的方法列表并选择onPrepare,如图所示。 var count=0;   3. 最后打开脚本窗口顶部的方法列表并选择 onCreate,如图所示: count++; if (count % 2 != 0) {   style.se

Birt报表开发实战

我就截图描述得了,没什么含金量,看图基本明白的。 1.开始 a.创建报表文件 b.数据源配置 c.配置数据集 2.网格报表 拖拉式操作,很方便 3.预览效果 其他报表的操作也基本不难,就不扯了! 2.级联参数 官方视频教程:http://demo.actuate.com/demos/cascade/cascade.html

BIRT--商业智能和报表工具,从零开始

1.简介 BIRT (Business Intelligence and Reporting Tools), 是为 Web 应用程序开发的基于 Eclipse 的开源报表系统,特别之处在于它是以 Java 和 JavaEE 为基础。BIRT 有两个主要组件:基于 Eclipse 的报表设计器,以及部署到应用服务器上的运行时组件。 2.下载 官网下载网址:http://download.ec

BIRT 报表的自动化测试

来源:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-birttest/如何为 BIRT 报表编写自动化测试用例 BIRT 是一项很受欢迎的报表制作工具,但目前对其的测试还是以人工测试为主。本文介绍了如何对 BIRT 报表进行自动化测试,以及在实际项目中的一些测试实践,从而提高了测试的效率和准确性 -------

OpenStack离线Train版安装系列—0制作yum源

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版

OpenStack镜像制作系列5—Linux镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作

OpenStack镜像制作系列4—Windows Server2019镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录  CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作系