首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组上的OpenTBS迭代

数组上的OpenTBS迭代
EN

Stack Overflow用户
提问于 2016-01-10 19:05:58
回答 1查看 840关注 0票数 0

我试图循环一个简单的数组,并使用OpenTBS在我的OpenTBS模板中显示它的信息,但是无法让它工作:

因此,我有一个非常简单的array,它分配给一个块,如下所示:

代码语言:javascript
复制
$TBS = new \clsTinyButStrong();
$TBS->Plugin(TBS_INSTALL, OPENTBS_PLUGIN);
$TBS->LoadTemplate($template, OPENTBS_ALREADY_UTF8);
$myArray = array(   array( 'name' => 'bedroom'),
                    array( 'name' => 'kitchen'),
                    array( 'name' => 'lounge'),
                );
$TBS->MergeBlock( 'myBlock', $myArray);
$output_file_name = 'C:/testTBS.docx';
$TBS->Show(OPENTBS_FILE, $output_file_name);

在我的docx模板中,我尝试了以下几种简单的方法:

代码语言:javascript
复制
[myBlock.name]  => doesnt display anything

理想情况下,我想重复整个块,因为您可以想象我的数组会更复杂一些。

我尝试过另一种解决办法:

代码语言:javascript
复制
[myBlock; block=begin]
    Name : [onshow; myBlock.0.name;]
    Name : [onshow; myBlock.$;]
    Name :  [onshow; myBlock.#;]
    Name :  [onshow; name;]
    Name :  [onshow; BlockName.0;]
[myBlock; block=end]

这样的工作,因为它正确地迭代数组(它显示所有东西3次,这是好的,考虑到我有3个子数组)。但是,使用该选项,我无法找到如何显示名称,因为我尝试的一切都没有显示它,正如您在输出中看到的那样:

代码语言:javascript
复制
Name : [onshow; myBlock.0.name;]
Name : 
Name :  [onshow; myBlock.#;]
Name :[onshow; name;]
Name :[onshow; BlockName.0;]

Name : [onshow; myBlock.0.name;]
Name : 
Name :  [onshow; myBlock.#;]
Name :[onshow; name;]
Name :[onshow; BlockName.0;]

Name : [onshow; myBlock.0.name;]
Name : 
Name :  [onshow; myBlock.#;]
Name :[onshow; name;]
Name :[onshow; BlockName.0;]

(在没有onshow的情况下,我也尝试过同样的方法,没有运气)

我很抱歉地问了这么一个简单的问题,比如如何迭代数组,但是即使阅读了关于这个主题的其他文章,文档,或者看了它们提供的例子,我还是找不到解决这个简单问题的方法:

非常感谢您的帮助,如果您需要更多的信息,请告诉我!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-11 16:15:32

PHP端的代码片段看起来是正确的。

您的独立模板[myBlock.name]应该与数据的第一条记录正确地合并。这是没有定义块边界时的TBS行为。

如果没有合并,可能是因为某些设计确实分割了一些TBS标记。解决方案是选择TBS标记,剪切它,然后以纯文本的形式通过它(没有格式设置)。

也有一个Word Macro女士用于清除DOCX中的TBS标签,但即使它是实用的,它现在是测试版。

带有块定义的模板不正确。应该是这样的:

代码语言:javascript
复制
[myBlock; block=begin]
    Name : [myBlock.name]
    Name : [myBlock.$]
    Name : [myBlock.#]
    Name : [myBlock.name]
[myBlock; block=end]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34709609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档