rtf - 在 BIP RTF 模板中使用参数连接字符串
问题描述
在我的 BIP RTF 模板中,我在参数(比如诊所)中接收到一个字符串,并且在 IF 条件下,我必须将参数($Clinic)与 XML 标记(ssRohClinicFacilityName)匹配。
现在的问题是,传入的参数是一个截断的字符串,为了准确匹配,我们必须附加一个带有参数的字符串,如下所示:
$Clinic + " Clinic"
由于报告是从 Siebel 应用程序生成的,因此 Siebel 方面对参数中要发送的字符数有限制。
为了达到上述要求,我尝试了多种选择,但没有一个对我有用。
到目前为止,我已经尝试过以下操作:
试图做连接。这是按原样工作的,但我不确定如何在 IF 条件下与其他现有条件一起使用它。当我尝试跟随我得到错误。
= (xdoxslt:format_date($StartDate, 'yyyy-mm-dd','mm/dd/yyyy', $_XDOLOCALE, $_XDOTIMEZONE)) 和 (xdoxslt:format_date(ssAssignmentDate, 'yyyy-mm-dd','mm /dd/yyyy', $_XDOLOCALE, $_XDOTIMEZONE)))?>我尝试使用 XSLT:Subscrting 截断 ssRohClinicFacilityName 但我需要这样的东西,
xdoxslt:substring(ssRohClinicFacilityName, length(ssRohClinicFacilityName)-7, length(ssRohClinicFacilityName)) = $Clinic)
因为我只需要截断最后 07 个字符但找不到相关函数
这是我现有的 if 条件:
<?if:( xdoxslt:format_date(ssAssignmentDate, 'yyyy-mm-dd','mm/dd/yyyy', $_XDOLOCALE, $_XDOTIMEZONE))>= (xdoxslt:format_date($StartDate, 'yyyy-mm-dd','mm/dd/yyyy', $_XDOLOCALE, $_XDOTIMEZONE)) and (xdoxslt:format_date(ssAssignmentDate, 'yyyy-mm-dd','mm/dd/yyyy', $_XDOLOCALE, $_XDOTIMEZONE))<= (xdoxslt:format_date($EndDate, 'yyyy-mm-dd','mm/dd/yyyy', $_XDOLOCALE, $_XDOTIMEZONE))?>
解决方案
如果您只使用通配符进行比较,我认为对您来说会更容易。
参考:https ://blogs.oracle.com/xmlpublisher/wildcards
& https://www.quackit.com/xml/tutorial/xpath_string_functions.cfm
你可以搜索
starts-with(ssRohClinicFacilityName, $Clinic)
--新内容--
它可以与 if 函数一起使用,甚至可以不使用。这是我尝试过的:
这是结果。
<?starts-with(ssRohClinicFacilityName, $Clinic)?>
带有 if 条件
<?if:starts-with(ssRohClinicFacilityName, $Clinic)?>
'MATCHED'
<?end if?>
我建议您尝试单独测试这部分,if 语句中可能存在其他错误导致输出不正确。
推荐阅读
- javascript - 比较 JavaScript 中的循环(自引用)对象
- r - 如何在for循环中选择一列
- asp.net-core - 如何在 asp.net core 中处理标签助手?
- linux - 使用分隔符连接多个 yaml 文件
- react-native - 共享多堆栈导航器的导航选项
- sql - 如何在 Teradata SQL 中合并 Sum 和 Rank 函数?
- dictionary - 如何重新调用 sys.getsizeof(dict) 以便在使用 PyPy 时保留功能?
- batch-file - 是否有相当于 Linux 的“sdiff -s”命令的批处理?
- angular - 从浏览器获取 'blocked:other' 错误状态 - 在 Angular 应用程序中,我进行了 rest api 调用以从服务器获取信息
- sql - 有没有办法用不同的 WHERE 语句两次加入同一个表并创建两个新字段?