水晶报表查看器打印和导出按钮在c#.net 4.0中不起作用 [英] crystal report viewer print and export button not work in c#.net 4.0

查看:59
本文介绍了水晶报表查看器打印和导出按钮在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆