使用来自 Exact Online 查询的数据填充 Word 模板 returns itgendps155:发布失败

Filling a Word template with data from Exact Online query returns itgendps155: Publication failed

在 Exact Online 上通过 SQL 填写 Word 模板时出现以下错误:

Publication failed.

Context:

value-of expression

16Hjjhhhasdhfjhasjhfjha;jsfhsahfdahskj;dhkhsdkjhskjhkKashdhasdjhjsahdjhjsadJashdkaskjdjsakdkjhDocumentnrKlantnrOffertedatum<invantive:value-of expression="$F{qtk.quotationnumber}" ***/><invantive:foreach> <invantive:value-of expression="$F{qtk.orderaccountcode}" /></invantive:foreach><invantive:foreach> <invantive:value-of expression="$F{qtk.quotationdate}

The location of the error is indicated by the marker '***'.
Evaluation of expression "$F{qtk.quotationnumber}" failed.
Cannot find field with the name 'quotationnumber'. Check that you have inserted a surrounding repeating block and that the field exists in that block.

Composition for Word 中块的基础 SQL 是:

select qtk.quotationnumber
,      qtk.versionnumber
,      qtk.quotationdate
,      qtk.orderaccountcode
,      acc.name
,      acc.addressline1
,      acc.postcode
,      acc.city
,      acc.countryname
,      acc.phone
,      acc.fax
,      acc.vatnumber
,      itm.code
,      qtl.itemdescription
,      qtl.notes
,      qtl.quantity
,      qtl.netprice
,      qtl.amountdc
,      qtl.vatpercentage*100
from   exactonlinerest..Quotations Qtk
left 
outer 
join   exactonlinerest..Accounts Acc
on     acc.id = qtk.orderaccount
left 
outer 
join   exactonlinerest..QuotationLines Qtl
on     qtl.quotationid = qtk.quotationid
and    qtl.quotationnumber = $P{P_OFFERTE}
and    qtl.versionnumber = $P{P_VERSIE}
left 
outer 
join   exactonlinerest..Items Itm
on     itm.id = qtl.item
where  qtk.status = 40
and    qtk.quotationnumber = $P{P_OFFERTE} 
and    qtk.versionnumber = $P{P_VERSIE}

SQL returns 来自 Exact Online 的引文列表及其行和项目(文章)。

文档内容为:

我试过各种方法,但错误一直出现。我做错了什么?

我猜您想创建一个包含报价单 header 信息的 Word 文档,以及一些报价单行(就像传统的订单 -> 订单行主 - 详细信息 table)。

在这种情况下,我首先建议将查询分成两部分:

  • 一个外部 Composition 块,带有检索报价信息的查询。
  • 带有查询的内部组合块,用于处理来自 Exact Online 的报价行,包括文章信息。

但这不是你现在的。在您的 Word 模板中,您没有指定重复块。这是块中一行的每次出现都应重复的区域。您可以通过单击“建模器”菜单中的“构建块”轻松插入重复块。然后选择正确的块然后 "Create repeating block".

作为替代,您也可以输入

<invantive:foreach block="BLOCK-CODE">

在生成的 Word 文档(包括布局和图片)中要重复的文本和其他标记之前。

并放

</invantive:foreach>

之后。

您已经不包含所有标签的<invantive:foreach><invantive:value-of expression="$F{qtk.quotationnumber}"/> 未包含。此外,其他 foreaches 不在可用位置。更好的办法是将中继器放在 table.

之外