Oracle SQL> SSRS输出> MS-Word信封格式问题

时间:2018-11-15 22:45:48

标签: reporting-services ms-word oracle-sqldeveloper envelope

我们正在尝试向最终用户提供MS-Word的Mail-Envelope工具。

  • 正在从oracle数据库中获取地址,如下所示:

    AddressLine1 || chr(10) || chr(13) ||
    AddressLine2 || chr(10) || chr(13) ||
    CityAndZip || chr(10) || chr(13) as Address
    
  • 然后在SSRS报告输出中显示如下,这是预期的:

    1234 SomeRoad
    SomeOther Address
    SomeCity 12345
    
  • 将此SSRS报告导出到Word文件时,输出看起来仍然相同。但是,如果仔细观察,您会在行尾看到“换行符”和“回车符”。对于数据,如果您尝试使用Mail-Envelop工具,则该地址不会自动进入地址框。

    1234 SomeRoad↵
    SomeOther Address↵
    SomeCity 12345↵ 
    
  • 如果我们将这些“返回字符”手动更改为“符号”段。通过在每一行的结尾处按Delete键(出现下一行),然后按Enter键(地址行再次移至下面的行)。这将删除返回字符(↵)到段落字符(¶)。然后,如果您转到邮件信封选项,则地址将被正确填充。

    1234 SomeRoad¶ 
    SomeOther Address¶ 
    SomeCity 12345¶ 
    

我们尝试过的方法:

  1. 每次遇到相同格式的问题时,都使用chr(10)和chr(13)的变体形式。
  2. 试图使用chr(0182)直接从SQL插入段落字符。这会插入段落符号,但会被视为特殊字符(按原样显示),而不是单词中的实际段落符号。

请提出是否还有其他方法可以解决此问题。或者是否有更好的方法来满足需求本身。 谢谢。

2 个答案:

答案 0 :(得分:0)

Word中的段落符号仅是ANSI 13。任何其他组合(例如您当前导出到Word的ANSI 10 + ANSI 13)将无法正确识别。只需剥去ANSI 10,您应该会得到预期的结果。

答案 1 :(得分:0)

好的,所以我们使用的是SSRS报告中的占位符。 Insider文本框中,放置了一些占位符,这些占位符在导出为word时会生成“¶”和下一行。您可以添加一些静态文本以及占位符(用于动态数据)。这样,我们无需更改SQL即可获取特定格式的数据。 例如。 Address: [Placeholder-AddressLine1], [Placeholder-AddressLine2] [Placeholder-CityAndZip]