在设计报表时,可能会出现以下情况:查看呈现报表的用户使用不同的语言文化。在这种情况下,他们可以制作所需数量的报表副本,每个副本都以特定的语言进行本地化。但是,在编辑一个报表模板时,您将必须对其所有副本进行更改。因此,报表模板中的每次更改都会增加准备报表所花费的时间,并显着增加该报表副本中出现错误的可能性。
stimulsoft报表工具提供了根据所选报表区域性对报表进行本地化的功能。为此使用了全球化字符串(Globalization Strings)工具。您可以定义一个语言文化列表,以翻译报表的元素。您可以为其配置本地化的项目包括:
-报表属性:报表别名、报表作者、报表说明;
-文本组件、单元格中的文本、富文本;
-表和交叉表组件的每个单元格;
-报表中的变量;
-图表组件的文本字段(标签、图例、行、图表,也可以覆盖这些图表项目之前和之后的文本属性的值)。
您应该知道,对于每个文本组件以及“表”和“交叉表”中的每个单元格,您都可以覆盖此组件的多个属性。例如,如果报表使用文本组件Text1,则:
-在Text1.Hyperlink属性中,选择特定区域性时可以指定超链接(或表达式)。例如,您可以在网站的本地化页面上指定超链接(或表达式)。
-在Text1.Tag属性中,当您选择特定区域性时,可以为此文本组件指定标签(或表达式)。报表中的标签用于引用特定的报表组件。
-在Text1.Text属性中,您可以指定当呈现报表时将处理的文本组件的文本(或表达式),并在选择特定区域性时将其显示给用户;
-在Text1.Tooltip属性中,当您选择特定区域性时,可以指定此文本组件的工具提示(或表达式)。
如果未填充属性,则选择特定区域性时,结果将为空。例如,如果您没有在Text1.Text属性中为特定区域性指定任何内容,那么当您选择此区域性时,将打印不包含任何内容的文本组件。
注意
报表语言文化不取决于报表设计器的本地GUI。报表的语言文化取决于文化财产的价值。此属性的值列表取决于操作系统支持的区域性列表。默认情况下,报表使用操作系统的当前区域性。
要调用全球化编辑器(Globalization Editor),您应该转到报表属性,然后在报表模板区域中单击。
然后在属性面板上,单击“Globalization”全球化属性上的“Browse”浏览按钮。下面是全球化编辑器(Globalization Editor)的视图。
1.单击此按钮添加新的区域性。添加的语言文化将显示在文化列表中。
2.在列表中选择区域性,然后单击此按钮以从列表中删除区域性。
3.用于控制区域性的按钮。
-从报表中获取区域性设置,在这种情况下,对于所选区域性的项目,将指定报表中使用的值。
-将区域性设置传输到报表,在这种情况下,将为报表项指定所选区域性的值。
4.如果启用了“Auto Localize Report on Run”运行时自动本地化报表选项,则在呈现报表时,报表引擎将检查报表区域性以及它们是否显示在列表中。如果找到相同的区域性,则将替换报表项目的表达式。
5.区域性列表,设置将要进行的报表项目的本地化(即替换特定区域性中指定的表达式)。
6.报表项目列表,可以配置本地化。
7.选择特定区域性时将分配给所选报表项目的项目表达式。
语言文化列表的设置完成,报表项目的本地化也就完成了(即替换特定文化中指定的表达式)。
报表项目列表,可以配置本地化。
选择特定区域性时将分配给所选报表项目的项目表达式。
为了自动本地化报表,您应该在指定区域性列表及其设置之后指定报表区域性。 为此,请在报表的文化(Culture)属性中选择所需的值。然后,在呈现报表时,报表引擎将检查报表区域性及其在区域性列表中的存在。如果发现相同的区域性,则将替换报表项目的表达式。
您还可以通过代码设置报表区域性。为此,应在呈现报表之前调用特殊方法,并将区域性指定为参数。
信息
指示为方法论点的区域性应在区域性列表中。否则,将不执行报表的本地化,并且将与默认元素的本地化一起显示。
要在Reports.Net,Reports.Wpf,Reports.Web,Reports.Java,Reports.UWP,Reports.Silverlight中本地化报表,请执行以下操作:
StiReport report = new StiReport();
string cultureName = "en-US";
...
report.LocalizeReport(cultureName);
report.Render(false);
//report.LocalizeReport(cultureName);
//report.Show();
要在Reports.JS,Reports.PHP(JS)中全球化报表:
var report = new Stimulsoft.Report.StiReport();
var cultureName = "en-US";
report.localizeReport(cultureName);
report.render();
要在Reports.Flex中全球化报表:
var report: StiReport = new StiReport();
var cultureName: String = "en";
...
report.localizeReport(cultureName);
report.render(false);
...
//report.localizeReport(cultureName);
//report.show();
要在Reports.PHP(Flash)中本地化报表,您需要在查看报表时为GET或POST请求设置全球化值:
http://localhost/stimulsoft/index.php?
stimulsoft_client_key=ViewerFx&stimulsoft_report_key=Report.mrt&globalization=en-US
要在Report.Java(Flash)中本地化报表,应在查看报表时设置本地化参数:
<stiviewerfx:button value="Show Report" report="Report.mrt" variableStr="globalization=en-US" />
全球化(globalization)参数指定将在报表中使用哪种区域性。