1.新建一个报表,设置报表之后,使用强类型的DataSet  xsd 配置数据源,对报表中的使用最常用的是文本框和表格控件

2.新增WebForm窗体,拖一个ReportViewer控件,在WebForm中写入以下代码:

WebForm html:

<%@ Page Language="C#" MasterPageFile="~/Site_admin.Master" AutoEventWireup="true" CodeBehind="LotteryBill.aspx.cs" Inherits="XieYun.WebAdmin.ReportsALL.Organization.LotteryBill" %>

<%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">

</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div> &nbsp;&nbsp;&nbsp; 兑奖时间:
<input id="searchStarTime" runat="server" name="searchStarTime" data-options="showSeconds:false" class="easyui-datetimebox" style="width: 140px" />
--
<input class="easyui-datetimebox" runat="server" id="searchEndTime" name="searchEndTime" data-options="showSeconds:false" style="width: 140px" />
<span>
<asp:Button ID="btnSearch" runat="server" Text="查询" OnClick="btnSearch_Click" />
</span>
</div>
<div>
<rsweb:ReportViewer ID="reportViewer2" runat="server" Font-Names="Verdana" Font-Size="8pt" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Height="629px" Width="851px">
</rsweb:ReportViewer>
</div>
</asp:Content>

使用ReportViewer时必须使用ScriptManager控件

后端代码

 protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
string strWhere = string.Format(" LotteryStatusEnum={0} and IsVirtual=0", (int)LotteryStatusEnum.TransferSuc);
LoadReportData(strWhere);
}
} /// <summary>
/// 加载报表数据
/// </summary>
/// <param name="strWhere"></param>
private void LoadReportData(string strWhere)
{
reportViewer2.ProcessingMode = ProcessingMode.Local;
reportViewer2.LocalReport.ReportEmbeddedResource = "XieYun.WebAdmin.ReportsALL.rdlc.LotteryBillReport.rdlc"; LotteryRecordManager lotteryRecordManager = new LotteryRecordManager();
int recordCount = ;
List<LotteryRecordInfo> list = lotteryRecordManager.GetPageList(, int.MaxValue / , strWhere, "", out recordCount, false); if (list != null && list.Count > )
{
foreach (var info in list)
{
info.PrizeEnumStr = EnumValueNameDescriptionParse.GetEnumValueNameDescription(typeof(PrizeEnum), info.PrizeEnum).Description;
info.PayEnumStr = EnumValueNameDescriptionParse.GetEnumValueNameDescription(typeof(PayEnum), info.PayEnum).Description;
;
}
}
else
{
list = new List<LotteryRecordInfo>();
} DataTable dt = lotteryRecordManager.ToDataTable2(list, "PrizeEnumStr", "PayEnumStr");
if (dt == null)
{
dt = new DataTable();
}
ReportDataSource rds_shipperOrder = new ReportDataSource("DataSet1", dt);
reportViewer2.LocalReport.DataSources.Clear();
reportViewer2.LocalReport.DataSources.Add(rds_shipperOrder); reportViewer2.LocalReport.Refresh();
} /// <summary>
/// 单击搜索报表数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSearch_Click(object sender, EventArgs e)
{
string searchStarTime = this.searchStarTime.Value;
string searchEndTime = this.searchEndTime.Value;
DateTime dtSearchStartTime;
DateTime dtSearchEndTime;
string strWhere = string.Format(" LotteryStatusEnum={0} and IsVirtual=0 ", (int)LotteryStatusEnum.TransferSuc);
if (!string.IsNullOrWhiteSpace(searchStarTime)&&DateTime.TryParse(searchStarTime.Trim(),out dtSearchStartTime))
{
strWhere += string.Format(" AND TransferTime >='{0}' ",dtSearchStartTime);
}
if (!string.IsNullOrWhiteSpace(searchEndTime) && DateTime.TryParse(searchEndTime.Trim(), out dtSearchEndTime))
{
strWhere += string.Format(" AND TransferTime <='{0}' ", dtSearchEndTime);
} LoadReportData(strWhere); }

使用VS自带的报表RDLC结合报表控件ReportViewer使用的更多相关文章

  1. [Ext JS 4] 实战之 带week(星期)的日期选择控件(三)

    前言 在 [Ext JS 4] 实战之 带week(星期)的日期选择控件(二) 的最后,有提到一个解决方案. 不过这方案有一个条件  ==> “2. 每年的周数从(1-52), 如果超过52 周 ...

  2. 学习懈怠的时候,可以运行Qt自带的Demo,或者Delphi控件自带的Demo,或者Cantu书带的源码,运行一下Boost的例子(搞C++不学习Boost/Poco/Folly绝对是一大损失,有需要使用库要第一时间想到)(在六大的痛苦经历说明,我的理论性确实不强,更适合做实践)

    这样学还不用动脑子,而且熟悉控件也需要时间,而且慢慢就找到感觉了,就可以精神抖擞的恢复斗志干活了.或者Cantu书带的源码. 并且可以使用Mac SSD运行Qt的Demo,这样运行速度快一点. 此外, ...

  3. 一个带展示的jsp上传控件模型

    带展示上传控件的基本模型,无样式 jsp部分: <td> <form id="form1" enctype="multipart/form-data&q ...

  4. 【Android】带底部指示的自定义ViewPager控件

    在项目中经常需要使用轮转广告的效果,在android-v4版本中提供的ViewPager是一个很好的工具,而一般我们使用Viewpager的时候,都会选择在底部有一排指示物指示当前显示的是哪一个pag ...

  5. VS2015中使用报表控件(ReportViewer)的方法

    没有报表,一般默认安装之后会出现这种情况,在安装的时候选择自定义安装,把Microsoft Office 开发人员工具.Microsoft SQL Server Data Tools勾选上,安装之后就 ...

  6. [Ext JS 4] 实战之 带week(星期)的日期选择控件

    前言 Ext JS 3 和 Ext JS 4中都有提供日期选择的组件(当然早期版本也有). 但是有一些日期选择的需求是要看到星期,就是日期中的哪一天是这一年的第几周. 遗憾的是Ext js 并没有提供 ...

  7. 实现带复选框的TreeView控件

    实现效果: 知识运用: TreeView控件的CheckView属性 //是否在树形视图控件中显示复选框 public bool CheckBoxs{ get;ser } 实现代码: TreeView ...

  8. 制作带复选框的ListView控件

    实现效果: 知识运用   ListView控件的GridLines //设置是否在ListView控件中显示网格线 public bool GridLines{get;set} 和CheckBoxes ...

  9. C#线程调用带参数的方法,给控件赋值

    System.Threading.Thread thread = new System.Threading.Thread(() => { //各种业务 //定义一个委托 public deleg ...

随机推荐

  1. 更改动软代码生成器模板 验证Model数据合法性

    1.第一个模板 判断字段是否为空 类 IsNullableType.cmt static public partial class CommonType { public static bool Is ...

  2. Linux 下模拟Http 的get or post请求(curl和wget两种方法)

    一.get请求: 1.使用curl命令: curl "http://www.baidu.com"  如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地curl -i & ...

  3. 不要在初始化方法和dealloc方法中使用Accessor Methods

    苹果在<Advanced Memory Management Programming Guide>指出: Don’t Use Accessor Methods in Initializer ...

  4. 锋利的jQuery-7--$.extend()

    $.extend()主要有两个功能: 1.扩展jQuery对象 jQuery.extend({ min: function(a, b) { return a < b ? a : b; }, }) ...

  5. awk命令--update20150120

    简介 awk是一个强大的文本分析工具,把文件逐行读入,以空格为默认分隔符分割成field,切开的部分再进行各种分析处理. 模式和动作: 任何awk语句都是由模式和动作组成,模式部分决定动作语句何时触发 ...

  6. Mutex和内存可见性

    http://ifeve.com/mutex-and-memory-visibility/ POSIX内存可见性规则 IEEE 1003.1-2008定义了XBD 4.11内存同步中的内存可见性规则. ...

  7. 防止ajax请求重发

    debounce  ajax请求,防止用户点击过快造成重发 按钮disabled处理,显示loading,防止用户失去耐心,重复点击 表单提交也可以同样处理.

  8. Cannot find class [org.apache.commons.dbcp.BasicDataSource]

    错误:Cannot find class [org.apache.commons.dbcp.BasicDataSource] 原因:缺少commons-dbcp.jar

  9. mysql 查询技巧

    查出来的结果每一行显示一条,中间以*号分隔. select * from tableName limit 10 \G mysql 随机取数据 SELECT * FROM table_name ORDE ...

  10. 在C#中开启事务

    1.为什么要开启事务: 举一个简单的例子:在银行业务中,有一条记账原则,即又借有贷.为了保证这种原则,每发生一笔银行业务,就必须保证会计账目上借方科目和贷方科目至少个少一笔,并且这两笔要么同时成功,要 ...