How to hide a button based on a zero count of a unrelated subform?

Avatar

Avatar
Validate 1
Level 1
chrisb29762052
Level 1

Likes

0 likes

Total Posts

25 posts

Correct reply

2 solutions
Top badges earned
Validate 1
Affirm 1
View profile

Avatar
Validate 1
Level 1
chrisb29762052
Level 1

Likes

0 likes

Total Posts

25 posts

Correct reply

2 solutions
Top badges earned
Validate 1
Affirm 1
View profile
chrisb29762052
Level 1

03-05-2015

I am a beginner at this. Try many different ways with no success. I found the following info in an old discussion group. There was no info to indicate that it worked. 

It is not exactly what I need. I tried to adapt it with no success.


" in the click event of the remove button should have something like this

if (this.parent.instanceManager.count > 1){

  this.parent.instanceManager.removeInstance(this.parent.index);

} else{

  xfa.resolveNode("Subform1[0].cmdRemove").presence = "hidden";

  this.parent.instanceManager.removeInstance(this.parent.index);

}

And you should have an initialize event for the subform

if (this.instanceManager.count > 1){

  xfa.resolveNode("Subform1[0].cmdRemove").presence = "visible";

} else{

  xfa.resolveNode("Subform1[0].cmdRemove").presence = "hidden";

}

I basically want to hide a button if the count of a subform get to zero. The subform has a start of zero count. If somoene decide to delete all the said subform, I need the targeted button to be "hidden". Any assistance would be much appreciated.

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar
Validate 1
Level 1
chrisb29762052
Level 1

Likes

0 likes

Total Posts

25 posts

Correct reply

2 solutions
Top badges earned
Validate 1
Affirm 1
View profile

Avatar
Validate 1
Level 1
chrisb29762052
Level 1

Likes

0 likes

Total Posts

25 posts

Correct reply

2 solutions
Top badges earned
Validate 1
Affirm 1
View profile
chrisb29762052
Level 1

04-05-2015

It works as you described. Thanks

Answers (3)

Answers (3)

Avatar

Avatar
Coach
MVP
radzmar
MVP

Likes

397 likes

Total Posts

2,687 posts

Correct reply

492 solutions
Top badges earned
Coach
Ignite 3
Ignite 1
Validate 1
Give Back 50
View profile

Avatar
Coach
MVP
radzmar
MVP

Likes

397 likes

Total Posts

2,687 posts

Correct reply

492 solutions
Top badges earned
Coach
Ignite 3
Ignite 1
Validate 1
Give Back 50
View profile
radzmar
MVP

04-05-2015

Ahh ok, I see what's the problem.

the indexChange event doesn't fire if there aren't any instances of an object.

So you need two separate scripts.

The first in the click event of the add button:


CmdHide.presence = "visible";


_Subform1.addInstance(1);


The second in the remove buttons click event.


CmdHide.presence = (_Subform1.count - 1) > 0 ?  "visible" : "hidden";


_Subform1.removeInstance(this.parent.index);


You can also remove the initialize event of the hide button and set it to be hidden by default in Designer.

Avatar

Avatar
Validate 1
Level 1
chrisb29762052
Level 1

Likes

0 likes

Total Posts

25 posts

Correct reply

2 solutions
Top badges earned
Validate 1
Affirm 1
View profile

Avatar
Validate 1
Level 1
chrisb29762052
Level 1

Likes

0 likes

Total Posts

25 posts

Correct reply

2 solutions
Top badges earned
Validate 1
Affirm 1
View profile
chrisb29762052
Level 1

04-05-2015

This work to make the button visible as soon as you create one instance of the subform but it doesn't hide it if the user decide later to remove all the subform after having created one or more. At that point I need the button to go "hidden" and it doesn't. I am only using a testing form at this time. I have forwarded it to your email if you don' mind looking at it. Thanks

Avatar

Avatar
Coach
MVP
radzmar
MVP

Likes

397 likes

Total Posts

2,687 posts

Correct reply

492 solutions
Top badges earned
Coach
Ignite 3
Ignite 1
Validate 1
Give Back 50
View profile

Avatar
Coach
MVP
radzmar
MVP

Likes

397 likes

Total Posts

2,687 posts

Correct reply

492 solutions
Top badges earned
Coach
Ignite 3
Ignite 1
Validate 1
Give Back 50
View profile
radzmar
MVP

03-05-2015

I would use the indexChange event of the subform to control the presence of the desired button through a script.


MyButton.presence = this.instanceManager.count > 0 ? "visible" : "hidden";