报表参数传递

ContractedBlock.gif ExpandedBlockStart.gif Code
//多个参数传递:

private ReportParameter[] p = null;
/// <summary>
        
/// 成绩报表
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>
        protected void btnGradeRPT_Click(object sender, EventArgs e)
        {
            
this.ReportViewer1.Visible = false;
            DataTable dt3 
= studentBll.GetStudentXhXmId(" and bh = '" + txtBh.Text.Trim() + "'  order by xh");
            
if (dt3.Rows.Count > 0)
            {
                DataTable dt4 
= GetStudentRegesterBook(30, dt3);
                
this.ReportViewer2.Visible = true;
                ReportDataSource Source 
= new ReportDataSource("DataSet10_DataTable1", dt4);
                
this.ReportViewer2.LocalReport.DataSources.Clear();
                
this.ReportViewer2.LocalReport.DataSources.Add(Source);
                
this.ReportViewer2.LocalReport.SetParameters(GetParams(dt3));
                
this.ReportViewer2.LocalReport.Refresh();
            }
            
else
            {
                ScriptManager.RegisterStartupScript(
this.btnGradeRPT, this.GetType(), "NoRecord""alert('没有该班学

!')", true);

            }

        }
        
private ReportParameter[] GetParams(DataTable dt)
        {
           
            
string title = "(" + this.hidXn.Value + "年   " + this.hidXq.Value + ")";
            
string[] str1 = this.ddlstCourseCode.SelectedValue.Split('|');
            
string[] str2 = new string[5];
            
if (str1.Length == 5)
            {
                p 
= new ReportParameter[7];
                
for (int i = 0; i < 5; i++)
                {
                    
if (!str1[i].Equals("-1"))
                    {
                        str2[i] 
= str1[i];
                    }
                    
else
                    {
                        str2[i] 
= "";
                    }
                }

                p[
0= new ReportParameter("title", title);
                p[
1= new ReportParameter("kkdw""开课单位:" + str2[0]);
                p[
2= new ReportParameter("kcmc""课程名称:" + str2[1]);
                p[
3= new ReportParameter("xs""学时:" + str2[2]);
                p[
4= new ReportParameter("xf""学分:" + str2[3]);
                p[
5= new ReportParameter("jsxm""教师姓名:" + str2[4]);
                p[
6= new ReportParameter("total""人数:" + dt.Rows.Count.ToString());
            }
            
return p;
        }

       
        
/// <summary>
        
/// 两列转换为四列
        
/// </summary>
        
/// <param name="pagesize">每页大小</param>
        
/// <param name="table"></param>
        
/// <returns></returns>
        private DataTable GetStudentRegesterBook(int pagesize,DataTable table)
        {
            
            DataTable dt 
= new DataTable();
            
int rows = table.Rows.Count;
            
if (rows > 0)
            {
                dt.Columns.Add(
"xh1"typeof(string));
                dt.Columns.Add(
"xm1"typeof(string));
                dt.Columns.Add(
"xh2"typeof(string));
                dt.Columns.Add(
"xm2"typeof(string));

                
int pagecount = 0;
                pagecount 
= rows / pagesize;
                
if (pagecount * pagesize < rows)
                    pagecount 
= pagecount + 1;

                
int i, j, k;
                
//考虑前pagecount-1页
                if (rows > 0)
                {
                    
for (i = 0; i < pagecount - 1; i++)
                    {
                        
if (i % 2 == 0)
                        {
                            
for (j = 0; j < pagesize; j++)
                            {
                                DataRow dr 
= dt.NewRow();
                                dr[
"xh1"= table.Rows[j + i * pagesize]["xh"].ToString();
                                dr[
"xm1"= table.Rows[j + i * pagesize]["xm"].ToString();
                                dt.Rows.Add(dr);
                            }
                        }
                        
else
                        {
                            
for (k = 0; k < pagesize; k++)
                            {

                                dt.Rows[k 
+ (i / 2* pagesize]["xh2"= table.Rows[k + i * pagesize]["xh"].ToString();
                                dt.Rows[k 
+ (i / 2* pagesize]["xm2"= table.Rows[k + i * pagesize]["xm"].ToString();

                            }
                        }


                    }
                    
//考虑最后一页
                    
//奇数页
                    if (pagecount % 2 == 1)
                    {

                        
for (k = 0; k < rows - (pagecount - 1* pagesize; k++)
                        {
                            DataRow dr 
= dt.NewRow();
                            dr[
"xh1"= table.Rows[k + i * pagesize]["xh"].ToString();
                            dr[
"xm1"= table.Rows[k + i * pagesize]["xm"].ToString();
                            dt.Rows.Add(dr);
                        }
                    }
                    
else
                    {
                        
//偶数页
                        for (k = 0; k < rows - (pagecount - 1* pagesize; k++)
                        {

                            dt.Rows[k 
+ (i / 2* pagesize]["xh2"= table.Rows[k + i * pagesize]["xh"].ToString();
                            dt.Rows[k 
+ (i / 2* pagesize]["xm2"= table.Rows[k + i * pagesize]["xm"].ToString();

                        }
                    }
                }
            }

                
            
return dt;

        }



//单个参数传递:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Text;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.Reporting.WebForms;
using XNCJWC.BLL;
namespace XNCJWC.Web
{
    
public partial class manager_GradeManage_GradeQueryClassRPT : System.Web.UI.Page
    {
        
private xscjBLL xscjBll = new xscjBLL();
        
protected void Page_Load(object sender, EventArgs e)
        {
            
if (!IsPostBack)
            {
                
string xn=Request.QueryString["xn"];
                
string xq=Request.QueryString["xq"];
                
string bh=Request.QueryString["bh"];
                
string kc=Server.UrlDecode(Request.QueryString["kc"]);
                
string[] str=new string[2];         
                str 
= kc.Split('-');
                DataTable table 
= new DataTable();                
                
string strWhere =" xn = '"+xn+"' and xq='"+xq+"' and kcbh like '%"+str[0]+"%'" ;
                
string strBh = " bh like '" + bh + "%'";
                
string oxq = "";
                 
if (xq == "1")
                {
                    oxq 
= "春季学期";
                }
                
else
                {
                    oxq 
= "秋季学期";
                }
               
                
                table 
= xscjBll.GetZxXsGrade(strBh, strWhere);
                
this.ReportViewer1.Visible = true;
                ReportDataSource source 
= new ReportDataSource("GradeQueryClass_DataTable1", table);
                
this.ReportViewer1.LocalReport.DataSources.Clear();
                
this.ReportViewer1.LocalReport.DataSources.Add(source);
                
string title = xn + "" + oxq + bh + "" + str[1+ "学生成绩报表" + "(共"+table .Rows .Count +"人)";
                ReportParameter p 
= new ReportParameter("title", title);
                
this.ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { p });
                
this.ReportViewer1.LocalReport.Refresh();


                 
            }

        }
    }
}


前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GradeQueryClassRPT.aspx.cs" 

Inherits
="XNCJWC.Web.manager_GradeManage_GradeQueryClassRPT" %>

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=9.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">
    
<div>
    
<div class="topformlist" style="width: auto; height: 20px" id="DIV1"  >    
     
<span class="textlabel"> 当前位置-&gt;成绩管理-&gt;查询-&gt;按班级查询学生成绩报表</span></div>
        
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Width="900px" Height ="400px">
        
<LocalReport ReportPath="manager/GradeManage/Report/GradeQueryClassRPT.rdlc"></LocalReport>
        
</rsweb:ReportViewer>
    
</div>
    
</form>
</body>
</html>

转载于:https://www.cnblogs.com/hubcarl/archive/2009/05/26/1490101.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值