Hi folks. I'm trying to get a sheet worker to read the values in a set of fields, do some math on the result and display the final answer in a text field. Here's what I have so far- //when the sheet loads or the relevent values change
on("change:repeating_experience:experiencetype change:repeating_experience:skilltitlebody change:repeating_experience:skilltitlemind change:repeating_experience:skilltitleeq change:repeating_experience:skilltitlequick change:repeating_experience:expyearstart change:repeating_experience:expyearend sheet:opened", function() {
//get the attributes from the repeating section that's changed
getAttrs([
"repeating_experience_experiencetype", "repeating_experience_skilltitlebody", "repeating_experience_skilltitlemind", "repeating_experience_skilltitleeq", "repeating_experience_skilltitlequick", "repeating_experience_expyearstart", "repeating_experience_expyearend"
], function(values) {
//setup a bunch of variables
let swexperiencetype = parseInt(values.repeating_experience_experiencetype) ||0;
let swskilltitlebody = parseInt(values.repeating_experience_skilltitlebody) ||0;
let swskilltitlemind = parseInt(values.repeating_experience_skilltitlemind) ||0;
let swskilltitleeq = parseInt(values.repeating_experience_skilltitleeq) ||0;
let swskilltitlequick = parseInt(values.repeating_experience_skilltitlequick) ||0;
let swexpyearstart = parseInt(values.repeating_experience_expyearstart) ||0;
let swexpyearend = parseInt(values.repeating_experience_expyearend) ||0;
//do some math
let yearsspent = swexpyearend - swexpyearstart;
let expovertime = Math.round(yearsspent * swexperiencetype);
let xpspent = (swskilltitlebody + 1) + (swskilltitlemind + 1) + (swskilltitleeq + 1) + (swskilltitlequick + 1);
let xpremaining = expovertime - xpspent;
//pass the result of the math on to the expleftdisplay text field
setAttrs({
expleftdisplay: xpremaining
})
});
});