在VS2008中编辑OfficeWriter rdl会丢失格式

时间:2014-03-26 00:19:57

标签: visual-studio-2008 reporting-services officewriter

我们的情况是,我们已经获得了一个需要转换为SSRS报告的Word文档。

所以我们的步骤是:

  1. 在Word 2007中打开文档
  2. 在获得布局正确(我们使用OfficeWriter 8.6.0)
  3. 后将文档另存为.rdl
  4. 在VS2008中打开.rdl以添加查询
  5. 保存.rdl并在Word 2007中重新打开。
  6. 问题是从VS2008保存.rdl后,OfficeWriter创建的原始XML发生了更改,Word没有显示任何格式。

    OW的原始XML是

    <Custom Application="Word" VersionEx="8.6.0">data</Custom>
    

    但是在VS2008中打开.rdl并保存后,XML变为

    <CustomProperties>
        <CustomProperty>
            <Name>Custom</Name>
            <Value>data</Value>
        </CustomProperty>
    </CustomProperties> 
    

    所以我想我的问题是,我们是否应该尝试在VS2008中编辑OfficeWriter 8.6 .rdl文件,还是应该从Word(使用MS Query)执行所有操作?

    修改

    我们找到了一个有趣的解决方法/黑客:

    从VS2008保存更改后,如果我们手动编辑.rdl以使XML采用此格式

    <CustomProperties>
         <CustomProperty>
             <Name>OfficeWriter_Designer_Version</Name>
             <Value>8.6.0</Value>
         </CustomProperty>
         <CustomProperty>
             <Name>Word</Name>
             <Value>data</Value>
         </CustomProperty>
    </CustomProperties>
    

    然后可以在OfficeWriter和VS2008中编辑.rdl而不会丢失格式。

    BTW,它在XML片段中显示 data ,这只是我对OfficeWriter输出的序列化数据的占位符。

1 个答案:

答案 0 :(得分:1)

您应该能够在Visual Studio中编辑由OfficeWriter Designer创建的RDL。但是,您还应该已经在Visual Studio中启动了整个过程,并且从您的描述中不清楚您是这样做的。这个tutorial in the documentation解释了从Visual Studio中创建的RDL创建Word报告的工作流程。该教程中唯一缺少的是8.6.0版中引入的新功能,它允许您将现有Word文档导入报表。以下是步骤:

  1. 在Visual Studio中使用所有查询创建RDL文件
  2. 在Word
  3. 中的OfficeWriter Designer工具栏中打开RDL文件
  4. 导入现有的Word文档
  5. 插入合并字段并根据需要从Designer
  6. 设置重复区域
  7. 根据需要进行任何其他格式更改并将RDL保存在Designer中(到磁盘或报表服务器)
  8. 如果需要在使用OfficeWriter Designer创建初始报表后修改查询,则应该能够在Visual Studio中编辑RDL,并且应保留特定于OfficeWriter的信息。

    注意:我为SoftArtisans工作