В приведенном ниже коде я пытаюсь вычислить последний столбец, используя значение, полученное из другого столбца в представлении.
Я не могу понять, почему это не работает, все время возвращая значение по умолчанию:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:viewPanel rows="30" id="viewPanel1" var="varWI">
<xp:this.facets>
<xp:pager partialRefresh="true" layout="Previous Group Next" xp:key="headerPager" id="pager1">
</xp:pager>
</xp:this.facets>
<xp:this.data>
<xp:dominoView var="view1" viewName="WorkItem">
<xp:this.categoryFilter><![CDATA[#{javascript:"F832F30FA6C4686E85257F0E0008E964"}]]></xp:this.categoryFilter>
</xp:dominoView>
</xp:this.data>
<xp:viewColumn columnName="wi_Date" id="viewColumn6" displayAs="link" showCheckbox="true">
<xp:this.converter>
<xp:convertDateTime type="date"></xp:convertDateTime>
</xp:this.converter>
<xp:viewColumnHeader value="Creation Date" id="viewColumnHeader6" style="font-weight:bold">
</xp:viewColumnHeader>
</xp:viewColumn>
<xp:viewColumn id="wi_Intervention1" columnName="wi_Intervention">
<xp:viewColumnHeader id="viewColumnHeader9" style="font-weight:bold" value="Intervention">
</xp:viewColumnHeader>
</xp:viewColumn>
<xp:viewColumn id="wi_Category1" columnName="wi_Category">
<xp:viewColumnHeader id="viewColumnHeader10" style="font-weight:bold" value="Category">
</xp:viewColumnHeader>
</xp:viewColumn>
<xp:viewColumn id="viewColumn1">
<xp:this.facets>
<xp:viewColumnHeader xp:key="header"
id="viewColumnHeader1">
</xp:viewColumnHeader>
</xp:this.facets>
<xp:this.value><![CDATA[#{javascript:var s:string = varWI.getColumnValue('wi_Category');
if(s.equals("CATEGORY_DISCOUNT")) {
return "99. Discount"
} else if(s.equals("CATEGORY_INCOMPATIBILITY")) {
return "88. Incompatibility"
} else {
return "--. " + s.toLowerCase();
}}]]></xp:this.value>
</xp:viewColumn>
</xp:viewPanel>
</xp:view>
Эта часть:
var s:string = varWI.getColumnValue('wi_Category');
if(s.equals("CATEGORY_DISCOUNT")) {
return "99. Discount"
} else if(s.equals("CATEGORY_INCOMPATIBILITY")) {
return "88. Incompatibility"
} else {
return "--. " + s.toLowerCase();
}
всегда возвращайте значение в нижнем регистре. Значения столбца — это текст, а также поле в форме.
Пример: если значение столбца "CATEGORY_DISCOUNT", в столбце отображается "--. category_discount".
Кажется, он знает значение столбца, так как он помещает его в нижний регистр, но он не увидит его равным значению, которое я проверяю в операторе «если».
Совсем запутался....
return "--. " + s;
, чтобы увидеть, что на самом деле содержит s. - person Knut Herrmann   schedule 01.12.2015