conditional data binding question

PiPiLee

26-07-2018

Hi, guys

I'm new bee in LiveCycle Designer. I got questions about conditional data binding question in adobe Live Cycle  designer ES3.

My XML files structure is like following:

<item>

     <Name>name1</Name>

     <Type>A</Type>

     <Amount>10</Amount>

</item>

<item>

     <Name>name2</Name>

     <Type>B</Type>

     <Amount>20</Amount>

</item>

<item>

     <Name>name3</Name>

     <Type>B</Type>

     <Amount>30</Amount>

</item>

........

And now I want to display items only with type= A . How can I get this conditional data binding?

I've already use SOM predicates in item's Data Binding expression like this:  $.item.[Type=='A']   but it return syntax error.

BR, PiPi Li

Accepted Solutions (1)

Accepted Solutions (1)

_Bruce_Robertson

MVP

26-07-2018

Hi,

When you use $.item.[Type=='A'], that is with square brackets then the expression is expected to be a FromCalc expression, which means you need to use double quotes, i.e. $.item.[Type=="A"].  The JavaScript equivalent would be $.item.(Type.value=='B') ... using the round brackets.  I do tend to stick with FormCalc for predicates, it is meant to be a little faster.

Regards

Bruce

Answers (5)

Answers (5)

arthurf48713214

26-07-2018

Hi Pipi Li,

i´am not 100% sure but i thing you can use something like this check the value all type of your tree :

$data.resolveNodes('RootNode.item[*].Type') .item(*).value; // i thing for every item, it should return his value then you can check this value ; if ....,item(*).value == "A".

Arthur

ulibaehr

26-07-2018

That appears unnecessary to me.

Conditional bindings without any scripting perfectly perform the task. You do not need to script for this kind of task.

I just checked with one of my example forms:

$.Legobrick.[Color<>"green"]

works perfectly to bind only subforms where the underlying element "Color" does not have the value "green".

PiPiLee

26-07-2018

Hi Bruce,

$.item.[Type=="A"] still can not work. But the JavaScript predication $.item.(Type.value=='B') works. Thanks so much.

BR, PiPi Li