@天涯人
简单点的,没有整理哦:
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 CrystalDecisions.Shared;//负责解释TableLogOnInfo类
using CrystalDecisions.CrystalReports.Engine;
using System.Data.SqlClient;
using System.IO;
using System.Collections.Generic;//负责解释ReportDocument类
public partial class LawReports_LawyerReports : BaseWebPage
{
private ReportDocument customerReport;//un-Type 报表
private int _cid;//选择公司的ID
private string _people = "";
private string _dateBegin = "";
private string _dateEnd = "";
private CrystalLibrary.CrystalHelper _crystalHelper;
private MembershipUser mbUser;
///
/// 初试化报表,先于Page_OnLoad事件
///
///
///
private void Page_Init(object sender, EventArgs e)
{
mbUser = Membership.GetUser(Page.User.Identity.Name);//获取MemberShip中的指定的成员
if (mbUser == null)//匿名用户没有任何权限
{
LogInfo.AddLaw_Log(new MLog(Page.User.Identity.Name,
LogInfo.LogDoType.View,
DateTime.Now,
"匿名用户访问",
Request.UserHostAddress,
Request.RawUrl,
false));
Response.Redirect("/_layouts/GSEGC/Anonymous.aspx");
}
int lastErrorID = -1;
if (!Roles.IsUserInRole(User.Identity.Name, "超级管理员"))
{
LogInfo.AddLaw_Log(new MLog(Page.User.Identity.Name, LogInfo.LogDoType.Print, DateTime.Now,
" 您没有察看此页的权限." + this.Title, Request.UserHostAddress, Request.RawUrl, false), ref lastErrorID);
ViewState[User.Identity.Name] = lastErrorID;//保存最近的错误编号
Response.Redirect("/_layouts/GSEGC/Errors.aspx");
}
string tmp = DateTime.Now.ToString("yyyy-MM-dd");
try
{
_people = Request.QueryString["p"] == null ? "" : Request.QueryString["p"];
_dateBegin = Request.QueryString["db"] == null ? tmp : Request.QueryString["db"];
_dateEnd = Request.QueryString["de"] == null ? tmp : Request.QueryString["de"];
this.txtName.Text = _people;
this.DateBegin.Text = _dateBegin;
this.DateEnd.Text = _dateEnd;
}
catch (Exception ex)
{
#region 错误日志
LogInfo.AddLaw_Log(new MLog(Page.User.Identity.Name,
LogInfo.LogDoType.Print,
DateTime.Now,
"无效的参数!" + ex.Message,
Request.UserHostAddress,
Request.RawUrl,
false), ref lastErrorID);
ViewState[User.Identity.Name] = lastErrorID;//保存最近的错误编号
Response.Redirect("/_layouts/GSEGC/Errors.aspx");
#endregion
}
ConfigureCrystalReports();
}
protected void Page_Load(object sender, EventArgs e)
{
int lastErrorID = -1;
if (!Page.IsPostBack)
{
//需要验证用户权限先!!!!!否则提示错误信息或者加载错误报表模板
}
}
///
/// 动态加载报表数据源
///
private void ConfigureCrystalReports()
{
int lastErrorID = -1;//保存最近错误ID号
try
{
string reportPath = Request.PhysicalApplicationPath + "LawReports\\LawyerReport.rpt";//报表路径,绝对路径
//登录等信息可以写入web.config文件
_crystalHelper = new CrystalLibrary.CrystalHelper();
_crystalHelper.SetParameter("@PeopleName", _people);//初试化参数
_crystalHelper.SetParameter("@DoTimeBegin", _dateBegin);//初试化参数
_crystalHelper.SetParameter("@DoTimeEnd", _dateEnd);//初试化参数
customerReport = new ReportDocument();//实例化报表对象,采用pull的方式
if (File.Exists(reportPath))
{
customerReport.Load(reportPath);//加载报表
// customerReport.SetDataSource(dataSet);//可以接受DataSet或者DataTable,ArrayList,List
等基本数据对象
_crystalHelper.ReportSource = customerReport;
_crystalHelper.Open();
crystalReportViewer.ReportSource = _crystalHelper.ReportSource;//指定报表数据源,可以在此动态加载类似数据源
}
else
{
//customerReport.Load(reportPath);//加载一个空的指示错误的报表报表
}
this.crystalReportViewer.HasCrystalLogo = false;
#region 加载非Pdf打印模式
// set the theme for the page. post-data is not currently loaded
// use trace="true" to see the form collection
ProfileCommon pc = new ProfileCommon();//匿名用户配置文件
ProfileCommon pc2 = pc.GetProfile(Page.User.Identity.Name);//得到当前用户的配置文件
if (pc2.PrintMode != "Pdf")//加载非Pdf打印模式
{
this.crystalReportViewer.PrintMode = CrystalDecisions.Web.PrintMode.ActiveX;
}
#endregion
#region 报表字段的多语言
InitMultiLanguage(customerReport);
#endregion
}
catch (Exception ex)
{
LogInfo.AddLaw_Log(new MLog(Page.User.Identity.Name,
LogInfo.LogDoType.Print,
DateTime.Now,
"动态加载报表失败!" + ex.Message,
Request.UserHostAddress,
Request.RawUrl,
false), ref lastErrorID);
ViewState[User.Identity.Name] = lastErrorID;//保存最近的错误编号
Response.Redirect("/_layouts/GSEGC/Errors.aspx");
}
}
///
/// 多语言的实现
///
/// 用户自定义报表对象
private void InitMultiLanguage(ReportDocument customerReport)
{
TextObject txtObjLID = (TextObject)customerReport.ReportDefinition.ReportObjects["TextLID"];
txtObjLID.Text = (string)base.GetGlobalResourceObject("Companys", "AID");
TextObject txtObjLName = (TextObject)customerReport.ReportDefinition.ReportObjects["TextLName"];
txtObjLName.Text = (string)base.GetGlobalResourceObject("Companys", "gvAName");
TextObject txtObjLSetupTime = (TextObject)customerReport.ReportDefinition.ReportObjects["TextLSetupTime"];
txtObjLSetupTime.Text = (string)base.GetGlobalResourceObject("Companys", "gvLawSetUpT");
TextObject txtObjLAddress = (TextObject)customerReport.ReportDefinition.ReportObjects["TextLAddress"];
txtObjLAddress.Text = (string)base.GetGlobalResourceObject("Companys", "gvAAddress");
TextObject txtObjTextLDescription = (TextObject)customerReport.ReportDefinition.ReportObjects["TextLDescription"];
txtObjTextLDescription.Text = (string)base.GetGlobalResourceObject("Companys", "gvADescription");
TextObject txtObjTextLPeople = (TextObject)customerReport.ReportDefinition.ReportObjects["TextLPeople"];
txtObjTextLPeople.Text = (string)base.GetGlobalResourceObject("Companys", "gvLawM");
TextObject txtObjTextAdd = (TextObject)customerReport.ReportDefinition.ReportObjects["TextAdd"];
txtObjTextAdd.Text = (string)base.GetGlobalResourceObject("Language", "UserT");
TextObject txtObjReport = (TextObject)customerReport.ReportDefinition.ReportObjects["Report"];
txtObjReport.Text = (string)base.GetGlobalResourceObject("Companys", "Report");
}
///
/// 查询记录
///
///
///
protected void btnQuery_Click(object sender, EventArgs e)
{
try
{
Response.Redirect("~/LawReports/LawyerReports.aspx?p=" + this.txtName.Text.Trim() + "&db=" + this.DateBegin.Text.Trim() + "&de=" + this.DateEnd.Text.Trim());
}
catch (Exception)
{
throw;
}
}
}