cancel
Showing results for 
Search instead for 
Did you mean: 

Adobe forms - hide field, move fields up

Former Member
0 Kudos

Hello,

I am a newbie trying to fix an Adobe forms issue. I am using LiveCycle Designer 7.1 and scripting using FormCalc.

I have three address fields stras, street_4, city_zip displayed one below the other. Field street_4 is not mandatory.

If street_4 is blank, the address should be displayed as follows:

stras

city_zip

If street_4 contains a value, it should be displayed as:

stras

street_4

city_zip

I created a subform wraping all the three fields. Wrote a (FormCalc, Client) script in the initialize event of street_4. If street_4 is blank, an empty space is being displayed. Any help would be greatly appreciated.

if (HasValue($) == 0)

then $.presence = "hidden"

else $.presence = "visible"

endif

Thanks,

Sreeni

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi Sreeni,

I think the problem is already solved but i have some input for all the guys who might come over this issue and are not able to solve it:

I will focus on JavaScript because I am more into that than into FormCalc scripting.

  • The main problem is that you use the value "hidden" for the presence attribute.

The solution to this problem is the following:

  1. Using this.presence = "hidden"; will hide the complete element on your form. Thus, all the elements which are below the hidden one are moved up.
  2. Using this.presence = "invisible"; will only hide the text inside the element not the element itself. Thus, the elements below stay where they are and nothing gets shifted.

So this is not really dependent on using subforms. You can hide the whole subform using this technique or only elements inside the subform.

Here a short code snippet:

  1. Hide the whole element and shift lower elements up:

data.MAIN.HeaderData.ADDRESS_DATA.ADDRESS_DATA_ITEM.NAME2::validate - (JavaScript, client)

if ($record.ADDRESS_DATA.NAME2.value == null || $record.ADDRESS_DATA.NAME2.value == ''){

     this.presence = "hidden";

}

     2. Hiding only the TEXT INSIDE the element NOT the element itself ==> no shifting of other elements:

data.MAIN.HeaderData.ADDRESS_DATA.ADDRESS_DATA_ITEM.NAME3::validate - (JavaScript, client)

if ($record.ADDRESS_DATA.NAME3.value == null || $record.ADDRESS_DATA.NAME3.value == ''){

this.presence = "invisible";

}

Regards Patrick

Former Member
0 Kudos

Hi Vijay,

Thanks for your input.

I still couldn't fix this issue. In the development environment, once the fields are in a subform, changing the "presence" property to "hidden" is moving the other fields up. I am not able to do it in run time using script (FormCalc or JavaScript). I was able to change the value from blank to a text or vice versa. But, when I change the "presence" property, the value is invisible/hidden but the other fields are not moving up.

Edited by: Sreeni ChannamRaju on Oct 30, 2008 9:34 PM

former_member188685
Active Contributor
0 Kudos

this situation i handle with the condition , instead of script(formcalc/javascript). create the condition in the context, then simply drag node to the layout , will be taken care automatically. there will be a true and false forms by default if you drag and drop.if it is true then show else don't. this way the elements will move up.

0 Kudos

Can someone answer this question? I tried Vijay's suggestion but still, field C is not moving up to fieldA's position when condition is set in context for fieldA and field B (satisfying that both are not displayed).

sample:

field A

field B

field C

Former Member
0 Kudos

Hi, If the fields are not moving up, set the subform to Flowed.

Former Member
0 Kudos

Ana,

Did you ever solve this problem?

I have encountered the same problem with "hiding" a field in order to get the space occupied by the field to shift up the fields below.

I have tried both positioned and flowed, using wither a plain text field or the same field within a subform of the main form.

Former Member
0 Kudos

Hi Marcus,

Generally, you need a bigger subform which has Flowed type.

Within it, says you insert subform A follow by subform B.

Hide the whole subform A, and subform B should be move up automatically.

regards,

Xiang Li

former_member188685
Active Contributor
0 Kudos

instead of the form calc, try to use java script. and also use the event layout:ready,not the initialize event.

i doubt your script code. i usually follow the code which automatically gives.

see the correct usage of javascript , i may be wrong in syntax. but it should be some thing like this..

if( this.rawValue == ''){
 this.presence = "hidden";
}
else
{
this.presence = "visible";
}

Edited by: Vijay Babu Dudla on Oct 29, 2008 4:04 PM