Wednesday, May 13, 2009

Reporting Services 报表字段消失和乱码 - 语言问题

如果用 Microsoft SQL 的报表服务,写出来的报表一切正常但字段无法显示,我遇到过好几次,一般的原因是语言设置错误。

首先,报表定义档 RDL (report definition language) 是一份 XML 档。打开看到的第一句:
<?xml version="1.0" encoding="utf-8"?>

看看是否 UTF-8 编码。

第二,看看报表的语言是否正确,这在RDL档的最后:
......
  <Language>en-US</Language>

  <TopMargin>2.5cm</TopMargin>

  <PageHeight>29.7cm</PageHeight>

</Report>

看看<Language>是否是你想要的。

第三,看看报表里面没显示的地方,看看属性是否正确,比如我的报表中有个textbox86没有显示出来的话,在报表设计软件(比如Business Intelligent Studio)切换到“配置”界面,点击textbox86带出它的属性:

看看这里的属性是否你想要的。
  • Calendar 是指资料是日期的时候,你想用的历法,一般选Default即可
  • Language 是指语言,我一般出问题都在这里,Default 就用了整张报表定义的,见上面第二点。比如你特别这一个文字框是显示日语的,需要在这里调
  • WritingMode 指书写的方向,有编程经验的应该熟悉了,lr-tb 是指 Left to Right - Top to Bottom

最后是 font, 如果我这textbox86是显示简体中文的,字体却选了Times New Roman,选错了当然出来乱码了。
《完》

No comments: