How to a list index to use as row numbering ofbiz form widget

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

How to a list index to use as row numbering ofbiz form widget

justin.g.robinson
<form name="listAssetItems" type="list" target="" list-name="AssetItems"
title="" paginate-target="createAsset" paginate="true">
        <actions>

            <entity-one entity-name="AssetHeader"
value-field="assetHeader"/>
            <set field="assetValueQty"
from-field="assetHeader.assetValueQty" type="Integer"/>
            <entity-condition entity-name="FindAssetItemsView"
list="AssetItems">
                <condition-list combine="or">
                        <condition-expr field-name="orderId"
operator="equals" from-field="parameters.orderId"/>
                        <condition-expr field-name="productFeatureId"
operator="equals" from-field="nullField"/>
                </condition-list>
            </entity-condition>
            <set field="rowSeqNum" value="1" type="Integer"/>
        </actions>
        <row-actions>
            <set field="rowSeqNum" from-field="rowSeqNum + 1"/>
        </row-actions>


 etc.........

This restults in each row displaying the number '2' is there any way to ref
the type="list" index.

Any clues would be helpful.


--
Regards,
Justin
Venture-Net Research & Development
Reply | Threaded
Open this post in threaded view
|

Re: How to a list index to use as row numbering ofbiz form widget

justin.g.robinson
${groovy: ((viewIndex * viewSize) + (itemIndex + 1))}

On Thu, Dec 1, 2011 at 7:46 PM, Justin Robinson <[hidden email]>wrote:

> <form name="listAssetItems" type="list" target="" list-name="AssetItems"
> title="" paginate-target="createAsset" paginate="true">
>         <actions>
>
>             <entity-one entity-name="AssetHeader"
> value-field="assetHeader"/>
>             <set field="assetValueQty"
> from-field="assetHeader.assetValueQty" type="Integer"/>
>             <entity-condition entity-name="FindAssetItemsView"
> list="AssetItems">
>                 <condition-list combine="or">
>                         <condition-expr field-name="orderId"
> operator="equals" from-field="parameters.orderId"/>
>                         <condition-expr field-name="productFeatureId"
> operator="equals" from-field="nullField"/>
>                 </condition-list>
>             </entity-condition>
>             <set field="rowSeqNum" value="1" type="Integer"/>
>         </actions>
>         <row-actions>
>             <set field="rowSeqNum" from-field="rowSeqNum + 1"/>
>         </row-actions>
>
>
>  etc.........
>
> This restults in each row displaying the number '2' is there any way to
> ref the type="list" index.
>
> Any clues would be helpful.
>
>
> --
> Regards,
> Justin
> Venture-Net Research & Development
>
>
>
>


--
Regards,
Justin
Venture-Net Research & Development
Reply | Threaded
Open this post in threaded view
|

Re: How to a list index to use as row numbering ofbiz form widget

BJ Freeman
In reply to this post by justin.g.robinson
all the actions inside the “row-actions” section are executed before
each row is rendered; this tag is similar to the “actions” tag
the “service” action called within the row-actions, is a convenient way
to invoke a service: the service name is specified with the
“service-name” attribute, the “field-map” elements are used to pass the
input parameters to the service, the “result-map” attribute defines the
name of the output map
look in
specialpurpose\projectmgr\widget\forms\ProjectForms.xml#hoursNotYetBilled

        <row-actions>
            <set field="showPosition1" value="${script:String
prev=(String)previousItem.get(&quot;workEffortId&quot;);return
!(prev!=null&amp;&amp;prev.equals(workEffortId));}" type="Boolean"/>
        </row-actions>

also look at framework\widget\dtd\widget-form.xsd

Justin Robinson sent the following on 12/1/2011 9:46 AM:

> <form name="listAssetItems" type="list" target="" list-name="AssetItems"
> title="" paginate-target="createAsset" paginate="true">
>         <actions>
>
>             <entity-one entity-name="AssetHeader"
> value-field="assetHeader"/>
>             <set field="assetValueQty"
> from-field="assetHeader.assetValueQty" type="Integer"/>
>             <entity-condition entity-name="FindAssetItemsView"
> list="AssetItems">
>                 <condition-list combine="or">
>                         <condition-expr field-name="orderId"
> operator="equals" from-field="parameters.orderId"/>
>                         <condition-expr field-name="productFeatureId"
> operator="equals" from-field="nullField"/>
>                 </condition-list>
>             </entity-condition>
>             <set field="rowSeqNum" value="1" type="Integer"/>
>         </actions>
>         <row-actions>
>             <set field="rowSeqNum" from-field="rowSeqNum + 1"/>
>         </row-actions>
>
>
>  etc.........
>
> This restults in each row displaying the number '2' is there any way to ref
> the type="list" index.
>
> Any clues would be helpful.
>
>
Reply | Threaded
Open this post in threaded view
|

Re: How to a list index to use as row numbering ofbiz form widget

justin.g.robinson
Thanks for your answer what you mentioned here can all be found in ofbiz
resources online, even the Apache Ofbiz cookbook & Apache Ofbiz
Developement book only give you the basics, but without a precise
understanding of the inner workings, it's time consuming to reverse
engineer this information out, in order to get fine grain control of ofbiz
widgets.

If you are able to give me some deeper insight into ofbiz widgets or a
place to find that info.........it'd be much appreciated.

It seemed likely that "row-actions" would be executed before each row is
rendered. (I mean what else could "row-actions" be)

But the problem is that whenever it happens it must be before  itemIndex is
set (though even that doesn't make complete sense, in view of the test
results)

Placing the groovy scriplet, see in the example, in "row-actions" results
in each row having the same number.

The following works, problem is this is not supposed to be a link.

 <field name="fieldName" title="headerName" >
          <hyperlink description="${groovy: ((viewIndex * viewSize) +
(itemIndex + 1))}" also-hidden="false" link-type="anchor"  target=""/>
 </field>

I also see you can't get a field name with an expression, this must be
because of the data binding happening behind the scenes.

<field name="${groovy: ((viewIndex * viewSize) + (itemIndex + 1))}"
title="headerName"><display /></field>

Any idea's what I'm missing?
Thanks, for the help.


On Fri, Dec 2, 2011 at 12:19 AM, BJ Freeman <[hidden email]> wrote:

> all the actions inside the “row-actions” section are executed before
> each row is rendered; this tag is similar to the “actions” tag
> the “service” action called within the row-actions, is a convenient way
> to invoke a service: the service name is specified with the
> “service-name” attribute, the “field-map” elements are used to pass the
> input parameters to the service, the “result-map” attribute defines the
> name of the output map
> look in
> specialpurpose\projectmgr\widget\forms\ProjectForms.xml#hoursNotYetBilled
>
>        <row-actions>
>            <set field="showPosition1" value="${script:String
> prev=(String)previousItem.get(&quot;workEffortId&quot;);return
> !(prev!=null&amp;&amp;prev.equals(workEffortId));}" type="Boolean"/>
>        </row-actions>
>
> also look at framework\widget\dtd\widget-form.xsd
>
> Justin Robinson sent the following on 12/1/2011 9:46 AM:
> > <form name="listAssetItems" type="list" target="" list-name="AssetItems"
> > title="" paginate-target="createAsset" paginate="true">
> >         <actions>
> >
> >             <entity-one entity-name="AssetHeader"
> > value-field="assetHeader"/>
> >             <set field="assetValueQty"
> > from-field="assetHeader.assetValueQty" type="Integer"/>
> >             <entity-condition entity-name="FindAssetItemsView"
> > list="AssetItems">
> >                 <condition-list combine="or">
> >                         <condition-expr field-name="orderId"
> > operator="equals" from-field="parameters.orderId"/>
> >                         <condition-expr field-name="productFeatureId"
> > operator="equals" from-field="nullField"/>
> >                 </condition-list>
> >             </entity-condition>
> >             <set field="rowSeqNum" value="1" type="Integer"/>
> >         </actions>
> >         <row-actions>
> >             <set field="rowSeqNum" from-field="rowSeqNum + 1"/>
> >         </row-actions>
> >
> >
> >  etc.........
> >
> > This restults in each row displaying the number '2' is there any way to
> ref
> > the type="list" index.
> >
> > Any clues would be helpful.
> >
> >
>



--
Regards,
Justin
Venture-Net Research & Development
Reply | Threaded
Open this post in threaded view
|

Re: How to a list index to use as row numbering ofbiz form widget

Adrian Crum-3
One of the advantages of open source software is that it gives you the
ability to reverse engineer. Reverse engineering is not only a useful
learning tool, it might even reveal bugs in the software. Maybe even in
this case.

-Adrian

On 12/2/2011 9:21 AM, Justin Robinson wrote:

> Thanks for your answer what you mentioned here can all be found in ofbiz
> resources online, even the Apache Ofbiz cookbook&  Apache Ofbiz
> Developement book only give you the basics, but without a precise
> understanding of the inner workings, it's time consuming to reverse
> engineer this information out, in order to get fine grain control of ofbiz
> widgets.
>
> If you are able to give me some deeper insight into ofbiz widgets or a
> place to find that info.........it'd be much appreciated.
>
> It seemed likely that "row-actions" would be executed before each row is
> rendered. (I mean what else could "row-actions" be)
>
> But the problem is that whenever it happens it must be before  itemIndex is
> set (though even that doesn't make complete sense, in view of the test
> results)
>
> Placing the groovy scriplet, see in the example, in "row-actions" results
> in each row having the same number.
>
> The following works, problem is this is not supposed to be a link.
>
>   <field name="fieldName" title="headerName">
>            <hyperlink description="${groovy: ((viewIndex * viewSize) +
> (itemIndex + 1))}" also-hidden="false" link-type="anchor"  target=""/>
>   </field>
>
> I also see you can't get a field name with an expression, this must be
> because of the data binding happening behind the scenes.
>
> <field name="${groovy: ((viewIndex * viewSize) + (itemIndex + 1))}"
> title="headerName"><display /></field>
>
> Any idea's what I'm missing?
> Thanks, for the help.
>
>
> On Fri, Dec 2, 2011 at 12:19 AM, BJ Freeman<[hidden email]>  wrote:
>
>> all the actions inside the “row-actions” section are executed before
>> each row is rendered; this tag is similar to the “actions” tag
>> the “service” action called within the row-actions, is a convenient way
>> to invoke a service: the service name is specified with the
>> “service-name” attribute, the “field-map” elements are used to pass the
>> input parameters to the service, the “result-map” attribute defines the
>> name of the output map
>> look in
>> specialpurpose\projectmgr\widget\forms\ProjectForms.xml#hoursNotYetBilled
>>
>>         <row-actions>
>>             <set field="showPosition1" value="${script:String
>> prev=(String)previousItem.get(&quot;workEffortId&quot;);return
>> !(prev!=null&amp;&amp;prev.equals(workEffortId));}" type="Boolean"/>
>>         </row-actions>
>>
>> also look at framework\widget\dtd\widget-form.xsd
>>
>> Justin Robinson sent the following on 12/1/2011 9:46 AM:
>>> <form name="listAssetItems" type="list" target="" list-name="AssetItems"
>>> title="" paginate-target="createAsset" paginate="true">
>>>          <actions>
>>>
>>>              <entity-one entity-name="AssetHeader"
>>> value-field="assetHeader"/>
>>>              <set field="assetValueQty"
>>> from-field="assetHeader.assetValueQty" type="Integer"/>
>>>              <entity-condition entity-name="FindAssetItemsView"
>>> list="AssetItems">
>>>                  <condition-list combine="or">
>>>                          <condition-expr field-name="orderId"
>>> operator="equals" from-field="parameters.orderId"/>
>>>                          <condition-expr field-name="productFeatureId"
>>> operator="equals" from-field="nullField"/>
>>>                  </condition-list>
>>>              </entity-condition>
>>>              <set field="rowSeqNum" value="1" type="Integer"/>
>>>          </actions>
>>>          <row-actions>
>>>              <set field="rowSeqNum" from-field="rowSeqNum + 1"/>
>>>          </row-actions>
>>>
>>>
>>>   etc.........
>>>
>>> This restults in each row displaying the number '2' is there any way to
>> ref
>>> the type="list" index.
>>>
>>> Any clues would be helpful.
>>>
>>>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: How to a list index to use as row numbering ofbiz form widget

BJ Freeman
In reply to this post by justin.g.robinson
having had to learn from the code with no documentation, I don't have
much sympathy for those that wanted it handed to them on a plate.
the answer I gave you answers a lot. Sorry you are unable to glean the
info you need.

Justin Robinson sent the following on 12/2/2011 1:21 AM:

> Thanks for your answer what you mentioned here can all be found in ofbiz
> resources online, even the Apache Ofbiz cookbook & Apache Ofbiz
> Developement book only give you the basics, but without a precise
> understanding of the inner workings, it's time consuming to reverse
> engineer this information out, in order to get fine grain control of ofbiz
> widgets.
>
> If you are able to give me some deeper insight into ofbiz widgets or a
> place to find that info.........it'd be much appreciated.
>
> It seemed likely that "row-actions" would be executed before each row is
> rendered. (I mean what else could "row-actions" be)
>
> But the problem is that whenever it happens it must be before  itemIndex is
> set (though even that doesn't make complete sense, in view of the test
> results)
>
> Placing the groovy scriplet, see in the example, in "row-actions" results
> in each row having the same number.
>
> The following works, problem is this is not supposed to be a link.
>
>  <field name="fieldName" title="headerName" >
>           <hyperlink description="${groovy: ((viewIndex * viewSize) +
> (itemIndex + 1))}" also-hidden="false" link-type="anchor"  target=""/>
>  </field>
>
> I also see you can't get a field name with an expression, this must be
> because of the data binding happening behind the scenes.
>
> <field name="${groovy: ((viewIndex * viewSize) + (itemIndex + 1))}"
> title="headerName"><display /></field>
>
> Any idea's what I'm missing?
> Thanks, for the help.
>
>
> On Fri, Dec 2, 2011 at 12:19 AM, BJ Freeman <[hidden email]> wrote:
>
>> all the actions inside the “row-actions” section are executed before
>> each row is rendered; this tag is similar to the “actions” tag
>> the “service” action called within the row-actions, is a convenient way
>> to invoke a service: the service name is specified with the
>> “service-name” attribute, the “field-map” elements are used to pass the
>> input parameters to the service, the “result-map” attribute defines the
>> name of the output map
>> look in
>> specialpurpose\projectmgr\widget\forms\ProjectForms.xml#hoursNotYetBilled
>>
>>        <row-actions>
>>            <set field="showPosition1" value="${script:String
>> prev=(String)previousItem.get(&quot;workEffortId&quot;);return
>> !(prev!=null&amp;&amp;prev.equals(workEffortId));}" type="Boolean"/>
>>        </row-actions>
>>
>> also look at framework\widget\dtd\widget-form.xsd
>>
>> Justin Robinson sent the following on 12/1/2011 9:46 AM:
>>> <form name="listAssetItems" type="list" target="" list-name="AssetItems"
>>> title="" paginate-target="createAsset" paginate="true">
>>>         <actions>
>>>
>>>             <entity-one entity-name="AssetHeader"
>>> value-field="assetHeader"/>
>>>             <set field="assetValueQty"
>>> from-field="assetHeader.assetValueQty" type="Integer"/>
>>>             <entity-condition entity-name="FindAssetItemsView"
>>> list="AssetItems">
>>>                 <condition-list combine="or">
>>>                         <condition-expr field-name="orderId"
>>> operator="equals" from-field="parameters.orderId"/>
>>>                         <condition-expr field-name="productFeatureId"
>>> operator="equals" from-field="nullField"/>
>>>                 </condition-list>
>>>             </entity-condition>
>>>             <set field="rowSeqNum" value="1" type="Integer"/>
>>>         </actions>
>>>         <row-actions>
>>>             <set field="rowSeqNum" from-field="rowSeqNum + 1"/>
>>>         </row-actions>
>>>
>>>
>>>  etc.........
>>>
>>> This restults in each row displaying the number '2' is there any way to
>> ref
>>> the type="list" index.
>>>
>>> Any clues would be helpful.
>>>
>>>
>>
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: How to a list index to use as row numbering ofbiz form widget

Adrian Crum-3
BJ,

I believe Justin understands the purpose of the <actions> and
<row-actions> elements and their expected behavior. What he is trying to
describe is unexpected behavior. Incrementing a field's value in the
<row-actions> element does not increment the value - it remains the same.

-Adrian

On 12/2/2011 1:20 PM, BJ Freeman wrote:

> having had to learn from the code with no documentation, I don't have
> much sympathy for those that wanted it handed to them on a plate.
> the answer I gave you answers a lot. Sorry you are unable to glean the
> info you need.
>
> Justin Robinson sent the following on 12/2/2011 1:21 AM:
>> Thanks for your answer what you mentioned here can all be found in ofbiz
>> resources online, even the Apache Ofbiz cookbook&  Apache Ofbiz
>> Developement book only give you the basics, but without a precise
>> understanding of the inner workings, it's time consuming to reverse
>> engineer this information out, in order to get fine grain control of ofbiz
>> widgets.
>>
>> If you are able to give me some deeper insight into ofbiz widgets or a
>> place to find that info.........it'd be much appreciated.
>>
>> It seemed likely that "row-actions" would be executed before each row is
>> rendered. (I mean what else could "row-actions" be)
>>
>> But the problem is that whenever it happens it must be before  itemIndex is
>> set (though even that doesn't make complete sense, in view of the test
>> results)
>>
>> Placing the groovy scriplet, see in the example, in "row-actions" results
>> in each row having the same number.
>>
>> The following works, problem is this is not supposed to be a link.
>>
>>   <field name="fieldName" title="headerName">
>>            <hyperlink description="${groovy: ((viewIndex * viewSize) +
>> (itemIndex + 1))}" also-hidden="false" link-type="anchor"  target=""/>
>>   </field>
>>
>> I also see you can't get a field name with an expression, this must be
>> because of the data binding happening behind the scenes.
>>
>> <field name="${groovy: ((viewIndex * viewSize) + (itemIndex + 1))}"
>> title="headerName"><display /></field>
>>
>> Any idea's what I'm missing?
>> Thanks, for the help.
>>
>>
>> On Fri, Dec 2, 2011 at 12:19 AM, BJ Freeman<[hidden email]>  wrote:
>>
>>> all the actions inside the “row-actions” section are executed before
>>> each row is rendered; this tag is similar to the “actions” tag
>>> the “service” action called within the row-actions, is a convenient way
>>> to invoke a service: the service name is specified with the
>>> “service-name” attribute, the “field-map” elements are used to pass the
>>> input parameters to the service, the “result-map” attribute defines the
>>> name of the output map
>>> look in
>>> specialpurpose\projectmgr\widget\forms\ProjectForms.xml#hoursNotYetBilled
>>>
>>>         <row-actions>
>>>             <set field="showPosition1" value="${script:String
>>> prev=(String)previousItem.get(&quot;workEffortId&quot;);return
>>> !(prev!=null&amp;&amp;prev.equals(workEffortId));}" type="Boolean"/>
>>>         </row-actions>
>>>
>>> also look at framework\widget\dtd\widget-form.xsd
>>>
>>> Justin Robinson sent the following on 12/1/2011 9:46 AM:
>>>> <form name="listAssetItems" type="list" target="" list-name="AssetItems"
>>>> title="" paginate-target="createAsset" paginate="true">
>>>>          <actions>
>>>>
>>>>              <entity-one entity-name="AssetHeader"
>>>> value-field="assetHeader"/>
>>>>              <set field="assetValueQty"
>>>> from-field="assetHeader.assetValueQty" type="Integer"/>
>>>>              <entity-condition entity-name="FindAssetItemsView"
>>>> list="AssetItems">
>>>>                  <condition-list combine="or">
>>>>                          <condition-expr field-name="orderId"
>>>> operator="equals" from-field="parameters.orderId"/>
>>>>                          <condition-expr field-name="productFeatureId"
>>>> operator="equals" from-field="nullField"/>
>>>>                  </condition-list>
>>>>              </entity-condition>
>>>>              <set field="rowSeqNum" value="1" type="Integer"/>
>>>>          </actions>
>>>>          <row-actions>
>>>>              <set field="rowSeqNum" from-field="rowSeqNum + 1"/>
>>>>          </row-actions>
>>>>
>>>>
>>>>   etc.........
>>>>
>>>> This restults in each row displaying the number '2' is there any way to
>>> ref
>>>> the type="list" index.
>>>>
>>>> Any clues would be helpful.
>>>>
>>>>
>>
>>
Reply | Threaded
Open this post in threaded view
|

Re: How to a list index to use as row numbering ofbiz form widget

justin.g.robinson
In reply to this post by BJ Freeman
BJ,

I appreciate your answers & may of the things I've gleaned about ofbiz, to
date, have been aided by your answers to others in the mail archive.

The issue that Adrian described in a much more succinct nut shell (my
question was more like a bomb shell)

"Incrementing a field's value in the <row-actions> element does not
increment the value - it remains the same."

Might have to do with the fact that 'itemIndex' is not a field but a
dynamic calculation, done by the hidden paginating mechanism.
Might be on the wrong track here, but it would explain how if there's a sub
list it pushes all the indexes up.

The missing piece of the puzzle for me as a general rule has always been
where is the code that reads the xml, many answers must be in there. So
I'll have a look in ScreenRender & related classes.

Often just typing up a question to send to this user list, has helped me
frame a problem & I suspect that people who search the mail archives find
their own problems framed therein, also.

Actually getting an answer is alway a bonus not an expectation. :)


On Fri, Dec 2, 2011 at 3:20 PM, BJ Freeman <[hidden email]> wrote:

> having had to learn from the code with no documentation, I don't have
> much sympathy for those that wanted it handed to them on a plate.
> the answer I gave you answers a lot. Sorry you are unable to glean the
> info you need.
>
> Justin Robinson sent the following on 12/2/2011 1:21 AM:
> > Thanks for your answer what you mentioned here can all be found in ofbiz
> > resources online, even the Apache Ofbiz cookbook & Apache Ofbiz
> > Developement book only give you the basics, but without a precise
> > understanding of the inner workings, it's time consuming to reverse
> > engineer this information out, in order to get fine grain control of
> ofbiz
> > widgets.
> >
> > If you are able to give me some deeper insight into ofbiz widgets or a
> > place to find that info.........it'd be much appreciated.
> >
> > It seemed likely that "row-actions" would be executed before each row is
> > rendered. (I mean what else could "row-actions" be)
> >
> > But the problem is that whenever it happens it must be before  itemIndex
> is
> > set (though even that doesn't make complete sense, in view of the test
> > results)
> >
> > Placing the groovy scriplet, see in the example, in "row-actions" results
> > in each row having the same number.
> >
> > The following works, problem is this is not supposed to be a link.
> >
> >  <field name="fieldName" title="headerName" >
> >           <hyperlink description="${groovy: ((viewIndex * viewSize) +
> > (itemIndex + 1))}" also-hidden="false" link-type="anchor"  target=""/>
> >  </field>
> >
> > I also see you can't get a field name with an expression, this must be
> > because of the data binding happening behind the scenes.
> >
> > <field name="${groovy: ((viewIndex * viewSize) + (itemIndex + 1))}"
> > title="headerName"><display /></field>
> >
> > Any idea's what I'm missing?
> > Thanks, for the help.
> >
> >
> > On Fri, Dec 2, 2011 at 12:19 AM, BJ Freeman <[hidden email]> wrote:
> >
> >> all the actions inside the “row-actions” section are executed before
> >> each row is rendered; this tag is similar to the “actions” tag
> >> the “service” action called within the row-actions, is a convenient way
> >> to invoke a service: the service name is specified with the
> >> “service-name” attribute, the “field-map” elements are used to pass the
> >> input parameters to the service, the “result-map” attribute defines the
> >> name of the output map
> >> look in
> >>
> specialpurpose\projectmgr\widget\forms\ProjectForms.xml#hoursNotYetBilled
> >>
> >>        <row-actions>
> >>            <set field="showPosition1" value="${script:String
> >> prev=(String)previousItem.get(&quot;workEffortId&quot;);return
> >> !(prev!=null&amp;&amp;prev.equals(workEffortId));}" type="Boolean"/>
> >>        </row-actions>
> >>
> >> also look at framework\widget\dtd\widget-form.xsd
> >>
> >> Justin Robinson sent the following on 12/1/2011 9:46 AM:
> >>> <form name="listAssetItems" type="list" target=""
> list-name="AssetItems"
> >>> title="" paginate-target="createAsset" paginate="true">
> >>>         <actions>
> >>>
> >>>             <entity-one entity-name="AssetHeader"
> >>> value-field="assetHeader"/>
> >>>             <set field="assetValueQty"
> >>> from-field="assetHeader.assetValueQty" type="Integer"/>
> >>>             <entity-condition entity-name="FindAssetItemsView"
> >>> list="AssetItems">
> >>>                 <condition-list combine="or">
> >>>                         <condition-expr field-name="orderId"
> >>> operator="equals" from-field="parameters.orderId"/>
> >>>                         <condition-expr field-name="productFeatureId"
> >>> operator="equals" from-field="nullField"/>
> >>>                 </condition-list>
> >>>             </entity-condition>
> >>>             <set field="rowSeqNum" value="1" type="Integer"/>
> >>>         </actions>
> >>>         <row-actions>
> >>>             <set field="rowSeqNum" from-field="rowSeqNum + 1"/>
> >>>         </row-actions>
> >>>
> >>>
> >>>  etc.........
> >>>
> >>> This restults in each row displaying the number '2' is there any way to
> >> ref
> >>> the type="list" index.
> >>>
> >>> Any clues would be helpful.
> >>>
> >>>
> >>
> >
> >
> >
>



--
Regards,
Justin
Venture-Net Research & Development
Reply | Threaded
Open this post in threaded view
|

Re: How to a list index to use as row numbering ofbiz form widget

Adrian Crum-3
Maybe you should look at ModelForm.java lines 1480 and 1494.

-Adrian

On 12/2/2011 6:42 PM, Justin Robinson wrote:

> BJ,
>
> I appreciate your answers&  may of the things I've gleaned about ofbiz, to
> date, have been aided by your answers to others in the mail archive.
>
> The issue that Adrian described in a much more succinct nut shell (my
> question was more like a bomb shell)
>
> "Incrementing a field's value in the<row-actions>  element does not
> increment the value - it remains the same."
>
> Might have to do with the fact that 'itemIndex' is not a field but a
> dynamic calculation, done by the hidden paginating mechanism.
> Might be on the wrong track here, but it would explain how if there's a sub
> list it pushes all the indexes up.
>
> The missing piece of the puzzle for me as a general rule has always been
> where is the code that reads the xml, many answers must be in there. So
> I'll have a look in ScreenRender&  related classes.
>
> Often just typing up a question to send to this user list, has helped me
> frame a problem&  I suspect that people who search the mail archives find
> their own problems framed therein, also.
>
> Actually getting an answer is alway a bonus not an expectation. :)
>
>
> On Fri, Dec 2, 2011 at 3:20 PM, BJ Freeman<[hidden email]>  wrote:
>
>> having had to learn from the code with no documentation, I don't have
>> much sympathy for those that wanted it handed to them on a plate.
>> the answer I gave you answers a lot. Sorry you are unable to glean the
>> info you need.
>>
>> Justin Robinson sent the following on 12/2/2011 1:21 AM:
>>> Thanks for your answer what you mentioned here can all be found in ofbiz
>>> resources online, even the Apache Ofbiz cookbook&  Apache Ofbiz
>>> Developement book only give you the basics, but without a precise
>>> understanding of the inner workings, it's time consuming to reverse
>>> engineer this information out, in order to get fine grain control of
>> ofbiz
>>> widgets.
>>>
>>> If you are able to give me some deeper insight into ofbiz widgets or a
>>> place to find that info.........it'd be much appreciated.
>>>
>>> It seemed likely that "row-actions" would be executed before each row is
>>> rendered. (I mean what else could "row-actions" be)
>>>
>>> But the problem is that whenever it happens it must be before  itemIndex
>> is
>>> set (though even that doesn't make complete sense, in view of the test
>>> results)
>>>
>>> Placing the groovy scriplet, see in the example, in "row-actions" results
>>> in each row having the same number.
>>>
>>> The following works, problem is this is not supposed to be a link.
>>>
>>>   <field name="fieldName" title="headerName">
>>>            <hyperlink description="${groovy: ((viewIndex * viewSize) +
>>> (itemIndex + 1))}" also-hidden="false" link-type="anchor"  target=""/>
>>>   </field>
>>>
>>> I also see you can't get a field name with an expression, this must be
>>> because of the data binding happening behind the scenes.
>>>
>>> <field name="${groovy: ((viewIndex * viewSize) + (itemIndex + 1))}"
>>> title="headerName"><display /></field>
>>>
>>> Any idea's what I'm missing?
>>> Thanks, for the help.
>>>
>>>
>>> On Fri, Dec 2, 2011 at 12:19 AM, BJ Freeman<[hidden email]>  wrote:
>>>
>>>> all the actions inside the “row-actions” section are executed before
>>>> each row is rendered; this tag is similar to the “actions” tag
>>>> the “service” action called within the row-actions, is a convenient way
>>>> to invoke a service: the service name is specified with the
>>>> “service-name” attribute, the “field-map” elements are used to pass the
>>>> input parameters to the service, the “result-map” attribute defines the
>>>> name of the output map
>>>> look in
>>>>
>> specialpurpose\projectmgr\widget\forms\ProjectForms.xml#hoursNotYetBilled
>>>>         <row-actions>
>>>>             <set field="showPosition1" value="${script:String
>>>> prev=(String)previousItem.get(&quot;workEffortId&quot;);return
>>>> !(prev!=null&amp;&amp;prev.equals(workEffortId));}" type="Boolean"/>
>>>>         </row-actions>
>>>>
>>>> also look at framework\widget\dtd\widget-form.xsd
>>>>
>>>> Justin Robinson sent the following on 12/1/2011 9:46 AM:
>>>>> <form name="listAssetItems" type="list" target=""
>> list-name="AssetItems"
>>>>> title="" paginate-target="createAsset" paginate="true">
>>>>>          <actions>
>>>>>
>>>>>              <entity-one entity-name="AssetHeader"
>>>>> value-field="assetHeader"/>
>>>>>              <set field="assetValueQty"
>>>>> from-field="assetHeader.assetValueQty" type="Integer"/>
>>>>>              <entity-condition entity-name="FindAssetItemsView"
>>>>> list="AssetItems">
>>>>>                  <condition-list combine="or">
>>>>>                          <condition-expr field-name="orderId"
>>>>> operator="equals" from-field="parameters.orderId"/>
>>>>>                          <condition-expr field-name="productFeatureId"
>>>>> operator="equals" from-field="nullField"/>
>>>>>                  </condition-list>
>>>>>              </entity-condition>
>>>>>              <set field="rowSeqNum" value="1" type="Integer"/>
>>>>>          </actions>
>>>>>          <row-actions>
>>>>>              <set field="rowSeqNum" from-field="rowSeqNum + 1"/>
>>>>>          </row-actions>
>>>>>
>>>>>
>>>>>   etc.........
>>>>>
>>>>> This restults in each row displaying the number '2' is there any way to
>>>> ref
>>>>> the type="list" index.
>>>>>
>>>>> Any clues would be helpful.
>>>>>
>>>>>
>>>
>>>
>
>