0

Orbeonフォームビルダーのフォームにリピーターコントロール(新しいリピート)が含まれているリピーターコントロール(新しいリピート)の各行(またはリピート)に3つのテキストコントロールがあるとします。各行の最初の2つのテキストコントロールに数値が含まれています。最初の2つのテキストコントロールの積を実行時にイベントなしで3番目のテキストコントロールに移動したい。実行時に複数の繰り返しがあります。つまり、行が増える可能性がありますが、それぞれの計算は実行時に多く反映されます。最初の2つの行の積は3番目の行の積で表示する必要があります

私は次のコードを使用しました:

if ($quantity castable as xs:double and $price castable as xs:double)
then $quantity * $price
else 'n/a'

リピーターコントロールに行が1つしかない場合は、このxpath式で問題ありません。ただし、新しい行を追加すると、つまり実行時に繰り返しを増やすと、すべての結果で3番目の列のコントロールがelse値に変更されます( "n / a ")。これは、リピーターコントロール(新しいリピート)の単一行に対してのみ機能します。繰り返しごとに、値は行ごとに個別に計算する必要があるためです。

4

1 に答える 1

1

これが各行に対して繰り返されるノードであると想定します

<repeater>
    <quantity></quantity>
    <price></price>
    <product></product>
</repeater>

積を計算するためのXpath式は次のようになります。

if(../quantity castable as xs:double and  ../price castable as xs:double) 
    then ../quantity * ../price
    else 'N/A'

この式をノードの計算に使用すると、<product>各行で結果が得られます。これはノードのバインド定義に記述されているため、イベントベースのアクションは必要ありません。

これがあなたのすべての質問に答えることを願っています

于 2012-10-19T13:21:24.000 に答える