原創(chuàng)|使用教程|編輯:我只采一朵|2017-12-21 11:14:48.000|閱讀 1091 次
概述:報(bào)表的本地化是Web環(huán)境中非常重要且緊迫的一環(huán)。畢竟,你的網(wǎng)站可以由來自不同國(guó)家的人訪問。那么具體應(yīng)該如何實(shí)現(xiàn)呢?
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
報(bào)表的本地化是Web環(huán)境中非常重要且緊迫的一環(huán)。畢竟,你的網(wǎng)站可以由來自不同國(guó)家的人訪問。幸運(yùn)的是,具有很多不同語言的本地化,我們可以使用它。
讓我們看看如何在示例MVC應(yīng)用程序中執(zhí)行此操作。
首先,我們將FastReports庫連接到項(xiàng)目:
由于我將在網(wǎng)站的主頁上發(fā)布報(bào)表,那么用于處理報(bào)表對(duì)象的代目將加載到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)建了一個(gè)WebReport對(duì)象的實(shí)例。接下來,將web報(bào)表的寬度和高度設(shè)置為100%。
在變量report_path
中寫入報(bào)表文件夾的路徑。創(chuàng)建一個(gè)數(shù)據(jù)集并將xml數(shù)據(jù)庫加載到其中。之后,我們?cè)趫?bào)表對(duì)象中注冊(cè)數(shù)據(jù)源。
現(xiàn)在將報(bào)表加載到WebReport對(duì)象中。我們檢查參數(shù)“語言”的值。如果它等于“ru”,那么我們找到設(shè)計(jì)器,并將web報(bào)表本地化設(shè)為俄語。否則,將會(huì)本地化為英語。
DesignReport屬性包括一個(gè)在線報(bào)表設(shè)計(jì)器。也就是說,我們?cè)谏厦嫦螺d的報(bào)表將立即在設(shè)計(jì)器中打開。它仍然是在視圖中傳遞Web報(bào)表。
你可能已經(jīng)注意到,報(bào)表的本地化來自本地化文件夾。你可以在程序FastReport.Net的根目錄中找到具有語言環(huán)境的文件夾。將其轉(zhuǎn)移到你的項(xiàng)目。
另外,你需要將報(bào)表設(shè)計(jì)器添加到項(xiàng)目中。必須使用開發(fā)者網(wǎng)站()客戶端面板中使用特殊的在線構(gòu)造函數(shù)構(gòu)建它。之后,你將收到設(shè)計(jì)器的檔案。將WebReportDesigner文件夾從此存檔傳送到此項(xiàng)目。
現(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()
這里我們?cè)O(shè)置頁面的標(biāo)題。接下來,使用BeginForm助手來創(chuàng)建表單。其中,我們指定控制器和操作的方法。在表單中,我們創(chuàng)建了一個(gè)下拉列表,并填充了兩個(gè)元素。請(qǐng)注意,Language列表的名稱與Index方法中參數(shù)的名稱相同。
此外,這里有一個(gè)按鈕,我們接受選定的元素。最后,我們用@ViewBag顯示我們的報(bào)表。
在文件夾Views-> Shared中,你需要編輯文件_Layout.cshtml。為標(biāo)題添加腳本和樣式:
<head> @WebReportGlobals.Scripts() @WebReportGlobals.Styles() </head>
然后,在視圖文件夾中有一個(gè)Web.config文件。給它添加命名空間:
<namespaces> <add namespace="FastReport" /> <add namespace="FastReport.Web" /> </namespaces>
在項(xiàng)目的根目錄,還有另一個(gè)Web.config。在其中我們添加一個(gè)處理句柄,緊隨模塊部分之后:
<modules> … </modules> <handlers> <add name="FastReportHandler" path="FastReport.Export.axd" verb="*" type="FastReport.Web.Handlers.WebExport"/> </handlers>
現(xiàn)在你可以運(yùn)行該應(yīng)用程序:
選擇俄語并點(diǎn)擊“選擇”按鈕:
這樣我們就得到了俄語的語言環(huán)境。如果你在預(yù)覽中運(yùn)行此報(bào)表,我們將在WebReport對(duì)象的工具欄中看到俄語:
就這樣,我們完成了報(bào)表的本地化。我從列表中選擇了語言,展示了最簡(jiǎn)單的本地化實(shí)現(xiàn)。要自動(dòng)選擇語言環(huán)境,可以使用Request.UserLanguages屬性定義用戶瀏覽器的語言。
產(chǎn)品介紹 | 下載試用 | 優(yōu)惠活動(dòng) | | 聯(lián)系Elyn
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn