Web调用水晶报表
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;
using System.Text;
using System.Data.Odbc;
public partial class Purchase : System.Web.UI.Page
{
public static OdbcDataAdapter daerp = new OdbcDataAdapter();
public ReportDocument report = new ReportDocument();
public DataTable rptdt = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
ParameterFields paraFields = new ParameterFields();
ParameterField paraField = new ParameterField();
ParameterDiscreteValue paravalue = new ParameterDiscreteValue();
paraField.Name = "單號";
paravalue.Value = Session["pur_nbr"].ToString();
paraField.CurrentValues.Add(paravalue);
paraFields.Add(paraField);
#region prevent login dialog
#region 依據廠別加載rpt
if (Session["rpt_fac"].ToString().Trim() == "'1'")
{
report.Load(Server.MapPath("1.rpt"));
}
if (Session["rpt_fac"].ToString().Trim() == "'2'")
{
report.Load(Server.MapPath("2.rpt"));
}
if (Session["rpt_fac"].ToString().Trim() == "'3'")
{
report.Load(Server.MapPath("3.rpt"));
}
#endregion
TableLogOnInfo loginfo = new TableLogOnInfo();
#region
//loginfo.ConnectionInfo.ServerName = "192.168.1.1";
loginfo.ConnectionInfo.ServerName = "Server1";
loginfo.ConnectionInfo.DatabaseName = "Database1";
loginfo.ConnectionInfo.UserID = "sa";
loginfo.ConnectionInfo.Password = "sa.";
report.Database.Tables[2].ApplyLogOnInfo(loginfo);
report.Database.Tables[8].ApplyLogOnInfo(loginfo);
TableLogOnInfo loginfo1 = new TableLogOnInfo();
if (Session["rpt_fac"].ToString().Trim() == "'1'")
{
loginfo1.ConnectionInfo.ServerName = "Server2";
loginfo1.ConnectionInfo.DatabaseName = "Database2";
loginfo1.ConnectionInfo.UserID = "sa";
loginfo1.ConnectionInfo.Password = "";
}
if (Session["rpt_fac"].ToString().Trim() == "'2'")
{
loginfo1.ConnectionInfo.ServerName = "Server3";
loginfo1.ConnectionInfo.DatabaseName = "Database3";
loginfo1.ConnectionInfo.UserID = "sa";
loginfo1.ConnectionInfo.Password = "";
}
if (Session["rpt_fac"].ToString().Trim() == "'3'")
{
loginfo1.ConnectionInfo.ServerName = "Server4";
loginfo1.ConnectionInfo.DatabaseName = "Database4";
loginfo1.ConnectionInfo.UserID = "sa";
loginfo1.ConnectionInfo.Password = "";
}
//report.Database.Tables[0].ApplyLogOnInfo(loginfo);
report.Database.Tables[0].ApplyLogOnInfo(loginfo1);
report.Database.Tables[1].ApplyLogOnInfo(loginfo1);
report.Database.Tables[3].ApplyLogOnInfo(loginfo1);
report.Database.Tables[4].ApplyLogOnInfo(loginfo1);
report.Database.Tables[5].ApplyLogOnInfo(loginfo1);
report.Database.Tables[6].ApplyLogOnInfo(loginfo1);
report.Database.Tables[7].ApplyLogOnInfo(loginfo1);
#endregion
#endregion
try
{
#region old
//report.SetDataSource(rptdt);
//CrystalReportViewer1.ReportSource = report;
//CrystalReportViewer1.DataBind();
#endregion
CrystalReportViewer1.ReportSource = report;
CrystalReportViewer1.ParameterFieldInfo = paraFields;
CrystalReportViewer1.DataBind();
}
catch(Exception ex)
{
Response.Write(ex.Message);
}
}
private void InitializeComponent()
{
this.Unload += new System.EventHandler(this.Purchase_Unload);
}
private void Purchase_Unload(object sender, EventArgs e)
{
rptdt.Reset();
report.Dispose();
report.Close();
}
}
作者:Gerry Ge
出处:https://www.cnblogs.com/gerryge/archive/2012/02/21/2361493.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
转载请注明出处
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构