OpenTBS包含表的重复模板的多个页面

时间:2013-04-10 21:47:17

标签: php docx opentbs

好的, 我是XML和OpenTBS的新手,所以这个块等概念对我来说非常混乱,当我认为我有它的要点时,我的客户要求我更多。 我有一个客户及其项目表,客户需要一个单独的docx,每个客户重复一个包含表格中项目的模板。

我认为它适用于整个docx模板在“块”中,并且该表是“子块”,模板的其余部分使用来自块的数据,并且表使用来自子块。
这是我感到困惑的地方。
如何迭代数组(包含客户信息),当子块需要特定客户的信息时,从items数组中绘制? 对我来说,TinyButStrong附带的“手册”还不够好,但我相信你们会知道在哪里指点我。

简化数组:

$customer = array(
    array("id" => 1,
        "name" => "Foo Bar",
        "email" => "foo@bar.com",
        "itemsinfo" => array(
            "itemid" => array(
                "itemname" => "name"
            )
        )
    ),
    array("id" => 2,
        "name" => "Foo2 Bar2",
        "email" => "foo2@bar2.com",
        "itemsinfo" => array(
            "itemid" => array(
                "itemname" => "name"
            )
        )
    )
);

非常感谢。

1 个答案:

答案 0 :(得分:1)

感谢您添加阵列结构。这应该适用于OpenTBS。

所以假设你有类似的东西:

<w:body>[customers;block=w:body;]
    Customer Name: [customers.name;]
</w:body>

为了从customers数组中获取嵌套信息,您可以这样做:

<w:body>[customers;block=w:body;sub1=itemsinfo]
    Customer Name: [customers.name;]
    Customer Items:
    <w:table>
        <w:tr>
            <w:td>[customers_sub1.itemname;block=w:td;]</w:td>
        </w:tr>
    </w:table>
</w:body>

这会导致w:td为itemsinfo数组中的每个项重复 - 可能不是你想要的行为,但希望足以让你再次前进。这本手册非常有用,但不幸的是,在你已经理解之后它会更有意义......