代码之家  ›  专栏  ›  技术社区  ›  Nimesh Madhavan

如何构建多语言Crystal Reports

  •  1
  • Nimesh Madhavan  · 技术社区  · 15 年前

    我们正在使用Visual Studio 2008开发多语言WinForms应用程序。我正在尝试找出如何使用Crystal Reports创建多语言报表。

    在Crystal Reports世界中,有没有类似于.NET资源文件的东西?

    3 回复  |  直到 10 年前
        1
  •  1
  •   Dusty    15 年前

    很抱歉我抢走了你的风滚草徽章,但我认为Crystal没有类似于.NET的多语言支持。我认为您唯一的选择是为每种语言分别创建一个报表,并以您希望显示的语言将数据传递到报表中。

    下面是一个类似答案的链接。 http://www.dbforums.com/crystal-reports/991737-crystal-report-multillingual-support.html

        2
  •  0
  •   Tran Nguyen    10 年前

    这将是一种手动方式:

    1. 为所需的每种语言创建一个报告,并放入适当的文件夹结构中。也就是说,所有日文报告都将进入rpt_ja/文件夹。

      Report folder structure

    2. 使用.NET资源文件为每种语言指定报告资源名称和完整资源名称:

      • 资源公司

        rpt_sample->报告01.rpt

        rpt_sample_full->mycompany.namespace.reports.report01.rpt

      • 资源.ja.resx

        rpt_sample->rpt_ja\report01.ja.rpt报告

        rpt_sample_full->mycompany.namespace.reports.report01.ja.rpt

    3. 然后在报告代码文件中使用该值:打开report.cs文件并更改:

      public override string ResourceName {
      get {
          // Change this to HttpContext.GetGlobalResourceObject("Resource", "RPT_SAMPLE").ToString();
          return "report01.rpt";
      }
      set {
          // Do nothing
      }
      

      }

      public override string FullResourceName {
          get {
              // Change this to HttpContext.GetGlobalResourceObject("Resource", "RPT_SAMPLE_FULL").ToString();
              return "rpt_ja\report01.ja.rpt";
          }
          set {
              // Do nothing
          }
      }
      

    edit:httpContext用于ASP.NET Web应用程序。在WinForm中,可以尝试properties.resources.resourcemanager.getString()从资源中获取字符串。

        3
  •  -1
  •   craig    15 年前

    一位客户要求我解决这个问题。我开发了一个基于Crystal Reports ContentLocale关键字和自定义函数的解决方案。见我的帖子: http://www.cogniza.com/blog/?p=55 .