日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RDLC报表系列--------钻取报表

發布時間:2024/1/17 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RDLC报表系列--------钻取报表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

鉆取報表開發步驟:

?? 先看總體效果:如圖

??

點擊單據編號

?

?下面就做個看看...

?? 1.先添加一個RDLC報表文件作為鉆取報表.

???????? 添加一個RDLC報表,在設計界面添加一個表格Table,配置好數據源如圖:

2.設置鉆取報表對應的字段.

?? (1) 也許看到上面orderID為什么和別的不一樣,多了個下劃線了吧!不急,這里看怎么設置的.

??? 鼠標點擊orderID這列,右擊文本框屬性,找到字體選項卡如圖:

在效果里將默認改為下劃線。

?(2)下面設置鉆取報表.

?? 然后再選擇操作選項卡,第一步:設置啟用為超鏈接為:轉到報表(R).第二步:設置指定報表,指定報表里面填寫鉆取子報表的報表名如(DrillThoughReport) 不要加.rdlc 后綴名哦.第三步:添加參數,添加參數名和參數的值(值可以是Table 的列值和參數等)

總體設置如圖:

?

? 點擊確認.下一步設置子報表了.

3.設置子報表

? 轉到子報表里,添加子報表的參數,這個參數來自哪里呢?當然是前面主報表里面設置過的參數啊,所以在這里添加參數,參數名orderID(注意參數名的大小寫)并選中允許空白值和Null值.然后點擊確認.最后在子報表里面添加數據就OK了.(主報表的數據源實際和子報表的數據源是一對多的關系 這里的主外鍵就是orderID啦)

如圖:

好了。設置報表階段基本完成.下面就代碼了。

4.頁面html 代碼

View Code <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Test.Default" %>

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
Namespace
="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<rsweb:ReportViewer ID="ReportViewer1" Width="100%" runat="server"
ondrillthrough
="ReportViewer1_Drillthrough">
<LocalReport ReportPath="Report.rdlc">

</LocalReport>
</rsweb:ReportViewer>

</div>
</form>
</body>
</html>

5.后臺CS 文件代碼

?

View Code using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using Microsoft.Reporting.WebForms;
using Microsoft.Reporting;
using System.Drawing.Printing;
using System.Drawing.Imaging;
using System.Diagnostics;
namespace Test
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Display();
}
}

/// <summary>
/// 顯示報表數據
/// </summary>
private void Display()
{
DataTable dt = GetReportData();
ReportViewer1.LocalReport.EnableHyperlinks = true;
ReportViewer1.Visible = true;
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", dt));
ReportViewer1.LocalReport.Refresh();
}

/// <summary>
/// 鉆取的主表
/// </summary>
/// <returns></returns>
public DataTable GetReportData()
{
#region 創建鉆取的主表
DataTable dt = new DataTable("dt_dry");

dt.Columns.Add(new DataColumn("orderid", typeof(string)));
dt.Columns.Add(new DataColumn("userName", typeof(string)));
dt.Columns.Add(new DataColumn("address", typeof(string)));
dt.Columns.Add(new DataColumn("orderDate", typeof(DateTime)));


DataRow dr = dt.NewRow();
dr["orderid"] = "20120209001";
dr["userName"] = "張三";
dr["address"] = "北京";
dr["orderDate"] = DateTime.Now;
dt.Rows.Add(dr);


dr = dt.NewRow();
dr["orderid"] = "20120209002";
dr["userName"] = "李四";
dr["address"] = "上海";
dr["orderDate"] = DateTime.Now;
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["orderid"] = "20120209003";
dr["userName"] = "王五";
dr["address"] = "北京";
dr["orderDate"] = DateTime.Now;
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["orderid"] = "20120209004";
dr["userName"] = "馬六";
dr["address"] = "湖南";
dr["orderDate"] = DateTime.Now;
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["orderid"] = "20120209005";
dr["userName"] = "袁七";
dr["address"] = "湖北";
dr["orderDate"] = DateTime.Now;
dt.Rows.Add(dr);
return dt;
#endregion
}

/// <summary>
/// 子報表數據
/// </summary>
/// <returns></returns>
public DataTable GetTable()
{
DataTable dt = new DataTable("dt_dry");//創建一個名為dt_dry的DataTalbe

dt.Columns.Add(new DataColumn("fitemno", typeof(int)));//為dt_dry表內建立Column
dt.Columns.Add(new DataColumn("fitemName", typeof(string)));
dt.Columns.Add(new DataColumn("fsaleamt", typeof(decimal)));
dt.Columns.Add(new DataColumn("fqty", typeof(int)));
dt.Columns.Add(new DataColumn("orderid", typeof(string)));

DataRow dr = dt.NewRow();
dr[0] = 100;
dr[1] = "C#入門經典";
dr[2] = 87.67;
dr[3] = 2;
dr[4] = "20120209001";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = 101;
dr[1] = "C#程序設計";
dr[2] = 67.58;
dr[3] = 5;
dr[4] = "20120209001";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = 102;
dr[1] = "SQL 2005 從入門到精通";
dr[2] = 99.95;
dr[3] = 7;
dr[4] = "20120209002";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = 103;
dr[1] = "asp.net 入門經典";
dr[2] = 88.93;
dr[3] = 9;
dr[4] = "20120209004";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = 104;
dr[1] = "php 經典案例教材";
dr[2] = 45.55;
dr[3] = 13;
dr[4] = "20120209003";
dt.Rows.Add(dr);
return dt;

}
/// <summary>
/// 報表鉆取事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ReportViewer1_Drillthrough(object sender, DrillthroughEventArgs e)
{

DataTable dt = GetTable();
LocalReport localReport = (LocalReport)e.Report;
localReport.DataSources.Add(new ReportDataSource("DataSet1", dt));
localReport.Refresh();
}
}
}

好咯.搞定了.

轉載于:https://www.cnblogs.com/wjbobo/archive/2012/03/07/2383817.html

總結

以上是生活随笔為你收集整理的RDLC报表系列--------钻取报表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。