水晶报表查看器打印和导出按钮在c#.net 4.0中不起作用 [英] crystal report viewer print and export button not work in c#.net 4.0
问题描述
不显示任何错误消息。
Not show any error message.
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.UI;
使用System.Web.UI.WebControls;
使用System.Data;
使用System.Data.SqlClient ;
使用System.Configuration;
使用CrystalDecisions.CrystalReports.Engine;
使用CrystalDecisions.Shared; //用于ReportDocument
命名空间WebApplicationTraining.Reports
{
公共部分类ProjectReportWithPara:System.Web.UI.Page
{
SqlConnection Con = new SqlConnection(ConfigurationManager.ConnectionStrings [MainDB] .ConnectionString);
SqlCommand cmd = new SqlCommand();
#region帮助方法
private void ProjectDataBind()
{$ / $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ b {
Con.Open();
cmd.CommandText =sp_Project_SelectAll;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = Con;
adapter.Fill(ds,tbl_Project);
}
catch(例外情况)
{
抛出新例外(ex.Message);
}
终于
{
cmd.Dispose();
if(Con.State! = ConnectionState.Closed)
Con.Close();
}
// DataTable dt = controller.SelectAll();
cboF romProject.DataTextField =Project;
cboFromProject.DataValueField =ProjectID;
cboFromProject.DataSource = ds.Tables [0];
cboFromProject.DataBind();
}
private void ToProjectDataBind()
{
DataSet ds = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
try
{
Con.Open();
cmd.CommandText =sp_Project_SelectAll;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = Con;
adapter.Fill(ds,tbl_Project);
}
catch(exception ex)
{
抛出新的异常(ex.Message);
}
最后
{
cmd.Dispose();
if(Con.State!= ConnectionState.Closed)
Con.Close();
}
// DataTable dtable = controller.SelectAll();
cboToProject .DataTextField =Project;
cboToProject.DataValueField =ProjectID;
cboToProject.DataSource = ds.Tables [0]; // dtable;
cboToProject.DataBind();
}
public DataSet getFromTOProjects(int fproject,int toproject)
{
// string sqlCon = ConfigurationManager.AppSettings [MainDB]。ToString();
DataSet ds = null ;
SqlDataAdapter适配器;
试试
{
Con.Open();
C md.CommandText =sp_projectReport_ByProject;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter(@ fproject,fproject));
cmd.Parameters.Add(new SqlParameter(@ toproject,toproject));
cmd.Connection = Con;
ds = new DataSet();
adapter = new SqlDataAdapter(cmd);
adapter.Fill(ds,tbl_Project);
// adapter.Fill(ds);
}
catch(exception ex)
{
抛出新的异常( ex.Message);
}
终于
{
cmd.Dispose();
if(Con.State!= ConnectionState.Closed)
Con.Close();
}
返回ds;
}
#endregion
protected void Page_Load(object sender,EventArgs e)
{
if(!IsPostBack)
{
ProjectDataBind();
ToProjectDataBind();
}
if(IsPostBack)
{
试试
{
CrystalReportViewer2.ReportSource =(ReportDocument)Session [Report];
//CrystalReportViewer2.RefreshReport();写下这段代码,会提示
//CrystalReportViewer2.DataBind();
}
catch(exception ex)
$
// throw;
}
}
< br $>
}
protected void btnPreview_Click(object sender,EventArgs e)
{
ReportDocument rptDoc = new ReportDocument();
DataSet ds = new DataSet();
DataTable dtable = new DataTable();
dtable.TableName =tbl_Project;
ds = getFromTOProjects(Convert.ToInt32(cboFromProject.SelectedValue),Convert.ToInt32(cboToProject.SelectedValue));
dtable = ds.Tables [0];
rptDoc.Load(Server.MapPath(~~ \\\ Reports \\ProjectReportWithPara.rpt));
rptDoc.SetDataSource(dtable);
rptDoc.SetParameterValue(ReportTitle,Project Report By Project) ;
rptDoc.SetParameterValue(FromProject,cboFromProject.SelectedItem.Text);
rptDoc.SetParameterValue(ToProject,cboToProject.SelectedItem.Text);
会话[报告] = rptDoc;
CrystalReportViewer2.ReportSource = rptDoc;
//可以打印和导出但是已经设置了参数
//CrystalReportViewer2.ReuseParameterValuesOnRefresh = false;
//CrystalReportViewer2.DataBind();
//CrystalReportViewer2.ReportSource = rptDoc.Clone();
//CrystalReportViewer2.RefreshReport();
}
}
}
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 System.Data.SqlClient;
using System.Configuration;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;//for ReportDocument
namespace WebApplicationTraining.Reports
{
public partial class ProjectReportWithPara : System.Web.UI.Page
{
SqlConnection Con = new SqlConnection(ConfigurationManager.ConnectionStrings["MainDB"].ConnectionString);
SqlCommand cmd = new SqlCommand();
#region Help Method
private void ProjectDataBind()
{
DataSet ds = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
try
{
Con.Open();
cmd.CommandText = "sp_Project_SelectAll";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = Con;
adapter.Fill(ds, "tbl_Project");
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
cmd.Dispose();
if (Con.State != ConnectionState.Closed)
Con.Close();
}
//DataTable dt = controller.SelectAll();
cboFromProject.DataTextField = "Project";
cboFromProject.DataValueField = "ProjectID";
cboFromProject.DataSource = ds.Tables[0];
cboFromProject.DataBind();
}
private void ToProjectDataBind()
{
DataSet ds = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
try
{
Con.Open();
cmd.CommandText = "sp_Project_SelectAll";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = Con;
adapter.Fill(ds, "tbl_Project");
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
cmd.Dispose();
if (Con.State != ConnectionState.Closed)
Con.Close();
}
//DataTable dtable = controller.SelectAll();
cboToProject.DataTextField = "Project";
cboToProject.DataValueField = "ProjectID";
cboToProject.DataSource = ds.Tables[0];//dtable;
cboToProject.DataBind();
}
public DataSet getFromTOProjects(int fproject, int toproject)
{
//string sqlCon = ConfigurationManager.AppSettings["MainDB"].ToString();
DataSet ds = null;
SqlDataAdapter adapter;
try
{
Con.Open();
cmd.CommandText = "sp_projectReport_ByProject";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@fproject", fproject));
cmd.Parameters.Add(new SqlParameter("@toproject", toproject));
cmd.Connection = Con;
ds = new DataSet();
adapter = new SqlDataAdapter(cmd);
adapter.Fill(ds, "tbl_Project");
//adapter.Fill(ds);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
cmd.Dispose();
if (Con.State != ConnectionState.Closed)
Con.Close();
}
return ds;
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ProjectDataBind();
ToProjectDataBind();
}
if (IsPostBack)
{
try
{
CrystalReportViewer2.ReportSource = (ReportDocument)Session["Report"];
//CrystalReportViewer2.RefreshReport(); write this code,will prompt
//CrystalReportViewer2.DataBind();
}
catch (Exception ex)
{
// throw;
}
}
}
protected void btnPreview_Click(object sender, EventArgs e)
{
ReportDocument rptDoc = new ReportDocument();
DataSet ds = new DataSet();
DataTable dtable = new DataTable();
dtable.TableName = "tbl_Project";
ds = getFromTOProjects(Convert.ToInt32(cboFromProject.SelectedValue), Convert.ToInt32(cboToProject.SelectedValue));
dtable = ds.Tables[0];
rptDoc.Load(Server.MapPath("~\\Reports\\ProjectReportWithPara.rpt"));
rptDoc.SetDataSource(dtable);
rptDoc.SetParameterValue("ReportTitle", "Project Report By Project");
rptDoc.SetParameterValue("FromProject", cboFromProject.SelectedItem.Text);
rptDoc.SetParameterValue("ToProject", cboToProject.SelectedItem.Text);
Session["Report"] = rptDoc;
CrystalReportViewer2.ReportSource = rptDoc;
// can print and export but prompt already set parameters
//CrystalReportViewer2.ReuseParameterValuesOnRefresh = false;
//CrystalReportViewer2.DataBind();
//CrystalReportViewer2.ReportSource = rptDoc.Clone();
//CrystalReportViewer2.RefreshReport();
}
}
}
推荐答案
尝试以下相关问题:
Crystal报告Firefox和Chrome中的打印问题 [ ^ ] < br $> b $ b
http://forums.asp.net/t/1956137.aspx?Crystal+Report+Print+in+ASP+NET+but+not+printing+in+IIS [ ^ ]
Try these related questions:
Crystal Reports Print Problem in Firefox and Chrome[^]
http://forums.asp.net/t/1956137.aspx?Crystal+Report+Print+in+ASP+NET+but+not+printing+in+IIS[^]
解决方案是:重新分配水晶报告页面加载时查看器的reportsource属性。
btn_Preview点击事件。
会话[报告] = rptDoc;
$ _ $ b在Page_Load活动:
if(IsPostBack)
{
试试
{
CrystalReportViewer2.ReportSource =(ReportDocument)Session [Report];
//CrystalReportViewer2.RefreshReport();写下这段代码,会提示
//CrystalReportViewer2.DataBind();
}
catch(exception ex)
$
// throw;
}
Solution is :reassign crystal report viewer's reportsource properties on page load.
at btn_Preview click event.
Session["Report"] = rptDoc;
at Page_Load event:
if (IsPostBack)
{
try
{
CrystalReportViewer2.ReportSource = (ReportDocument)Session["Report"];
//CrystalReportViewer2.RefreshReport(); write this code,will prompt
//CrystalReportViewer2.DataBind();
}
catch (Exception ex)
{
// throw;
}
安装后,CRforVS_13_0.exe(水晶报告vs 2010)和确定。
protected void btnPreview_Click(object sender,EventArgs e)
{
ProjectController controller = new ProjectController();
DataTable dt = controller.SelectAll();
if(dt.Rows.Count == 0)
{
//;
返回;
}
}
公共DataSet getAllProjects()
{
SqlConnection Con = new SqlConnection(ConfigurationManager.ConnectionStrings [MainDB] .ConnectionString);
SqlCommand cmd = new SqlCommand(); >
DataSet ds = null;
SqlDataAdapter适配器;
尝试
{
Con.Open ();
cmd.CommandText =sp_Project_SelectAll;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = Con;
ds = new DataSet();
adapter = new SqlDataAdapter(cmd);
adapter.Fill( ds,Projects);
//adapter.Fill(ds);
}
catch(Exception ex)
{
抛出新的例外(ex.Message);
}
终于
{
cmd.Dispose();
if(Con.State!= ConnectionState.Closed)
Con.Close();
}
返回ds;
}
After installing,CRforVS_13_0.exe (crystal report for vs 2010) and ok.
protected void btnPreview_Click(object sender, EventArgs e)
{
ProjectController controller = new ProjectController();
DataTable dt = controller.SelectAll();
if (dt.Rows.Count == 0)
{
//"";
return;
}
}
public DataSet getAllProjects()
{
SqlConnection Con = new SqlConnection(ConfigurationManager.ConnectionStrings["MainDB"].ConnectionString);
SqlCommand cmd = new SqlCommand();
DataSet ds = null;
SqlDataAdapter adapter;
try
{
Con.Open();
cmd.CommandText = "sp_Project_SelectAll";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = Con;
ds = new DataSet();
adapter = new SqlDataAdapter(cmd);
adapter.Fill(ds, "Projects");
//adapter.Fill(ds);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
cmd.Dispose();
if (Con.State != ConnectionState.Closed)
Con.Close();
}
return ds;
}
这篇关于水晶报表查看器打印和导出按钮在c#.net 4.0中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!