在处理单词模板时,需要在 IF字段中加入重复块,类似于:
使用.DOC / .DOCX的WordTemplate示例代码:
{ IF {MERGEFIELD DataSource1.FieldName}=”123456” “IF SECTION
Then a repeat block here using a table row that is bookmarked:
------------------------------------------------------------
| «Datasource1.IdColHeader» | «Datasource1.NameColHeader» |
------------------------------------------------------------
|«RepeatingDatasource2.Id» | «RepeatingDatasource2.Name» |
------------------------------------------------------------
” “Else Section
Second set of repeat block with different datasource
-------------------------------------------------------
| Id | Name |
-------------------------------------------------------
|«RepeatingDatasource3.Id»|«RepeatingDatasource3.Name»|
-------------------------------------------------------
”}
使用WordWriter的WordTemplate C#示例代码:
private static void ProcessWordTemplate(WordTemplate docTemp)
{
try
{
docTemp.Process();
}
catch (Exception ex)
{
throw new ApplicationException(ex.Message);
}
}
对于 DOCX WordTemplate,调用docTemp.Process()
时会发生错误。我得到以下异常:
异常类型:System.Application
异常消息: WordWriter错误:无法重写书签
对于 DOC WordTemplate,文档已呈现,但即使实际结果大于1,它也只会在重复块中显示一行。
但是,如果相反,重复块中的 IF字段, IF字段和成功评估的重复块。生成的文档显示所有记录。
请注意我使用 OfficeWriter的WordWriter版本9 。