• <menu id="w2i4a"></menu>
  • logo FastReport-web報(bào)表開發(fā)系列教程(持續(xù)更新中)
    文檔首頁>>FastReport-web報(bào)表開發(fā)系列教程(持續(xù)更新中)>>如何在單頁應(yīng)用程序Angular 7中使用FastReport Core Web報(bào)表

    如何在單頁應(yīng)用程序Angular 7中使用FastReport Core Web報(bào)表


    下載FastReport.Net最新版本

    FastReport.Net在線訂購(gòu)火熱進(jìn)行中,立可享受特別優(yōu)惠!點(diǎn)此鏈接,速來搶購(gòu)?。?!

        單頁應(yīng)用程序的概念正在尋找越來越多的支持者。最著名的單頁框架之一是Angular,它是一個(gè)單頁 的JavaScript應(yīng)用程序框架。Angular的第一個(gè)版本基于JavaScript,但是所有后續(xù)版本都已經(jīng)在使用TypeScript,并且與第一個(gè)版 本完全不同。在AngularJS上創(chuàng)建新應(yīng)用程序沒有任何意義,因此我們將使用當(dāng)前版本的Angular 7。

        Microsoft成功地將Angular和ASP結(jié)合起來。Net Core MVC。因此,使用ASP .Net Core MVC的實(shí)現(xiàn) ,在單頁面應(yīng)用程序中顯示報(bào)表相對(duì)容易。

    Node.js安裝

        要在Angular框架上開始開發(fā),您需要預(yù)先安裝一個(gè)平臺(tái),以便在服務(wù)器端執(zhí)行JavaScript代碼。它 叫做Node.js。

        您還需要安裝.Net Core SDK 2.0或更新版本。但是,如果您安裝了Microsoft Visual Studio 2017 ,則無需執(zhí)行此操作。

    如何創(chuàng)建應(yīng)用程序?

        有兩種方法 - 在Visual Studio中創(chuàng)建新項(xiàng)目或從命令行運(yùn)行命令。

        對(duì)于第一個(gè)選項(xiàng),您必須在Visual Studio擴(kuò)展中安裝Angular應(yīng)用程序模板。

        第二個(gè)更簡(jiǎn)單。為您的應(yīng)用程序創(chuàng)建一個(gè)文件夾 在Windows命令行中,使用cd命令轉(zhuǎn)到創(chuàng)建的文件 夾并執(zhí)行以下命令:

    dotnet new angular -o AngularFRCore

        如您所知,AngularFRCore是項(xiàng)目的名稱。創(chuàng)建應(yīng)用程序后,您需要安裝typescript庫。我們將使用 Node.js npm平臺(tái)庫安裝程序執(zhí)行此操作。在控制臺(tái)執(zhí)行了創(chuàng)建應(yīng)用程序的命令,在應(yīng)用程序目錄中運(yùn)行另一個(gè)命令:

    npm install -g typescript

        現(xiàn)在,打開項(xiàng)目,沒有解決方案文件,它將在您第一次啟動(dòng)項(xiàng)目時(shí)創(chuàng)建。

        我們的演示應(yīng)用程序的目標(biāo)是展示如何在單頁應(yīng)用程序中使用FastReport.Core。讓我們將 FastReport庫添加到我們的項(xiàng)目中。打開NuGet包管理器。在右上角,您可以選擇數(shù)據(jù)包的來源。我們對(duì)本地源感興趣,但首先需要 配置它。為此,請(qǐng)單擊右上角的齒輪圖標(biāo)。我們使用包設(shè)置本地文件夾的路徑:

        默認(rèn)情況下,此文件夾是:C:\ Program Files(x86)\ FastReports \ FastReport.Net \ Nugets。

        通過安裝FastReport.Net,您可以獲得上述包裝中的現(xiàn)成包裝。讓我們回到包管理器:

    FastReport

        現(xiàn)在有兩個(gè)包,安裝它們。  要在應(yīng)用程序中使用FastReport,需要在Startup.cs文件中添加 一行代碼:

    public void Configure(IApplicationBuilder app, IHostingEnvironment env) 
    { … 
    app.UseFastReport();
    …}

        如果您瀏覽項(xiàng)目樹,可以從MVC應(yīng)用程序中看到我們熟悉的控制器和模型目錄??梢允褂脦缀跷锤淖? 的MVC .Net Core應(yīng)用程序作為后端。Controllers文件夾中已有一個(gè) - SampleDataController。隨意清除課程內(nèi)容 - 我們將創(chuàng)建 自己的方法:

    [HttpGet("[action]")] 
    public IActionResult ShowReport(string name) 
    { WebReport WebReport = new WebReport(); 
    WebReport.Width = "1000"; 
    WebReport.Height = "1000"; 
    WebReport.Report.Load(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("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();
     }

        如果您已經(jīng)熟悉FastReport.Core,那么此方法沒有任何新內(nèi)容。我們創(chuàng)建了Web報(bào)表對(duì)象,將報(bào)表 模板加載到其中,創(chuàng)建并注冊(cè)了數(shù)據(jù)源并將報(bào)表傳遞給視圖。此方法有一個(gè)參數(shù) - 我們用于加載所需報(bào)表模板的報(bào)表的名稱。

        FastReport.Net集包含一個(gè)帶有演示報(bào)表的文件夾:

        C:\ Program Files(x86)\ FastReports \ FastReport.Net \ Demos \ Reports

        我們將從中獲取幾個(gè)模板和一個(gè)nwind.xml數(shù)據(jù)庫。但首先,在項(xiàng)目根目錄中創(chuàng)建App_Data文件夾。 現(xiàn)在從上面的文件夾中將文件拖入其中:

        Barcode.frx,Master-Detail.frx,Matrix.frx,nwind.xml。

        下一步是為此方法創(chuàng)建一個(gè)視圖。

        我們的項(xiàng)目中沒有Views文件夾。在項(xiàng)目根目錄中創(chuàng)建它。在此文件夾中,添加另一個(gè)名為 SampleData的文件夾。最后,在此文件夾中,我們創(chuàng)建了一個(gè)新視圖 - ShowReport.chtml,其中包含以下內(nèi)容:

    @await ViewBag.WebReport.Render()

        在異步模式下,我們正在等待生成報(bào)表的HTML版本。

        所以,我們準(zhǔn)備了一個(gè)與Angular一起提供的后端。我們來看看ClientApp文件夾。這是一個(gè)單頁的 應(yīng)用程序。我們對(duì)src - > app目錄感興趣。以下是負(fù)責(zé)顯示內(nèi)容的主要文件 - 頁面模板及其類型腳本處理程序。主頁模板是 app.component.html。我們將完全編輯它:

        FastReport.Core Demo Select a report and click the button    Matrix  Master-Detail  Barcode

        首先,我們?yōu)椴煌膱?bào)表顯示三個(gè)單選按鈕。每個(gè)按鈕都訂閱了Click事件,我們通過該事件設(shè)置報(bào) 表變量的值。該函數(shù)將報(bào)表的名稱作為參數(shù)。通過這種方式,我們組織了所需報(bào)表模板的選擇。這是一個(gè)相當(dāng)原始的實(shí)現(xiàn),但為了 演示報(bào)表,不再需要它。

        下面,我們展示了一個(gè)名為ShowReport的按鈕,它也使用Clicked()處理程序訂閱了click事件。 注意條件* ngIf =“show”的div。如果show變量為true,則將執(zhí)行內(nèi)部變量中的代碼。在我們的例子中,將顯示框架。這樣做是為 了在最初加載頁面時(shí)不顯示空框架。此外,當(dāng)我們選擇報(bào)告并單擊“顯示報(bào)表”按鈕時(shí),將顯示包含報(bào)表的框架。

        在框架屬性中,我們從變量url設(shè)置源。有趣的是,我們?cè)趕afeUrl函數(shù)的幫助下“規(guī)范化”這個(gè)變 量,并通過管道應(yīng)用它。此函數(shù)將檢查URL的安全性和有效字符,并將其顯示為正確的格式。我們稍后會(huì)詳細(xì)介紹它。

        現(xiàn)在,查看app.component.ts組件腳本,該腳本負(fù)責(zé)處理上面討論的模板:

    import { Component } from '@angular/core';  
    @Component(
    { selector: 'app-root', 
    templateUrl: './app.component.html', 
    styleUrls: ['./app.component.css']})
    export class AppComponent 
    { title = 'app'; 
    show: boolean = false; 
    url: string; report: string;  
    Clicked() 
    { if (this.report != null) 
    { this.show = true; 
    this.url = "api/SampleData/ShowReport?name=" + this.report; 
    } }}

        以下是我們?cè)陧撁婺0逯锌吹降膕how和url變量。以及變量報(bào)表,其中包含所選報(bào)表的名稱。 Clicked()函數(shù)將show變量設(shè)置為true,并在url變量中設(shè)置報(bào)表的路徑。

        現(xiàn)在我們將創(chuàng)建safeUrl函數(shù),我們?cè)诠艿乐惺褂米兞縰rl。在app目錄文件safeUrl.pipe.ts中:

    import { Pipe, PipeTransform } from '@angular/core';
    import { DomSanitizer } from '@angular/platform-browser'; 
    @Pipe({ name: 'safeUrl' })
    export class SafeUrlPipe implements PipeTransform { 
    constructor(private sanitizer: DomSanitizer) { } 
    transform(url) {
    return this.sanitizer.bypassSecurityTrustResourceUrl(url); 
    }}

    要在頁面模板中使用此函數(shù),請(qǐng)?jiān)赼pp.module.ts中添加此管道模塊的聲明:

    import { BrowserModule } from '@angular/platform-browser';
    import { NgModule } from '@angular/core';
    import { FormsModule } from '@angular/forms';
    import { HttpClientModule } from '@angular/common/http';
    import { RouterModule } from '@angular/router';
    import { SafeUrlPipe } from "./safeUrl.pipe";
    import { AppComponent } from './app.component';
     
    @NgModule({
     declarations: [
     AppComponent,
     SafeUrlPipe
     ],
     imports: [
     BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),
     HttpClientModule,
     FormsModule
     ],
     providers: [],
     bootstrap: [AppComponent]
    })
    export class AppModule { }

    這樣就完成了演示應(yīng)用程序的工作。運(yùn)行應(yīng)用程序:

    FastReport

    首先,您需要選擇其中一個(gè)報(bào)表,然后單擊按鈕:

    FastReport

    現(xiàn)在選擇另一個(gè)報(bào)表并單擊按鈕:

    FastReport

    因此,您已經(jīng)看到在Angular單頁面應(yīng)用程序中使用FastReport.Core報(bào)告生成器并不比通常的ASP .Net Core應(yīng)用程序困難得多 。


    相關(guān)鏈接:

    關(guān)于產(chǎn)品的任何問題,歡迎咨詢在線客服>>

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    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); })();