Setting Instance value within nested <repeat>

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Setting Instance value within nested <repeat>

Hank Ratzesberger

Well Formed Ones:

(OK, I'll never open with that one again.)

I'm not sure if I am observing an XForms issue or
Orbeon, as I only have Orbeon installed.

I am unable to set instance values within a
trigger created within nested repeats.

Does <setvalue ref="" value=""/> change the context
to ref? If so, how can I specify the context of
<repeat> ? (The code snipped at the end I hope
is all that is needed to explain.)

Thanks for any insights,
Hank

Hank Ratzesberger
Institute for Crustal Studies
University of California, Santa Barbara
805.893.8042
805.893.8649 (fax)


This page is produced from the attached code:

http://nees.ucsb.edu/facilities/data/stats

along with this data:

http://nees.ucsb.edu/xml/stats.xml

Here is the inner-most table element where I can output
the dateTime, but using the same xpath to attempt to
set the value in the instance data I want to submit, I get:

! XForms error: Invalid date "" (Too short)

I have tried several ways of casting and bound all data types
to xs:string, but I get the similar errors.

<xforms:repeat> ...
  <xforms:repeat> ...

  <td>
    Count: <xforms:output value="count"/><br/>
    Greatest: <xforms:output value="greatest"/> (ml)<br/>
    Deepest: <xforms:output value="deepest"/> (km)<br/>
    <xforms:output value="start-date"/><br/>
    <xforms:output value="end-date"/><br/>
    <xforms:trigger>
      <xforms:label>Select</xforms:label>
      <xforms:action ev:event="DOMActivate">
        <xforms:setvalue ref="instance('events-query')/start-date" value="start-date"/>
        <xforms:setvalue ref="instance('events-query')/end-date" value="end-date"/>
        <xforms:send submission="events-submit"/>
      </xforms:action>
    </xforms:trigger>
  </td>

  ...</xforms:repeat>
...</xforms:repeat>

--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws

stats.xhtml (12K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Setting Instance value within nested <repeat>

Erik Bruchez
Administrator
Hank Ratzesberger wrote:

>
> Well Formed Ones:
>
> (OK, I'll never open with that one again.)
>
> I'm not sure if I am observing an XForms issue or Orbeon, as I only have
> Orbeon installed.
>
> I am unable to set instance values within a trigger created within
> nested repeats.
>
> Does <setvalue ref="" value=""/> change the context to ref? If so, how
> can I specify the context of <repeat> ? (The code snipped at the end I hope
> is all that is needed to explain.)
Yes, this is a typical issue. @value evaluates in the context of @ref,
which in many cases is not what you want.

Use the extension function xxforms:repeat-current() to obtain the
context of the current repeat iteration, e.g.:

   value="xxforms:repeat-current()/my/value"

-Erik

--
Orbeon Forms - Web Forms for the Enterprise Done the Right Way
http://www.orbeon.com/



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws