• <menu id="w2i4a"></menu>
  • logo FastReport-web報表開發(fā)系列教程(持續(xù)更新中)
    文檔首頁>>FastReport-web報表開發(fā)系列教程(持續(xù)更新中)>>如何實現(xiàn)報表在線設(shè)計器和Web報表的本地化

    如何實現(xiàn)報表在線設(shè)計器和Web報表的本地化


    報表的本地化是Web環(huán)境中非常重要且緊迫的一環(huán)。畢竟,你的網(wǎng)站可以由來自不同國家的人訪問。幸運的是,FastReport.Net具有很多不同語言的本地化,我們可以使用它。

    讓我們看看如何在示例MVC應(yīng)用程序中執(zhí)行此操作。

    首先,我們將FastReports庫連接到項目:

    • FastReport;
    • FastReport.Web。

    由于我將在網(wǎng)站的主頁上發(fā)布報表,那么用于處理報表對象的代目將加載到HomeController中,即在Index方法中:

    public ActionResult Index(string language)
     {
     WebReport webReport = new WebReport(); //create instance of WebReport object.
     webReport.Width = Unit.Percentage(100); //Set report width
     webReport.Height = Unit.Percentage(100); //Set report heigh
     string report_path = "J:\\Program Files (x86)\\FastReports\\FastReport.Net\\Demos\\Reports\\"; //Set reports path
     System.Data.DataSet dataSet = new System.Data.DataSet(); //create data set
     dataSet.ReadXml(report_path + "nwind.xml"); //Load xml database into dataset
     webReport.Report.RegisterData(dataSet, "NorthWind"); //register data source in the report
     webReport.Report.Load(report_path + "Simple Interactive.frx"); //load a report into WebReport object
     if (language == "ru") //check the language
     {
     webReport.DesignerLocale = "ru";
     webReport.LocalizationFile = "~/Localization/Russian.frl";
     }
     else
     {
     webReport.DesignerLocale = "en";
     }
     webReport.DesignReport = true; //Enable report designer
     ViewBag.WebReport = webReport; //pass the report to View
     return View();
     }
    

    在Index方法中,我將把下拉列表中的值傳遞給索引 - 俄語和英語兩種語言之一。(原作者是來自俄羅斯的FastReport工程師,這里我們以俄語為例)

    在第一行中,我們創(chuàng)建了一個WebReport對象的實例。接下來,將web報表的寬度和高度設(shè)置為100%。

    在變量report_path中寫入報表文件夾的路徑。創(chuàng)建一個數(shù)據(jù)集并將xml數(shù)據(jù)庫加載到其中。之后,我們在報表對象中注冊數(shù)據(jù)源。

    現(xiàn)在將報表加載到WebReport對象中。我們檢查參數(shù)“語言”的值。如果它等于“ru”,那么我們找到設(shè)計器,并將web報表本地化設(shè)為俄語。否則,將會本地化為英語。

    DesignReport屬性包括一個在線報表設(shè)計器。也就是說,我們在上面下載的報表將立即在設(shè)計器中打開。它仍然是在視圖中傳遞Web報表。

    你可能已經(jīng)注意到,報表的本地化來自本地化文件夾。你可以在程序FastReport.Net的根目錄中找到具有語言環(huán)境的文件夾。將其轉(zhuǎn)移到你的項目。

    另外,你需要將報表設(shè)計器添加到項目中。必須使用開發(fā)者網(wǎng)站(www.fast-report.com)客戶端面板中使用特殊的在線構(gòu)造函數(shù)構(gòu)建它。之后,你將收到設(shè)計器的檔案。將WebReportDesigner文件夾從此存檔傳送到此項目。

    現(xiàn)在讓我們轉(zhuǎn)到視圖。編輯位于文件夾Views-> Home中的文件Index.cshtml:

    @{
     ViewBag.Title = "Home Page";
    }
     
    @using (Html.BeginForm("Index","Home"))
    {
    @Html.DropDownList("Language", new List<SelectListItem>()
    {
     new SelectListItem(){ Text= "Russian", Value = "ru"},
     new SelectListItem(){ Text= "English", Value = "en"}
    }, "Select language")
     
     <input type="submit" value="Select" />
    }
     @ViewBag.WebReport.GetHtml()
    

    這里我們設(shè)置頁面的標題。接下來,使用BeginForm助手來創(chuàng)建表單。其中,我們指定控制器和操作的方法。在表單中,我們創(chuàng)建了一個下拉列表,并填充了兩個元素。請注意,Language列表的名稱與Index方法中參數(shù)的名稱相同。

    此外,這里有一個按鈕,我們接受選定的元素。最后,我們用@ViewBag顯示我們的報表。

    在文件夾Views-> Shared中,你需要編輯文件_Layout.cshtml。為標題添加腳本和樣式:

    <head>
     @WebReportGlobals.Scripts()
     @WebReportGlobals.Styles()
    </head>
    

    然后,在視圖文件夾中有一個Web.config文件。給它添加命名空間:

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

    在項目的根目錄,還有另一個Web.config。在其中我們添加一個處理句柄,緊隨模塊部分之后:

    <modules>
     …
     </modules>
     <handlers>
     <add name="FastReportHandler" path="FastReport.Export.axd" verb="*" type="FastReport.Web.Handlers.WebExport"/>
     </handlers>
    

    現(xiàn)在你可以運行該應(yīng)用程序:

    如何實現(xiàn)報表在線設(shè)計器和Web報表的本地化

    選擇俄語并點擊“選擇”按鈕:

    如何實現(xiàn)報表在線設(shè)計器和Web報表的本地化

    這樣我們就得到了俄語的語言環(huán)境。如果你在預(yù)覽中運行此報表,我們將在WebReport對象的工具欄中看到俄語:

    如何實現(xiàn)報表在線設(shè)計器和Web報表的本地化

    就這樣,我們完成了報表的本地化。我從列表中選擇了語言,展示了最簡單的本地化實現(xiàn)。要自動選擇語言環(huán)境,可以使用Request.UserLanguages屬性定義用戶瀏覽器的語言。

    產(chǎn)品介紹 下載試用 | 優(yōu)惠活動 | 在線客服 | 聯(lián)系Elyn

     

    推薦閱讀

    FastReport 2018 最新版本下載
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

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