2013-12-09 17 views
0
protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote; 
      ReportViewer1.ServerReport.ReportServerUrl = new Uri(@"http://123.abc/Reportserver"); 
      ReportViewer1.ServerReport.ReportPath = "/Test/Development/Details"; 
      ReportViewer1.ShowParameterPrompts = true; 
      ReportViewer1.ShowPrintButton = true; 


      ReportParameter[] rptParams = new ReportParameter[1]; 
      SqlConnection MA = new SqlConnection(MedA); 
      SqlCommand command = new SqlCommand("select distinct Users from PROD.Users Where Username ='" + this.Username + "'", MA);   
      SqlDataAdapter dataAadpter = new SqlDataAdapter(command); 
      DataSet ds = new DataSet(); 
      dataAadpter.Fill(ds); 
      rptParams[0] = new ReportParameter("UserID", ds); //this.Username 
      ReportViewer1.ServerReport.SetParameters(rptParams); 
      ReportViewer1.ServerReport.Refresh(); 
      ReportViewer1.AsyncRendering = false; 
      ReportViewer1.SizeToReportContent = true; 
     } 

我无法传递参数。我试图从登录用户获取用户密钥。谁能帮我将参数存储在报表查看器的变量中

+0

您的报表服务器安全性是如何配置的? Windows身份验证或表单身份验证。如果它是Windows认证为什么你需要传递给用户?你正在跳到另一台机器上吗? – Daniel

+0

@Daniel我正在使用表单身份验证。我有一个来自我的用户名的登录页面。使用用户名,我从DB获取密钥。 – Valley

回答

1

首先存储的用户名从你的登录界面如下图所示:

Session["LoggedInUser"] = txtUsername.Text.Trim(); 

然后粘贴到您的报告页面下面的代码:

protected String Username 
    { 
     get 
     { 
      return Convert.ToString(Session["LoggedInUser"]); 
     } 
    } 

在页面加载写如下的代码为您报告:

protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!Page.IsPostBack) 
      { ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote; 
       ReportViewer1.ServerReport.ReportServerUrl = new Uri(@"http://123.abc/Reportserver"); 
       ReportViewer1.ServerReport.ReportPath = "/Test/Development/Details"; 
       ReportViewer1.ShowParameterPrompts = true; 
       ReportViewer1.ShowPrintButton = true; 

     ReportParameter[] rptParams = new ReportParameter[1]; 
     SqlConnection MA = new SqlConnection(MedA); 
     SqlCommand command = new SqlCommand("select distinct Users from PROD.Users Where Username ='" + this.Username + "'", MA);   
     SqlDataAdapter dataAadpter = new SqlDataAdapter(command); 
     DataSet ds = new DataSet(); 
     dataAadpter.Fill(ds); 
     rptParams[0] = new ReportParameter("UserID", ds.Tables[0].Rows[0][0].ToString()); //this.Username 
     ReportViewer1.ServerReport.SetParameters(rptParams); 
     ReportViewer1.ServerReport.Refresh(); 
     ReportViewer1.AsyncRendering = false; 
     ReportViewer1.SizeToReportContent = true; 
    }