• FastReport.Net在Rozor中的应用


    Webconfig中配置

    IIS6.0 <system.web> <httpHandlers> 下增加

    <httpHandlers>  
         <add path="FastReport.Export.axd" verb="*" type="FastReport.Web.Handlers.WebExport"/>  
    </httpHandlers>  

    IIS7.0后  <system.webServer>  <handlers>

     <system.webServer>
        <handlers>
          <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
          <remove name="OPTIONSVerbHandler" />
          <remove name="TRACEVerbHandler" />
          <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
          <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
          <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
          <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%Microsoft.NETFrameworkv4.0.30319aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
          <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%Microsoft.NETFramework64v4.0.30319aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
          <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
          <remove name="FastReportHandler"/> 
          <add name="FastReportHandler" path="FastReport.Export.axd" verb="*" type="FastReport.Web.Handlers.WebExport" />
        </handlers>
       
        <staticContent>
            <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
            <mimeMap fileExtension=".woff2" mimeType="application/x-font-woff" />
        </staticContent>
        
      </system.webServer>

    <system.web.webPages.razor>中增加节点

    <add namespace="FastReport" />
    <add namespace="FastReport.Web" />

    在Rozor中代码

    @{
        ViewBag.Title = "Index";
    }
    @FastReport.Web.WebReportGlobals.ScriptsWOjQuery()
    @FastReport.Web.WebReportGlobals.StylesWOjQuery()
    <style >
        .frtoolbar{
            height:40px !important;
        }
    </style>
    <div style="overflow:scroll;height:100%">
        @ViewBag.WebReport.GetHtml()
    </div>

    Action代码

     public ActionResult Index()
            {
                SetReport();
                webReport.Width = Unit.Percentage(100); // 
                webReport.Height = Unit.Percentage(100);// ; 
                webReport.ToolbarIconsStyle = ToolbarIconsStyle.Red;
                webReport.ToolbarStyle = ToolbarStyle.Small;
                webReport.ShowExports = true;
                webReport.ShowToolbar = true;
                webReport.ShowZoomButton = true;
                webReport.ShowPrint = true;
                webReport.AutoHeight = true;
                ViewBag.WebReport = webReport;
                return View();
            }
            private void SetReport()
            {
                string report_path = GetReportPath();
                var user = (User)HttpContext.Session[Common.Constants.USER_KEY];
                webReport.Report.Load(report_path + "test2.frx");
                webReport.Report.Parameters.FindByName("工号").Value = user.SysOperator.LoginName;
                webReport.ToolbarIconsStyle = ToolbarIconsStyle.Black;
                webReport.ShowExports = true;
                webReport.ShowPrint = true;
                ViewBag.WebReport = webReport;
            }
            private string GetReportPath()
            {
                string report_path = Config.ApplicationFolder;
                using (XmlDocument xml = new XmlDocument())
                {
                    xml.Load(@Server.MapPath("../../App_Data/fastReport.config"));
                    foreach (XmlItem item in xml.Root.Items)
                        if (item.Name == "Config")
                            foreach (XmlItem configitem in item.Items)
                                if (configitem.Name == "Reports")
                                    report_path += configitem.GetProp("Path");
                }
                return report_path;
            }

    fastReport.config

    <?xml version="1.0" encoding="utf-8" ?>
    <Test>
             <Config>
                        <Reports Path="App_Data
    eport"/>
             </Config>
    </Test>

    FastReport设计

    因为这里的数据源是存储过程并且用到了临时表,所有存储过程中需要增加

    IF 1=0 BEGIN  
        SET FMTONLY OFF  
    END  

    否则提示#temp无效

    这里是通过程序后台传递参数,所以要注意一下

    1.

    2.

    3.

    PS:还有一点需要强调,FastReport数据源可以直接加载,不需要后台传递DataSet也是可以加载的,但要保证存储过程的正确性

    附上FastReport可用版本http://download.csdn.net/detail/anbylau2130/9608832

  • 相关阅读:
    纯CSS打造好看的按钮样式
    jQuery手机端触摸卡片切换效果
    CSS手动改变DIV高宽
    Windows 10 的音频和 MIDI API将统一
    美食网站响应式精美模板
    三道Javascript的练习题
    html5手机端遮罩弹出菜单代码
    CSS的::selection使用方法
    Html5绘制饼图统计图
    JQuery实现一个简单的鼠标跟随提示效果
  • 原文地址:https://www.cnblogs.com/anbylau2130/p/5792689.html
Copyright © 2020-2023  润新知