为什么WordWriter在IF语句中的重复块不会成功呈现文档?

时间:2015-05-06 20:34:33

标签: c# officewriter

在处理单词模板时,需要在 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

0 个答案:

没有答案