Start Time | End Time | Mode of Transport | Journey Time |
---|---|---|---|
HH:MM | HH:MM | Drop Down List | Auto calculated on start/end times |
Total Time Traveling |
---|
Sum of Journey Times |
Mode of Transport | Total Time Journey Time |
---|---|
Drop Down List |
I have created an interactive form which requires members of the general public to fill out a travel diary. I have got all the calculations to work except the bottom table. I'm trying to figure out which formcalc scripts to use to give a total time for each mode of transport, based on the users choice. For example, if the user want's to see how many mins they have cycled this week, they pick cycling from the drop down list on the bottom table and then in the total journey time it tells them how many mins they have cycled that week.
Solved! Go to Solution.
Views
Replies
Total Likes
Hi,
I am all for learning and hope that this returned form helps. But a little annoyed that Managers do not "appear" be place a value on it.
https://acrobat.com/#d=HJIBeWz3ZjvcBZjsSW-Vrw
I have sorted out the first two pages, in how I believe it would be best to approach the problem:
Looping script for anyone interested:
// Set up some variables
var vTime = 0;
var currentRow;
// Calculate a summary for car
for (var i=3; i<5; i++) // work through the first two pages
{
for (var j=0; j<10; j++) // work through the ten rows in each page
{
currentRow = xfa.resolveNode("Page" + i + ".Table1.Row1[" + j + "]");
if (currentRow.modeTransport.rawValue == "Car")
{
vTime = vTime + currentRow.journeyTime.rawValue;
}
}
}
// Set summary journey time
this.rawValue = vTime / 60;
Hopefully your manager will see value!
Niall
Views
Replies
Total Likes
Anyone?
Views
Replies
Total Likes
Hi,
Is the top table dynamic, in that the user can add more rows?
One way would be to have script in the exit event of the summary table dropdown, that would loop through all of the rows in the top table and if the dropdown in a row matches it would add that time.
If we take that the rows are repeatable then the following JavaScript should help:
var nRows = Table1._Row1.count;
var vTime = 0;
var currentMode;
// loops through the table
for (var 1=0; i<nRows; i++)
{
// resolve the first table dropdown
currentMode = xfa.resolveNode("Table1.Row1[" + i + "].modeTransport").rawValue;
// if this is same as user selection in summary table then add
if (currentMode == this.rawValue)
{
vTime = vTime + currentMode;
}
}
// set total time in same row as dropdown in summary table
TotalTime.rawValue = vTime;
There are a couple of table solutions that may help: http://assure.ly/lwQHm7
Hope that helps,
Niall
Thanks for the reply, it was very useful!
I don't think I gave enough info...as I am quite new to livecycle and new to this project.
http://www.2shared.com/document/MdBLfjgr/travelDiary_FINAL_2011.html is what I'm working on, the password is travel2011
Cheers,
L.
Views
Replies
Total Likes
It's like all journeys: "well I wouldn't start from here" ;-)
It doesn't appear that you have a summary table yet. Is that correct?
I will work up a solution, but will take some rows out.
Fear not,
Niall
Views
Replies
Total Likes
Hmmm, also on two tables you have a start time and a finish time, whereas on others you have a start time and journey time. Which are you running with?
Niall
Views
Replies
Total Likes
You're right, I haven't done the summary table yet, just because I like to get the basic scripts/formulae correct first and then play around where they are going to go.
As you'll see, the first couple of days have been done in terms of the table above, but once all the scripts are done, then I'll change all the other tables.
For example, I did a lot of the scripts for days one and two, and at the moment they are my test pages. Once, I've got those sorted, I can edit the summary script for all the other days and implement it for days 3,4,5,6 and 7.
L.
Views
Replies
Total Likes
Oh, also, because the project doesn't go live till July, my manager may want other things included (or changed), which she is too tight to pay our own IT guys to do and wants me to learn it .
L.
Views
Replies
Total Likes
Hi,
I am all for learning and hope that this returned form helps. But a little annoyed that Managers do not "appear" be place a value on it.
https://acrobat.com/#d=HJIBeWz3ZjvcBZjsSW-Vrw
I have sorted out the first two pages, in how I believe it would be best to approach the problem:
Looping script for anyone interested:
// Set up some variables
var vTime = 0;
var currentRow;
// Calculate a summary for car
for (var i=3; i<5; i++) // work through the first two pages
{
for (var j=0; j<10; j++) // work through the ten rows in each page
{
currentRow = xfa.resolveNode("Page" + i + ".Table1.Row1[" + j + "]");
if (currentRow.modeTransport.rawValue == "Car")
{
vTime = vTime + currentRow.journeyTime.rawValue;
}
}
}
// Set summary journey time
this.rawValue = vTime / 60;
Hopefully your manager will see value!
Niall
Views
Replies
Total Likes
Hi Niall,
Thanks for the reply. I'll have a look at it now. It's not that my manager doesn't see the value, it's the fact we have a small budget for this project and trying to save where she can. She would rather spend the amount this would have cost, for me to spend half a day (which is the same amount of time of IT guys would have charged us for to make changes to this travel diary) with our database guy so I can fix things cheaper in the future.
L.
Views
Replies
Total Likes
Hey Niall,
Thanks so much! It's perfect :). I'll show it to you when it's complete .
Just to check, do I copy and paste the tables from page 1 and 2 onto the other pages?
Cheers,
M.
Views
Replies
Total Likes
Hi,
Yes, you would need to copy the solution down to the other five days.
The easiest way is to select Row1 in the first table and copy (Control+C). Then in the other tables, select the first instance of Row1 and paste (Control+V). You will need to delete the redundant Rows.
This will bring all of the objects and scripts to the other tables.
The summary script will need to be altered to loop to Page9. E.g. using "i<10", the last loop will be i=9 and the script will use this as "Page9".
for (var i=3; i<10; i++) // work through the first seven pages
Should be good to go then.
Niall
Views
Replies
Total Likes
Views
Likes
Replies
Views
Likes
Replies
Views
Likes
Replies