1 ?public class Default1Controller : Controller 2 ????{ 3 ????????// 4 ????????// GET: /Default1/ 5 ?6 ????????public ActionResult Index() 7 ????????{ 8 ????????????return View(); 9 ????????}10 11 ????????public JsonResult ReportFileName()12 ????????{13 ????????????DirectoryInfo d = new DirectoryInfo(Server.MapPath("~/") + "Report/");14 ????????????FileSystemInfo[] fsinfos = d.GetFileSystemInfos();15 ????????????List<string> fileName = fsinfos.Where(p => p.Name.IndexOf(".rdlc", StringComparison.Ordinal) == -1).Select(fsinfo => fsinfo.Name.Replace(".rdl", "")).ToList();16 ????????????return Json(new { Result = fileName });17 ????????}18 19 ????????public JsonResult ExistsFile(string keyId)20 ????????{21 ????????????string path = Server.MapPath("~/") + "Report/" + keyId + ".rdl";22 ????????????return this.Json(new { ResultBool = System.IO.File.Exists(path) });23 ????????}24 ????}
1 @{ 2 ????ViewBag.Title = "Index"; 3 } 4 <script src="~/Scripts/jquery-1.8.2.min.js"></script> 5 <span>站点:<input type="text" id="siteid"></span> 6 <select id="SelReport"></select> 7 ?8 ?9 <input type="button" value="报表" onclick="getReport()" />10 <br />11 <iframe id="IframeUrl" name="IframeUrl" style="width: 100%; height: 1200px;"></iframe>12 13 <script type="text/javascript">14 ????function getReport() {15 ????????var sel = $("#SelReport").val();16 ????????var site = $("#siteid").val();17 ????????$.ajax({18 ????????????url: "/Default1/ExistsFile",19 ????????????data: { "keyId": sel },20 ????????????type: "post",21 ????????????dataType: "json",22 ????????????success: function (data) {23 ????????????????if (data.ResultBool) {24 ????????????????????$("#IframeUrl").attr("src", "../WebForm1.aspx?KeyId=" + sel + "&site=" + site);25 ????????????????} else26 ????????????????????alert(sel + "报表不存在!");27 ????????????}28 29 ????????});30 ????}31 32 ????$(document).ready(function () {33 ????????$.ajax(34 ????????{35 ????????????url: ‘/Default1/ReportFileName‘,36 ????????????data: ‘‘,37 ????????????type: ‘post‘,38 ????????????dataType: ‘json‘,39 ????????????success: function (data) {40 ????????????????if (data != null) {41 ????????????????????var option;42 ????????????????????$.each(data.Result, function (i, v) {43 ????????????????????????option += "<option>" + v + "</option>";44 ????????????????????});45 ????????????????????$("#SelReport").html(option);46 ????????????????}47 ????????????}48 ????????});49 ????});50 </script>
?1 ?public partial class WebForm1 : System.Web.UI.Page ?2 ????{ ?3 ????????protected void Page_Load(object sender, EventArgs e) ?4 ????????{ ?5 ????????????if (!IsPostBack) ?6 ????????????{ ?7 ????????????????BindReport(Request["KeyId"]); ?8 ????????????} ?9 ????????} 10 ?11 ?12 ?13 ?14 ????????private void BindReport(string keyId) 15 ????????{ 16 ????????????string sql = string.Empty; 17 ????????????string site = Request["site"]; 18 ????????????switch (keyId) 19 ????????????{ 20 ????????????????case "无标题": 21 ????????????????????sql = " select * from sysuser"; 22 ????????????????????if (site.Length > 0) 23 ????????????????????{ 24 ????????????????????????sql += " where defsite like ‘" + site.Trim() + "%‘"; 25 ????????????????????} 26 ????????????????????break; 27 ????????????????case "有标题": 28 ????????????????????sql = " select * from facility"; 29 ????????????????????if (site.Length > 0) 30 ????????????????????{ 31 ????????????????????????sql += " where siteid like ‘" + site.Trim() + "%‘"; 32 ????????????????????} 33 ????????????????????break; 34 ????????????????case "报表模板": 35 ????????????????????sql = "SELECT USERID AS SEQ,PERSONID AS KSSJ,DEFSITE AS JSSJ FROM SYSUSER"; 36 ????????????????????if (site.Length > 0) 37 ????????????????????{ 38 ????????????????????????sql += " where siteid like ‘" + site.Trim() + "%‘"; 39 ????????????????????} 40 ????????????????????break; 41 ????????????????default: 42 ????????????????????break; 43 ????????????} 44 ?45 ????????????DataTable dt = new DataTable(); 46 ????????????ReportViewer1.ProcessingMode = ProcessingMode.Local; 47 ????????????ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/") + @"Report/" + keyId + ".rdl"; //可以通过SQL语句传参形式 48 ????????????ReportViewer1.LocalReport.EnableExternalImages = true; 49 ????????????dt = QueryTable(sql); 50 ????????????ReportDataSource rds = new ReportDataSource("DataSet1", dt); //DataSetl报表数据集名称 51 ????????????ReportViewer1.LocalReport.DataSources.Clear(); 52 ????????????ReportViewer1.LocalReport.DataSources.Add(rds); 53 ????????????ReportViewer1.LocalReport.Refresh(); 54 ????????????//ClientScript.RegisterClientScriptBlock(ClientScript.GetType(), "MyScript", "<script>Myfun();</script>"); 55 ????????????//Response.Write("<script type=‘text/javascript‘>setTimeout(‘Myfun()‘,‘1000‘);function Myfun(){ $(‘#ReportViewer1_ctl05_ctl04_ctl00_Menu>div>a:eq(2)‘).click();}</script>"); 56 ????????????//string js = 57 ????????????// ???"<script src=\"Scripts/jquery-1.8.2.min.js\"></script><script type=‘text/javascript‘> " + 58 ????????????// ???"var t1 = window.setTimeout(Myfun, 100); " + 59 ????????????// ???"function Myfun() { ?" + 60 ????????????// ???"try { ?" + 61 ????????????// ???"if ($(‘#ReportViewer1_ctl05_ctl04_ctl00_Menu>div>a:eq(2)‘).length > 0) " + 62 ????????????// ???"{ console.log(‘test‘);" + 63 ????????????// ???"$(‘#ReportViewer1_ctl05_ctl04_ctl00_Menu>div>a:eq(2)‘).click();" + 64 ????????????// ???" window.clearTimeout(t1);} " + 65 ????????????// ???"} " + 66 ????????????// ???"catch (err) " + 67 ????????????// ???"{}" + 68 ????????????// ???"}</script>"; 69 ????????????//Response.Write(js); 70 ????????} 71 ?72 ?73 ?74 ????????/// <summary> 75 ????????/// 执行查询语句,返回DataTable 76 ????????/// </summary> 77 ????????/// <param name="sqlString">查询语句</param> 78 ????????/// <returns>DataTable</returns> 79 ????????public static DataTable QueryTable(string sqlString) 80 ????????{ 81 ?82 ????????????using (var connection = new OracleConnection("DATA SOURCE=192.168.1.61:5050/Xinsida;USER ID=BKCYUN;PASSWORD=bkc123456;")) 83 ????????????{ 84 ????????????????var dt = new DataTable(); 85 ????????????????try 86 ????????????????{ 87 ????????????????????connection.Open(); 88 ????????????????????var command = new OracleDataAdapter(sqlString, connection); 89 ????????????????????command.Fill(dt); 90 ????????????????????return dt; 91 ????????????????} 92 ????????????????catch (Exception e) 93 ????????????????{ 94 ????????????????????throw e; 95 ????????????????} 96 ????????????????finally 97 ????????????????{ 98 ????????????????????if (connection.State == ConnectionState.Open) 99 ????????????????????{100 ????????????????????????connection.Close();101 ????????????????????}102 ????????????????}103 ????????????}104 ????????}105 ????????protected override void Render(HtmlTextWriter writer)106 ????????{107 ????????????using (StringWriter sw = new StringWriter())108 ????????????{109 ????????????????HtmlTextWriter tmpWriter = new HtmlTextWriter(sw);110 ????????????????base.Render(tmpWriter);111 ????????????????string val = sw.ToString();112 ????????????????val = val.Replace(@"!= ‘javascript:\‘\‘‘", @"!= ‘javascript:\‘\‘‘ && false");113 ????????????????writer.Write(val);114 ????????????}115 ????????}116 ????}
1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="ReportBuilderTest1.WebForm1" %> 2 ?3 <%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %> 4 <script src="Scripts/jquery-1.8.2.min.js"></script> 5 <script src="Scripts/jquery-ui-1.8.24.js"></script> 6 <!DOCTYPE html> 7 <html> 8 <head runat="server"> 9 ????<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />10 ????<title></title>11 ????<style>12 ????????body {13 ????????????margin: 0;14 ????????????padding: 0;15 ????????}16 ????</style>17 ????<%-- ???<script type="text/javascript">18 ????????//function Myfun() {19 ????????// ???//console.log("test");20 ????????// ???////$("#ReportViewer1_ctl05_ctl04_ctl00_Menu>div").setAttribute(‘style‘, ‘border: 1px solid transparent, background-color: transparent, cursor: default‘);21 ????????// ???////$("#ReportViewer1_ctl05_ctl04_ctl00_Button").click();22 23 ????????// ???//$("#ReportViewer1_ctl05_ctl04_ctl00_Menu").removeAttr("style");24 ????????// ???//$("#ReportViewer1_ctl05_ctl04_ctl00_Menu>div>a").eq(2).click();25 ????????// ???return true;26 ????????//}27 ????</script>--%>28 </head>29 <body>30 ????<form id="form1" runat="server">31 ????????<table align="center" border="0" cellpadding="0" cellspacing="0">32 ????????????<tr>33 ????????????????<td>34 ????????????????????<asp:ScriptManager ID="ScriptManager1" runat="server">35 ????????????????????</asp:ScriptManager>36 ????????????????????<rsweb:ReportViewer ID="ReportViewer1" runat="server" Height="100%" Width="98%" Font-Names="Verdana" Font-Size="8pt" SizeToReportContent="true">37 ????????????????????</rsweb:ReportViewer>38 ????????????????</td>39 ????????????</tr>40 ????????</table>41 ????</form>42 </body>43 </html>
还有一个文件夹Report下面有.rdl报表。这里就不写了。
MVC引用asp.net报表(测试小例子)
原文地址:https://www.cnblogs.com/Zhengxue/p/8777944.html