I am stuck with the code and was wondering if someone has any suggestion.
I have a following code that is working and accomplishes what I want;
Hides presence of the subform
devP4, every time I add new instance
if
(SubForm1.tblEst.estRow1.txtEst.rawValue.length > 4)
{
for
(var i = 0; i < 4; i++){
var oFisDevice = xfa.resolveNode("Form.subMain.SData.SDev.indVice["+i+"]");
oFisDevice.DDetails.devRes.devP4.presence = "hidden";
}
xfa.layout.relayout();
}
What I cannot figure out is how to set width of the field called txtComments under subform devP6 to 9in, at the same time.
The code I have now is below. It works but sets the width to only first instance. What am I missing?
xfa.resolveNode("Form.subMain.SData.SDev.DevP6.txtComments").w = "9in";
Solved! Go to Solution.
Views
Replies
Total Likes
I created a sample with what I think you want .....have a looka md let me know what you think .....all of the code is on the click event of the button.
Paul
Views
Replies
Total Likes
Hi,
Reading from the "Help" (F1):
Note: Scripts that fire on layout:ready should not do anything that would cause the layout of the form to change. For example, this would include anything involving subforms or tables that grow or shrink, adding fragments dynamically at run time, adding or removing subform instances, and toggling the presence setting of an object between hidden and visible.
I would try the "initialize" event. Reading from "Help" (F1):
You can use this event to perform actions when an object is first created, either as the result of a form filler action or during the form creation process. For example, you can use this event to control settings for new instances of a subform object that a form filler adds to the form by using a button.
Good luck!
Stephen
Views
Replies
Total Likes
Thank you. I cannot use it on initilize event and my code is currently on the click of the button. I
need it to be there. Click on the button supposed to hide subform and set this field's width to 9in.
Every time I click on the button I would love to add new instance,hide on subform and set field size to 9in.
Hope that clarifies my previous post.
Views
Replies
Total Likes
Hi,
I'm not sure if this is helpful. The Initialize event is a process event--it fires (and executes its scripts) every time you create a new instance--even those new instances created by a button click. Unfortunately, it fires when you first open the form. So, if setting the width when openning is alright, you can use this event without any conditions added.
Otherwise, you could put a "if" condition on the script to have it count the number of instances (or some other condition) and if it meets the condition then it can set the width.
Good luck!
Stephen
Views
Replies
Total Likes
Let me put it this way.
Does anyone have a sample that demonstrates following. When the forms is rendered, there are 3 subforms.
Suform1 has Textfield1
Suboform2 has 6 Textfields (Textfield2,Textfield3,Textfield4,Textfield5,Textfield6)
Subform3 has Button1
If value entered in TextField1 is bigger then 4, every time when I click on Button 1, I want to:
add instance of Subform2 ,
hide Textfields2 and TextField3 and set widths of TextField4 to 9in.
When I click Button1 for the first time, it works as expected. When I add instance every other time, I hide Textfields2
and TextField3 but the width for TextField4 is unchanged.
Thank you,
Views
Replies
Total Likes
I created a sample with what I think you want .....have a looka md let me know what you think .....all of the code is on the click event of the button.
Paul
Views
Replies
Total Likes
That is exactly what I was looking for. You made my day Paul!
Thank you so much.
Just one more thing... I want to learn from your sample...Can you please explain this line of code to me?
xfa.resolveNode("Subform2["
+ i + "]").TextField4.x = xfa.resolveNode("Subform2[" + i + "]").TextField2.x
Views
Replies
Total Likes
If we make Textfield4 9 in wide ....it will start from the current laocation of TextFiedl 4 (about 3/4 of the way across the page .....so I am assigning the x location of TextField 2 (the start of the row) to the start location of TextField4 so it will start at the beginning.
You are assuming that if we remove the two fields that all other fields will shift to the left. Because this is contained with a positioned subform that will not happen. You coudl make the subform flowed but flow Western Text and you would not have to do that.
Make sense?
Paul
Makes perfect sense.
Thank you again.
Views
Replies
Total Likes
Views
Likes
Replies
Views
Likes
Replies
Views
Likes
Replies