Monday, 20 January 2014

Working with Ofbiz forms

Adding on click event on form

<field name="submitButton"  widget-style="find" title="Print" event="onclick" action="javascript:var field=document.Form.inputElement; var tmp=field.value;if (condition) { do what you want };return true;">
            <submit button-type="button"/>
 </field>


Changing the target by conditions in form

<form name="FromName" type="single" target="likeUpdatetarget" default-map-name="mapName"
        header-row-style="header-row" default-table-style="basic-table">
        <alt-target use-when="variableParameter==null" target="likeCreateTarget"/>
      <fields></fields>
      .................
</form>


For dorp down in Forms

 <drop-down allow-empty="false">
                <entity-options entity-name="Entity" key-field-name="columnName"                                                               description="${entityColumnId} [${enttityColumnName}]">
                            <entity-constraint name="filterByColumne" operator="equals"                                                                          value="${parameters.entityId}"/>
                             <entity-order-by field-name="entityColumn"/>
                </entity-options>
 </drop-down>


For getting data using delegator in forms

     in action : 

<set field="variableName" value="${bsh:
                import org.ofbiz.entity.GenericValue;
                import org.ofbiz.base.util.UtilMisc;
                import org.ofbiz.entity.util.EntityUtil;
                GenericValue gv= EntityUtil.getFirst(delegator.findByAnd(&quot;EntityName&quot;,UtilMisc.toMap(&quot;ColumnName&quot;,value)));
                if(result==null) return ;
                if(result!=null) variable= gv.getString(&quot;columnName&quot;);
                return output;
                }"/>

Working with Ofbiz forms

Creating a FORM

1. include in screen

  <include-form name="FormName" location="component://Form.xml"/>

2. Create a FORM . *Form.xml

<form  name="FormName" type="single" default-map-name="" target="action" title="Title" header-row-style="header-row" default-table-style="basic-table">
<field name="FieldName"><hidden/></field>
  <field  position="1" name="Field1" ><text default-value="${fieldValue}"> </text> </field>
  <field position="2" name="buttonName" title="Title" widget-style="smallSubmit"><submit button-type="button"/></field>
    </form>

3. Populating form inside Action tag 

<actions>
<entity-and entity-name="EntityName" list="populatedList">
           <field-map field-name="columnName" from-field="columnValue"/>
       </entity-and>
<set field="object" value="${groovy: return org.ofbiz.entity.util.EntityUtil.getFirst(populatedList).column;}" default-value="null"/>
</actions>

4. you can also use the auto field tag inside a form to auto populate any Entity with its field.

<auto-fields-entity  entity-name="EntityName" default-field-type="display"/>
*******************************************************************************

To make a validation on the forms fields

"USE-WHEN"

<field name="name" title="title" widget-area-style="centered"  use-when="object!=null&amp;&amp;object.equals(&quot;SOME_VALUE&quot;)">
        <display  description="Y" type="text" default-value="N"/>
       </field>

No comments:

Post a Comment