pmway 发表于 2014-11-27 20:47:00

中英文切换问题

电话沟通,通过设置Thread的语言环境为zh-CN或者en-US都不能解决报表中英文不兼容问题
在页面通过设置Page.Culture属性为:zh-CN或者en-US也不能解决报表中英文不兼容问题

iceman 发表于 2014-11-28 10:33:00

回复 1楼pmway的帖子

请问当前语言环境更改成功了吗?
我理解问题是 PaperName 如果为“自定义纸张”则不起作用,如果为 “Custom paper” 则启作用。
我是通过以下方法更改的语言环境,在 Program.cs 中:

using System;
using System.Threading;
using System.Windows.Forms;
namespace GrapeCity.ActiveReports.Samples.EndUserDesigner
{
        static class Program
        {
                /// <summary>
                ///The main entry point for the application.
                /// </summary>
               
                static void Main()
                {
            Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US");

                        Application.EnableVisualStyles();
                        Application.SetCompatibleTextRenderingDefault(false);
                        Application.Run(new EndUserDesigner());
                }
        }
}


我这边测试没有问题,请你尝试。
谢谢

pmway 发表于 2014-11-28 13:38:00

回复 2楼iceman的帖子

这个方法昨天在设计器里面已经尝试了,保存之后的报表xml的文件还是自定义纸张,不是英文!

pmway 发表于 2014-11-28 13:58:00

回复 2楼iceman的帖子

并且报表设计器以后可能会给客户使用,如果环境都为英文的,客户那边可能会接受不了!

pmway 发表于 2014-11-28 15:47:00

环境统一为:win7 64bit 旗舰版,AR :8.1.141.0 ,IIS7 ,.net framework版本为4.5 IIS部署为集成,程序池: .net framework 4.0

iceman 发表于 2014-11-28 17:03:00

回复 5楼pmway的帖子

我会搭建相应环境进行测试,有结果后会反馈给你,预计在下周一给你进一步回复。

iceman 发表于 2014-12-1 17:24:00

回复 5楼pmway的帖子

加载报表的时候设置PageSetting.PaperName 属性为英文既可以解决这个问题:

      protected void Page_Load(object sender, EventArgs e)
      {
            if (IsPostBack)
            {
                return;
            }

            SectionReport sr = new SectionReport();
            sr.LoadLayout(this.Server.MapPath(&quot;fffffff.rpx&quot;));

            string paperKind = sr.Document.Printer.PaperKind.ToString();
            int height = Convert.ToInt32(sr.Document.Printer.PaperHeight*100);
            int width = Convert.ToInt32(sr.Document.Printer.PaperWidth * 100);

            sr.PageSettings.PaperName = &quot;Custom paper&quot;;
            sr.Document.Printer.PrinterName = &quot;&quot;;

            System.Drawing.Printing.PaperSize ps = new System.Drawing.Printing.PaperSize(paperKind, width, height);
            ps.RawKind = 9;
            sr.Document.Printer.PaperSize = ps;


            sr.Run();

            this.WebViewer1.Report = sr;
      }
页: [1]
查看完整版本: 中英文切换问题