I am building a soil mapping survey and am having a problem with one of my calculations. I have repeat questions related to the soil's profile. Each repeat represents a soil horizon. Some of the properties that need to be captured is the Upper and Lower depths. What I am attempting to do is:
if HORIZON_NO = 1
UPPER = 0
else
UPPER = LOWER_MAX
LOWER_MAX is the max of the LOWER measurement recorded in the repeats. Essentially the first horizon will have an UPPER measure (depth) of 0. The second repeat or horizons will now automatically populate the upper to equal the previous lower. The code that I used is:
if (${HORIZON_NO}=1, 0, ${LOWER_MAX})
What ends up happening is that first repeat does not get a 0 and when I capture a second repeat it actually concatenates the 1 and 0 from my if statement.
Solved! Go to Solution.
I do this as well for my Soil Pits. I cant tell who you work for it may be similar then I could share my forms.
But the trick I got was to use once hidden field and a once so that it stays put and does not recalc on me. I also add the 0 to the max. I forget my process since it was a few years ago but it works.
Hope that helps
Hello Dan Bihari,
Is the second repeat or the HORIZON_REPEAT nested within a repeat that LOWER_MAX is contained in? Additionally is there a repeat count set for either the outer or nested repeat?
If so we have a few issues with calculations in nested repeats.
If possible would I be able to obtain a copy of your XLSForm for testing on our end to confirm if this is the same behavior as our issue?
Thank you,
Zach
Hey Zach,
For some reason my GeoNet is all messed up and I am having trouble using it on a consistant basis. I assume that it’s related to the GeoNet migration. I hope you don’t mind that I respond to you directly.
So what I am trying to do is once a soil pit is dug you have multiple soil horizons. Each repeat represents a new soil horizon. With each soil horizon you have an upper measurement, which start at 0, and a lower measurement which represent the depth. What I’m attempting to do is as the second repeat is started, the lower measurement from the first repeat is automatically enter in for the upper of the second repeat.
First Repeat
Upper – 0
Lower – 25
Second Repeat
Upper – 25
Lower – 45
Third Repeat
Upper – 45
Lower – 60
Etc…
This work starts at row 111 and my LOWER_MAX calc is on row 87.
Thank you very much for your help Zach.
Cheers!
~Dan
Dan Bihari (he/him)
Senior Geographic Information Specialist
Resource Information Business Services Unit
I do this as well for my Soil Pits. I cant tell who you work for it may be similar then I could share my forms.
But the trick I got was to use once hidden field and a once so that it stays put and does not recalc on me. I also add the 0 to the max. I forget my process since it was a few years ago but it works.
Hope that helps
Doug…
YOU ARE A GENIUS!
Thank you SOOO much. That worked perfectly.
~Dan
Dan Bihari (he/him)
Senior Geographic Information Specialist
Resource Information Business Services Unit
Cool. Please mark the post as correct. thanks