В кода по-долу се опитвам да изчисля последната колона, използвайки стойност, която идва от друга колона в изгледа.
Не мога да разбера защо това не работи, връщайки стойността по подразбиране през цялото време:
<?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".
Изглежда, че знае стойността на колоната, тъй като я поставя в малки букви, но няма да я види като равна на стойността, която проверявам в оператора "if".
Доста объркан....
return "--. " + s;
, за да видите какво всъщност съдържа s. - person Knut Herrmann   schedule 01.12.2015