水晶报表 多语言
水晶报表的语言是通过服务器上的JS文件来控制的.
C:\Windows\Microsoft.NET\Framework\v2.0.50727\ASP.NETClientFiles\CrystalReportWebFormViewer4\js目录的(这个目录应该是安装水晶报表后就会自动加上去的)
1.自动选择.
设置程序的语言:
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US");
程序变成英文.
看看页面中引用了两个JS,一个是语言包,一个是一些函数(应该是用于这个操作一些语言包的吧)
<script src="/aspnet_client/System_Web/2_0_50727/CrystalReportWebFormViewer4/js/strings_en.js" type="text/javascript"></script>
<script src="/aspnet_client/System_Web/2_0_50727/CrystalReportWebFormViewer4/js/export.js" type="text/javascript"></script>
设置成中文:
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("zh-CN");
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-CN");
程序变成中文.
看看页面中引用了两个JS,一个是语言包,一个是一些函数(应该是用于这个操作一些语言包的吧)
<script src="/aspnet_client/System_Web/2_0_50727/CrystalReportWebFormViewer4/js/strings_chs.js" type="text/javascript"></script>
<script src="/aspnet_client/System_Web/2_0_50727/CrystalReportWebFormViewer4/js/export.js" type="text/javascript"></script>
以上可以看出,只要设置程序的CurrentCulture ,CurrentUICulture ,水晶报表就会自己选择JS语言包
2.强制选择语言包
强制它显示什么语言.
1.界面上,在页面的后面加.
-
<script> var xString; xString=document.body.innerHTML; xString=xString.replace("导出","My Export"); xString=xString.replace("主报表","My Report"); document.body.innerHTML=xString; </script>
用类似的代码,可以把工具栏全部替换掉。
2.修改导出、打印等提示页面
这个比较麻烦,本想去获取输出的js中去修改
<script src="/aspnet_client/System_Web/2_0_50727/CrystalReportWebFormViewer4/js/strings_chs.js" type="text/javascript"></script>
<script src="/aspnet_client/System_Web/2_0_50727/CrystalReportWebFormViewer4/js/export.js" type="text/javascript"></script>
这里的JS语言包,怎么搞,都不行...后来想去一个变通的方法.
以下就中, 英文 处理,如果还有其它的语言,还要相应的添加或修改JS文件.
步骤1:复制C:\Windows\Microsoft.NET\Framework\v2.0.50727\ASP.NETClientFiles\CrystalReportWebFormViewer4\js\下strings_chs.js ,string_en.js, export.js文件到项目中(以后引用就用这个文件了).
步骤2:清空的C:\Windows\Microsoft.NET\Framework\v2.0.50727\ASP.NETClientFiles\CrystalReportWebFormViewer4\js\下strings_chs.js ,string_en.js, export.js文件(让他调用空的JS)
步骤3:在页面中手动添加这两个JS文件
HtmlGenericControl myJs = new HtmlGenericControl();
myJs.TagName = "script";
myJs.Attributes.Add("type", "text/javascript");
myJs = new HtmlGenericControl();
//这里程序去判断你要引用的语言包
//myJs.Attributes.Add("src", "/JS/strings_en.js");
myJs.Attributes.Add("src", "/JS/strings_chs.js");
myJs.TagName = "script";
myJs.Attributes.Add("type", "text/javascript");
myJs.Attributes.Add("src", "/JS/export.js");
this.Header.Controls.Add(myJs);