原創|使用教程|編輯:我只采一朵|2017-12-21 11:14:48.000|閱讀 1091 次
概述:報表的本地化是Web環境中非常重要且緊迫的一環。畢竟,你的網站可以由來自不同國家的人訪問。那么具體應該如何實現呢?
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
報表的本地化是Web環境中非常重要且緊迫的一環。畢竟,你的網站可以由來自不同國家的人訪問。幸運的是,具有很多不同語言的本地化,我們可以使用它。
讓我們看看如何在示例MVC應用程序中執行此操作。
首先,我們將FastReports庫連接到項目:
由于我將在網站的主頁上發布報表,那么用于處理報表對象的代目將加載到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工程師,這里我們以俄語為例)
在第一行中,我們創建了一個WebReport對象的實例。接下來,將web報表的寬度和高度設置為100%。
在變量report_path
中寫入報表文件夾的路徑。創建一個數據集并將xml數據庫加載到其中。之后,我們在報表對象中注冊數據源。
現在將報表加載到WebReport對象中。我們檢查參數“語言”的值。如果它等于“ru”,那么我們找到設計器,并將web報表本地化設為俄語。否則,將會本地化為英語。
DesignReport屬性包括一個在線報表設計器。也就是說,我們在上面下載的報表將立即在設計器中打開。它仍然是在視圖中傳遞Web報表。
你可能已經注意到,報表的本地化來自本地化文件夾。你可以在程序FastReport.Net的根目錄中找到具有語言環境的文件夾。將其轉移到你的項目。
另外,你需要將報表設計器添加到項目中。必須使用開發者網站()客戶端面板中使用特殊的在線構造函數構建它。之后,你將收到設計器的檔案。將WebReportDesigner文件夾從此存檔傳送到此項目。
現在讓我們轉到視圖。編輯位于文件夾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()
這里我們設置頁面的標題。接下來,使用BeginForm助手來創建表單。其中,我們指定控制器和操作的方法。在表單中,我們創建了一個下拉列表,并填充了兩個元素。請注意,Language列表的名稱與Index方法中參數的名稱相同。
此外,這里有一個按鈕,我們接受選定的元素。最后,我們用@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>
現在你可以運行該應用程序:
選擇俄語并點擊“選擇”按鈕:
這樣我們就得到了俄語的語言環境。如果你在預覽中運行此報表,我們將在WebReport對象的工具欄中看到俄語:
就這樣,我們完成了報表的本地化。我從列表中選擇了語言,展示了最簡單的本地化實現。要自動選擇語言環境,可以使用Request.UserLanguages屬性定義用戶瀏覽器的語言。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn