如何根据数据库的内容有条件地包含/排除Word文档中的文本部分,例如:我想在Microsoft Word文档(伪代码)中执行类似的操作:
IF< invantive:value-of expression =" $ P {Level}" />大于3,然后
< invantive:foreach block =" A.languages">< invantive:value-of expression =" $ F {technicalname}" />< / invantive:的foreach>
< invantive:foreach block =" B.systems">< invantive:value-of expression =" $ F {technicalname}" />< / invantive:的foreach>
的 END
答案 0 :(得分:0)
您可以通过将参数检查放入块中来实现最简单的方法。如果可能,请在包含数据的块中执行此操作,或者创建一个中间块来执行此操作。
例如,将其放在您的查询中:
select ...
from yourtable
where $P{Level} > 3
答案 1 :(得分:0)
如果要排除以TECHNICAL
开头并以END
开头的整段文本,还可以在模型中添加一个返回0或1行的附加块。
当不满足标准时返回0行,满足标准时返回1行:
select 'ignore' from dual where <BOOLEAN EXPRESSION>
当然,您需要将dual
替换为所使用的数据库平台的相应单个表。在Oracle和Invantive SQL平台上,始终存在dual
。在SQL Server上,您可以跳过from dual
。在其他平台上,创建一个表或查询已知只有一行的内容,如特定的数据字典表。
然后使用新块创建嵌套的foreach:
<invantive:foreach block="FILTERBLOCK">
TECHNICAL
Programming Languages
<invantive:foreach block="A.languages"><invantive:value-of expression="$F{technicalname}"/></invantive:foreach>
Operating Systems
<invantive:foreach block="B.systems"><invantive:value-of expression="$F{technicalname}"/></invantive:foreach>
</invantive:foreach>