2012-10-19 4 views
0

Orbeon 폼 빌더의 양식에 리피터 컨트롤 (새 반복)이 포함되어 있습니다. 리피터 컨트롤 (새 반복)의 각 행 (또는 반복)에 세 개의 텍스트 컨트롤이 있어야합니다. 각 행의 첫 번째 두 텍스트 컨트롤에 숫자 값이 들어 있습니다. 런타임에 세 번째 텍스트 컨트롤에 런타임시 다른 텍스트 컨트롤의 제품을 가져 오려고합니다. 런타임에 반복 횟수가 여러 개가됩니다. 즉 행이 증가 할 수 있습니다. 그러나 각 연산은 매우 런타임 반영 처음 두 행의 각 제품에 대한 세번째리피터 (새 반복) 컨트롤 내의 계산

에서 볼 수 있어야 I 다음 코드 사용했을

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

리피터 컨트롤에 단 하나의 행이있을 때이 xpath 표현식이 ok입니다. 그러나 새 행을 추가 할 때, 즉 런타임에 반복을 늘릴 때 세 번째 열의 컨트롤에있는 모든 결과가 else 값으로 변경됩니다 ("n /에이"). 이것은 리피터 컨트롤 (새로운 반복)의 단일 행에 대해서만 작동합니다. 매 반복마다 값을 각 행에 대해 별도로 계산해야하기 때문입니다.

답변

1

가정

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

제품을 산출하는 XPath 식을 <product> 노드 결과 제품에 대한 계산에 사용

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

이 표현 될이 각 행에 대해 반복하여 노드 이것은 노드의 Y 인드 정의에 기록되기 때.에 이벤트 기반 조치가 필요하지 않습니다.

희망 사항이 모든 질문에 대한 답변입니다.

+0

감사 ... 작동합니다. – Terminal

+0

plz가 당신을 위해 일하고 있다면 대답을 수락하십시오 – Jayy

관련 문제