Word 2013嵌套重复节内容控件

本文关键字:控件 2013 嵌套 Word | 更新日期: 2023-09-27 18:26:17

在其他重复节控件中嵌套重复节控件时遇到问题。

想象一下,我正在列举数据中心环境中vm主机中的服务器

Datacenter1
    Environment1
        VMHost1
           Server1
           Server2
        VMHost2
           Server3
           Server4
    Environment2
        VMHost3
           Server5
...

我的文档需要有许多重复的层次结构部分
这是文档的基本结构:

Datacenter1 Header
    Some description text
    ----- Environment1 Table ---------
    | Header1  | Header 2 | Header 3 |
    |--------------------------------|
    | VMHost1  | Server1  | ........ |
    |          | Server2  | ........ |
    |--------------------------------|
    | VMHost2  | Server3  | ........ |
    |          | Server4  | ........ |
    ----------------------------------
    ----- Environment2 Table ---------
    | Header1  | Header 2 | Header 3 |
    |--------------------------------|
    | VMHost3  | Server5  | ........ |
    ----------------------------------
Datacenter2 Header
    Some description text
    ----- Environment3 Table ---------
    | Header1  | Header 2 | Header 3 |
    |--------------------------------|
    | VMHost1  | Server1  | ........ |
    |          | Server2  | ........ |
    |--------------------------------|
    | VMHost2  | Server3  | ........ |
    |          | Server4  | ........ |
    ----------------------------------

正如您所看到的,我需要一些嵌套的内容控件。

但我的行为真的很古怪。就像我添加嵌套的重复节一样,它有时会删除它外部的重复控件,该控件本应包装在表行周围。

其他时候,我认为我已经正确设置了所有内容,然后为了测试它,我单击[+]重复整个数据中心部分,但它不仅仅是重复该部分,有时还会重复同一部分中的其他部分。

我没有使用分组功能,也不确定我是否应该使用,或者如果使用了它会有什么帮助。

希望这不是实现中的错误,我只是做错了什么。。但我担心这种"高级"场景不受支持。

最终,我将在UI中锁定所有这些控件,并使用OpenXMLSDK注入的自定义XML部件进行填充。我在文档中还有许多其他部分,包括重复部分,它们运行良好,但它们的重复部分没有嵌套。

我已经得到了应该支持嵌套的XML结构,在我向下映射这些控件的过程中,一切都很好,直到我修改了XML,向各个节点添加了更多的子节点,以测试重复的部分。在某些情况下,它删除了整个部分,在另一些情况下,重复嵌套的子节点作为父节点,重复整个表。

我想问题是:
1.如果你成功地嵌套了重复部分,如何嵌套
2.如果你遇到过这些古怪的行为,你是如何应对的
3.对于内容控件集、重复节,分组功能的目的是什么?我应该使用它们来实现这一点吗?

Word 2013嵌套重复节内容控件

我已经设法让它工作起来了
以下是一个示例文档:http://1drv.ms/1nkMGVF
我用这个工具来帮助命名,绑定(AutoMap!),&导航内容控件。

看起来问题是两件事的结合:

  1. 不兼容的XML结构
  2. 在基于表格的重复部分中混合基于段落的重复部分


不兼容的XML
为了解决重复表行中单元格中嵌套段落重复的问题,我用外部元素包装了重复元素:

<relativeRoot>
    <nonRepeatingNode/>
    <table>
        <repeatingTableRow>
            <text1/>
            <text2/>
        </repeatingTableRow>
        <repeatingTableRow>
            <text1/>
            <text2/>
        </repeatingTableRow>
    </table>
</relativeRoot>

但是,当通过XML添加重复元素或使用内置的Word功能添加重复节时,就会出现问题。因此,我将其更改为以下内容(删除了<table>):

<relativeRoot>
    <nonRepeatingNode/>
    <repeatingTableRow>
        <text1/>
        <text2/>
    </repeatingTableRow>
    <repeatingTableRow>
        <text1/>
        <text2/>
    </repeatingTableRow>
</relativeRoot>


混合重复段

重复节通常可以换行段落文本,但当重复节位于表单元格内(该单元格的行用重复节换行)时,会出现这种情况,从而导致呈现嵌套重复时出现问题。

以下是之前的层次结构表示:

repeating section control
^-> table
    ^-> row (fixed, non-repeating)
        ^-> column1a: plain text control
        ^-> column2a: table
                     ^-> repeating section control
                         ^-> row
                             ^-> column1b: plain text control
                             ^-> column2b: repeating section control
                                           ^--> plain text control
        ^-> column3a: repeating section control
                     ^-> plain text control

- the repeats within column3a work
- the repeats of row column1b/2b do not

它在以下位置:

repeating section control
^-> table
    ^-> row (fixed, non-repeating)
        ^-> column1a: plain text control
        ^-> column2a: table
                      ^-> repeating section control
                          ^-> row
                              ^-> column1b: plain text control
                              ^-> column2b: table 
                                            ^-> repeating section control
                                                ^-> row                                              
                                                    ^--> column1c: plain text control
        ^-> column3a: repeating section control
                     ^-> plain text control


可能还有其他方法可以使它发挥作用(请在此处查看),但无论出于何种原因,我都无法使其发挥作用。

我用Word 2013测试了这个,它对我有效。

首先,我在整个表周围放置了一个重复部分内容控件(RSCC),然后在一个表行(而不是最后一行!)周围放置了另一个RSCC。最后,我将纯文本内容控件放入表格单元格中。