stimulsoft mvc html,web报表工具Stimulsoft Reports.Web在mvc项目中使用

usingSystem;usingSystem.Collections.Generic;usingSystem.Configuration;usingSystem.IO;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingStimulsoft.Report;namespacePE.IEM.Web

{public partial classreport : System.Web.UI.Page

{///

///将获取的报表放在阅读器中显示///

///

///

protected void Page_Load(objectsender, EventArgs e)

{

StiWebViewer1.Report=GetReport();

}///

///编辑报表///

///

///

protected void StiWebViewer1_ReportDesign(objectsender, EventArgs e)

{

StiWebDesigner1.Design(GetReport());

}///

///保存报表///

///

///

protected void StiWebDesigner1_SaveReport(objectsender, Stimulsoft.Report.Web.StiWebDesigner.StiSaveReportEventArgs e)

{var report =e.Report;

report.Save(GetReportPath());

}///

///获取报表///

///

privateStiReport GetReport()

{var report = newStiReport();//根据路径加载报表文件

report.Load(GetReportPath());//动态改变数据库连接

ChangeConnectString(report);//设置参数等

report.Compile();

SetReportParamaters(report);returnreport;

}private voidSetReportParamaters(StiReport report)

{

var dataSource =report.CompiledReport.DataSources;foreach (Stimulsoft.Report.Dictionary.StiDataSource ds indataSource)

{var param =Request.QueryString;foreach (string key inparam.Keys)

{if (!ds.Parameters.Contains(key)) continue;var p =ds.Parameters[key];var v =param[key];

p.ParameterValue=v;

}

}

}private stringGetReportPath()

{var path = String.Format("~/Areas/{0}/Reports/{1}.mrt",Request["area"], Request["rpt"]);

path=Server.MapPath(path);if (!System.IO.File.Exists(path))

//如果报表文件不存在,返回默认的报表文件

path= Server.MapPath("~/Content/page/reports/helloworld.mrt");returnpath;

}private voidChangeConnectString(StiReport report)

{

foreach (Stimulsoft.Report.Dictionary.StiSqlDatabase item inreport.Dictionary.Databases)

{var prefix = item.Name.Split(‘_‘)[0];

item.ConnectionString= ConfigurationManager.ConnectionStrings["sqlConnection"].ConnectionString;

}

}}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值