想問各位大蝦,我使用crystalreportviewer控件顯示水晶報表,在runtime中傳遞了參數和登錄數據庫的帳號和密碼(參數,帳號,密碼都正確,無須懷疑),但顯示后仍然提示要輸入參數和登錄的帳號和密碼,這是怎麼回事?以下是Page_Load代碼,速求解決方法,先謝了!!! if (!Page.IsPostBack)
{ CrystalReportViewer1.ReportSource = @"D:\my document\rpt00012.rpt"; CrystalDecisions.Shared.TableLogOnInfo newlogon = new CrystalDecisions.Shared.TableLogOnInfo();
newlogon.ConnectionInfo.UserID = "system";
newlogon.ConnectionInfo.Password = "manager"; CrystalReportViewer1.LogOnInfo.Add(newlogon);
CrystalDecisions.Shared.ParameterRangeValue rangeVal = new ParameterRangeValue();
ParameterFields paramFields = new ParameterFields ();
ParameterField paramField = new ParameterField ();
paramField = new ParameterField();
paramField.ParameterFieldName = "Vdate";
DateTime starttime = new DateTime(2005,5,1);
DateTime endtime = new DateTime(2006,6,1);
rangeVal.StartValue=starttime.Date;
rangeVal.EndValue=endtime.Date;
//rangeVal.StartValue="2005/1/1";
//rangeVal.EndValue = "2006/6/1"; paramField.CurrentValues.Add(rangeVal);
CrystalReportViewer1.ParameterFieldInfo.Add (paramField); paramField.ParameterFieldName = "Vender";
ParameterDiscreteValue discreteVal = new ParameterDiscreteValue ();
discreteVal.Value = "M00072";
paramField.CurrentValues.Add(discreteVal);
//paramFields.Add(paramField);
CrystalReportViewer1.ParameterFieldInfo.Add (paramField);
paramField = new ParameterField();
paramField.ParameterFieldName = "Passwd";
discreteVal = new ParameterDiscreteValue();
discreteVal.Value = "5851";
paramField.CurrentValues.Add(discreteVal);
//paramFields.Add(paramField);
CrystalReportViewer1.ParameterFieldInfo.Add (paramField); //paramFields.Add(paramField);
//CrystalReportViewer1.ParameterFieldInfo = paramFields;
CrystalReportViewer1.RefreshReport();
}
{ CrystalReportViewer1.ReportSource = @"D:\my document\rpt00012.rpt"; CrystalDecisions.Shared.TableLogOnInfo newlogon = new CrystalDecisions.Shared.TableLogOnInfo();
newlogon.ConnectionInfo.UserID = "system";
newlogon.ConnectionInfo.Password = "manager"; CrystalReportViewer1.LogOnInfo.Add(newlogon);
CrystalDecisions.Shared.ParameterRangeValue rangeVal = new ParameterRangeValue();
ParameterFields paramFields = new ParameterFields ();
ParameterField paramField = new ParameterField ();
paramField = new ParameterField();
paramField.ParameterFieldName = "Vdate";
DateTime starttime = new DateTime(2005,5,1);
DateTime endtime = new DateTime(2006,6,1);
rangeVal.StartValue=starttime.Date;
rangeVal.EndValue=endtime.Date;
//rangeVal.StartValue="2005/1/1";
//rangeVal.EndValue = "2006/6/1"; paramField.CurrentValues.Add(rangeVal);
CrystalReportViewer1.ParameterFieldInfo.Add (paramField); paramField.ParameterFieldName = "Vender";
ParameterDiscreteValue discreteVal = new ParameterDiscreteValue ();
discreteVal.Value = "M00072";
paramField.CurrentValues.Add(discreteVal);
//paramFields.Add(paramField);
CrystalReportViewer1.ParameterFieldInfo.Add (paramField);
paramField = new ParameterField();
paramField.ParameterFieldName = "Passwd";
discreteVal = new ParameterDiscreteValue();
discreteVal.Value = "5851";
paramField.CurrentValues.Add(discreteVal);
//paramFields.Add(paramField);
CrystalReportViewer1.ParameterFieldInfo.Add (paramField); //paramFields.Add(paramField);
//CrystalReportViewer1.ParameterFieldInfo = paramFields;
CrystalReportViewer1.RefreshReport();
}
建水晶报表文件时,我用到的数据库是NPPFS。
在程序中我用到的数据库是PPFS
这时就会提示登錄的帳號和密碼
加登陆信息即可.
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;namespace leeto
{
/// <summary>
/// owc 的摘要说明。
/// </summary>
public class owc : System.Web.UI.Page
{
protected CrystalDecisions.Web.CrystalReportViewer rptv;
ReportDocument rd = new ReportDocument();
private void Page_Load(object sender, System.EventArgs e)
{
TableLogOnInfo log = new TableLogOnInfo();
log.ConnectionInfo.ServerName = "XX.XX.XX.XX";
log.ConnectionInfo.DatabaseName = "XX";
log.ConnectionInfo.UserID = "XXX";
log.ConnectionInfo.Password = "XXX";
ReportDocument rd = new ReportDocument();
string RptPath = null;
RptPath =Server.MapPath("rpt.rpt");
rd.Load(RptPath);
rd.Database.Tables[0].ApplyLogOnInfo(log); this.rptv.ReportSource = rd; this .rptv.DataBind();
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
}
}