Link in Zwischenablage kopieren
Kopiert
I have a simple list with checkboxes.
Is there a way to calculate a percentage complete based on the number of checkboxes were checked in one row?
If one checkbox is checked then it gives 25$
If two then 50%
If three then 75%
If all checked then 100%
Link in Zwischenablage kopieren
Kopiert
SUPPER
It works great, just add the first two lines
var max = 4;
var total = 0;
var fields = ["KW MB POP - Dr 1", "KS MB POP - Dr 1", "QT MB POP - Dr 1", "OM MB POP - Dr 1"];
for (var i=0; i<fields.length; i++) {
if (this.getField(fields[i]).valueAsString!="Off") {
total++;
}
}
event.value = total/fields.length;
Link in Zwischenablage kopieren
Kopiert
Sure. Let's say the fields are called Drink1 to Drink4. You can then use this code for that calculation:
var max = 4;
var total = 0;
for (var i=1; i<=max; i++) {
if (this.getField("Drink"+i).valueAsString!="Off") {
total++;
}
}
event.value = total/max;
You'll also need to set the text field as having the Percentage format.
Link in Zwischenablage kopieren
Kopiert
Hi try67,
This is supper, Thanks alot.
But, what if the fields name is diffrent like:
KW MB POP - Dr 1
KS MB POP - Dr 1
QT MB POP - Dr 1
OM MB POP - Dr 1
Link in Zwischenablage kopieren
Kopiert
Then you need to hard-code them into the script, like this:
var fields = ["KW MB POP - Dr 1", "KS MB POP - Dr 1", "QT MB POP - Dr 1", "OM MB POP - Dr 1"];
var total = 0;
for (var i=0; i<fields.length; i++) {
if (this.getField(fields[i]).valueAsString!="Off") {
total++;
}
}
event.value = total/fields.length;
[Edited: Code fixed]
Link in Zwischenablage kopieren
Kopiert
SUPPER
It works great, just add the first two lines
var max = 4;
var total = 0;
var fields = ["KW MB POP - Dr 1", "KS MB POP - Dr 1", "QT MB POP - Dr 1", "OM MB POP - Dr 1"];
for (var i=0; i<fields.length; i++) {
if (this.getField(fields[i]).valueAsString!="Off") {
total++;
}
}
event.value = total/fields.length;
Link in Zwischenablage kopieren
Kopiert
Sorry, I accidentally removed the declaration of the total variable.
The max variable is no longer needed, though.
Link in Zwischenablage kopieren
Kopiert
Hello, I would like to ask for assistance on my matter, it's similar to AhmedCOSTA's.
Calculate the percentage of the checkboxes.
For example; I have 19 checkboxes in total and if all of them are marked as checked. I want the field to get the percentage of 100%.
I followed Try67's code but I got the result 1,163% despite not ticking any of the boxes.
Link in Zwischenablage kopieren
Kopiert
I don't see where you declared 'total' variable?
Other than that it looks ok, although it could be done slightly different.
Link in Zwischenablage kopieren
Kopiert
I see it now. Thank you, Nesa!
I made a mistake in not including the 'total' variable.
Do you know how to keep that field blank if there's no checkboxes being ticked?
Thanks again.
Link in Zwischenablage kopieren
Kopiert
If you format the field as percentage, it can't be blank.
EDIT:
You can use this as custom format script instead:
if(event.value && parseFloat(event.value) != 0)
event.value = (parseFloat(event.value) * 100).toFixed(3) + "%";
else
event.value = "";
Link in Zwischenablage kopieren
Kopiert
It works, Nesa. But it shows with decimals. Is there a way to not have decimals in the percentage?
Sorry, I didn't specify in my previous comment.
I appreciate all the help.
Link in Zwischenablage kopieren
Kopiert
Disregard my previous comment.
Here's the script to achieve without decimal.
if(event.value && parseFloat(event.value) != 0)
event.value = (parseFloat(event.value) * 100).toFixed(0) + "%";
else
event.value = "";
Weitere Inspirationen, Events und Ressourcen finden Sie in der neuen Adobe Community
Jetzt ansehen