• <menu id="w2i4a"></menu>
  • logo FastReport-web報(bào)表開(kāi)發(fā)系列教程(持續(xù)更新中)

    文檔首頁(yè)>>FastReport-web報(bào)表開(kāi)發(fā)系列教程(持續(xù)更新中)>>如何在Vue.js應(yīng)用程序中使用FastRerport.Core實(shí)現(xiàn)Web報(bào)表的顯示

    如何在Vue.js應(yīng)用程序中使用FastRerport.Core實(shí)現(xiàn)Web報(bào)表的顯示


    框架Vue.js現(xiàn)在非常受歡迎,幾乎與Angular相提并論。我們已經(jīng)討論過(guò)在Angular應(yīng)用程序中使用FastReport.Core的方法(請(qǐng)點(diǎn)擊這里回顧詳細(xì)教程)?,F(xiàn)在讓我們看看如何在Vue.js上的單頁(yè)應(yīng)用程序中實(shí)現(xiàn)FastReport Web報(bào)表的顯示,并在ASP .Net Core上使用后端。

    為了完成這個(gè)目的,我們需要安裝Node.js和Net Core SDK 2.0或更多“fresh”。 默認(rèn)情況下,dotnet sdk沒(méi)有vue應(yīng)用程序模板。但您可以安裝它。為此,請(qǐng)創(chuàng)建一個(gè)目錄,在該目錄中放置未來(lái)的應(yīng)用程序并在其中運(yùn)行PowerShell命令行。這可以從上下文菜單中完成,通過(guò)右鍵單擊文件夾中的空白區(qū)域并按住Shift鍵來(lái)調(diào)用該菜單。

    在命令提示符下,輸入命令:

    dotnet new - install Microsoft.AspNetCore.SpaTemplates :: *

    之后,您可以使用Vue模板生成演示應(yīng)用程序。

    使用它并使用以下命令創(chuàng)建應(yīng)用程序:

    dotnet new vue -o FRCoreVue

    創(chuàng)建應(yīng)用程序后,您將看到一條警告,您需要運(yùn)行該命令:

    npm install

    但在執(zhí)行之前,您需要轉(zhuǎn)到創(chuàng)建的目錄:

    cd FRCoreVue

    安裝完所有必需的軟件包后,打開(kāi)項(xiàng)目文件.csproj。

    要使用FastReport,請(qǐng)?jiān)贜uGet管理器中安裝軟件包(點(diǎn)擊這里高速下載最新版FastReport.Net安裝包)。選擇位于文件夾中的本地包源:J: \ Program Files (x86) \ FastReports \ FastReport.Net \ Nugets。

    如何在Vue.js應(yīng)用程序中使用FastRerport.Core實(shí)現(xiàn)Web報(bào)表的顯示

    安裝包:FastReport.Core和FastReport.Web。

    要顯示報(bào)表,我們需要報(bào)表模板及其數(shù)據(jù)源。因此,在wwwroot目錄中,創(chuàng)建App_Data文件夾并在其中放置所需的報(bào)表模板和數(shù)據(jù)庫(kù)(如果您使用的是文件數(shù)據(jù)源)。

    如何在Vue.js應(yīng)用程序中使用FastRerport.Core實(shí)現(xiàn)Web報(bào)表的顯示

    在Startup.cs文件中,向Configure方法添加一行代碼:

    app.UseFastReport();

    在Controllers文件夾中,打開(kāi)SampleDataController.cs文件。在這個(gè)類中已經(jīng)有幾種演示方法,我們不需要它們,可以安全地刪除它們。相反,添加自己的方法:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using Microsoft.AspNetCore.Mvc;
    using FastReport.Web;
    using Microsoft.AspNetCore.Hosting;
     
    namespace FRCoreVue.Controllers
    {
     [Route("api/[controller]")]
     public class SampleDataController : Controller
     {
     private IHostingEnvironment _env;
     
     public SampleDataController(IHostingEnvironment env)
     {
     _env = env;
     }
     
     [HttpGet("[action]")]
     public IActionResult DisplayReport(string name)
     {
     var webRoot = _env.WebRootPath;
     WebReport WebReport = new WebReport();
     WebReport.Width = "1000";
     WebReport.Height = "1000";
     WebReport.Report.Load(System.IO.Path.Combine(webRoot, (String.Format("App_Data/{0}.frx", name)))); // Load the report into the WebReport object
     System.Data.DataSet dataSet = new System.Data.DataSet(); // Create a data source
     dataSet.ReadXml(System.IO.Path.Combine(webRoot, "App_Data/nwind.xml")); // Open the xml database
     WebReport.Report.RegisterData(dataSet, "NorthWind"); // Registering the data source in the report
     ViewBag.WebReport = WebReport; // pass the report to View
     return View();
     }
    }

    DisplayReport方法采用參數(shù)“name”,這是報(bào)表的名稱。因此,此方法將所需的報(bào)表模板加載到WebReport對(duì)象中。右鍵單擊方法簽名,然后從菜單中選擇添加視圖“Add view ...”。

    視圖創(chuàng)建窗口將打開(kāi)。只需單擊確定“Ok”。使用以下內(nèi)容替換創(chuàng)建的視圖中的代碼:

    @await ViewBag.WebReport.Render()

    我們現(xiàn)在轉(zhuǎn)向Vue上的客戶端應(yīng)用程序。在項(xiàng)目樹(shù)中,展開(kāi)ClientApp-> components文件夾。以下是組件:頁(yè)面、菜單等。我們將創(chuàng)建自己的組件。添加報(bào)表文件夾。在其中創(chuàng)建文件report.vue.html:

        Matrix Master-Detail Barcode   Show Report

    頁(yè)面模板將顯示報(bào)表的下拉列表。選擇一個(gè)值并單擊顯示報(bào)表“Show Report”按鈕將顯示包含該報(bào)表的框架。Variable-flag show負(fù)責(zé)顯示幀。默認(rèn)情況下,其值為false,不顯示框架。但加載報(bào)表后,其值將更改為true,并顯示框架?,F(xiàn)在我們將實(shí)現(xiàn)用于處理report.ts模板的腳本,我們將將其添加到同一個(gè)報(bào)表文件夾中:

    import Vue from 'vue';
    import { Component } from 'vue-property-decorator';
     
    @Component
    export default class ReportComponent extends Vue {
     report: string = 'Matrix';
     url: string = '';
     show: boolean = false;
     
     Clicked() {
     if (this.report != null) {
     this.show = true;
     this.url = "api/SampleData/DisplayReport?name=" + this.report;
     }
     }
    }

    變量報(bào)表具有默認(rèn)值,因此最初在下拉列表中選擇它。Clicked函數(shù)根據(jù)選定的報(bào)表名稱形成控制器中方法的鏈接,并設(shè)置show flag的值。

    現(xiàn)在從navmenu.vue.html文件中的站點(diǎn)側(cè)菜單中刪除不必要的演示頁(yè)面鏈接:

    <template>
     <div>
     <div class="navbar navbar-inverse">
     <div>
     <button type="button" data-toggle="collapse" data-target=".navbar-collapse">
     <span>Toggle navigation</span>
     <span></span>
     <span></span>
     <span></span>
     </button>
     <a href="/">FRCoreVue</a>
     </div>
     </div>
     </div>
    </template>
     
    <style src="./navmenu.css" />

    還要編輯加載組件的文件boot.ts:

    import './css/site.css';
    import 'bootstrap';
    import Vue from 'vue';
    import VueRouter from 'vue-router';
    Vue.use(VueRouter);
     
    const routes = [
     { path: '/', component: require('./components/report/report.vue.html') }
    ];
     
    new Vue({
     el: '#app-root',
     router: new VueRouter({ mode: 'history', routes: routes }),
     render: h => h(require('./components/app/app.vue.html'))
    });

    現(xiàn)在我們的組件將顯示在主頁(yè)面上。運(yùn)行應(yīng)用程序:

    如何在Vue.js應(yīng)用程序中使用FastRerport.Core實(shí)現(xiàn)Web報(bào)表的顯示

    我們看到一個(gè)帶有下拉列表和按鈕的空白頁(yè)面。展開(kāi)下拉列表:

    如何在Vue.js應(yīng)用程序中使用FastRerport.Core實(shí)現(xiàn)Web報(bào)表的顯示

    我們有三份報(bào)表。讓我們選擇Master-Detail并單擊Show Report按鈕:

    如何在Vue.js應(yīng)用程序中使用FastRerport.Core實(shí)現(xiàn)Web報(bào)表的顯示

    我們得到一份報(bào)表。同時(shí),我們可以使用Web報(bào)表工具欄中的所有功能。例如,導(dǎo)出:

    如何在Vue.js應(yīng)用程序中使用FastRerport.Core實(shí)現(xiàn)Web報(bào)表的顯示

    我們?cè)赩ue.js上編寫(xiě)的單頁(yè)應(yīng)用程序中實(shí)現(xiàn)了Web報(bào)表顯示。如您所見(jiàn),由于配置了Vue + ASP .Net Core捆綁,實(shí)現(xiàn)非常簡(jiǎn)單。

    • Facebook

    • Twitter

    • VK

    • Code



    產(chǎn)品介紹 | 下載試用 | 優(yōu)惠活動(dòng) | 在線客服

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();