Calculate subtracted values of two fields and display result in 3rd field

Vaishali 11
Tera Guru

Hi,

I have a requirement where there are 4fields- field1, field2, field3 & field4. In field3 it should display the subtracted value of field2-field1. in field4 it should display (f2-f1)/f1.

 

How can this be achieved?

 

 

Thanks in advance!!

2 ACCEPTED SOLUTIONS

Hi there @Vaishali 11 , Here is the catalog client script you should write for the portal. I have tried this in PDI and it's working perfect as per your requirement.

Script : onChange();

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }
    //Type appropriate comment here, and begin script below
    var f1 = g_form.getValue('f_one');
    var f2 = g_form.getValue('f_two');
    var sub = f2 - f1;
    var div = (f2 - f1) / f1;
    g_form.setValue('f_three', sub);
    g_form.setValue('f_fr', div);

}
svirkar420_0-1761220028670.png

Refer this SS as well. 

 

If this answer helps you in any way make sure to Mark this as accepted solution and give a thumbs up this will also benefit others as well.
Regards.
Saurabh V.

View solution in original post

@Vaishali 11 

try this

-> 1 onChange catalog client script on field 2

-> another onChange catalog client script on field 1

-> Use parseInt() to convert string to integer

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }
    //Type appropriate comment here, and begin script below
    var val1 = parseInt(g_form.getValue('field1'));
    var val2 = parseInt(g_form.getValue('field2'));
    var sub = val2 - val1;
    var div = sub / val1;
    g_form.setValue('field 3', sub);
    g_form.setValue('f_fr', div);

}

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

15 REPLIES 15

thanks @svirkar420 , working now.

@Vaishali 11 

I don't think it will work as you are trying to subtract 2 strings.

Could you share the results?

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

@Vaishali 11 

try this

-> 1 onChange catalog client script on field 2

-> another onChange catalog client script on field 1

-> Use parseInt() to convert string to integer

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }
    //Type appropriate comment here, and begin script below
    var val1 = parseInt(g_form.getValue('field1'));
    var val2 = parseInt(g_form.getValue('field2'));
    var sub = val2 - val1;
    var div = sub / val1;
    g_form.setValue('field 3', sub);
    g_form.setValue('f_fr', div);

}

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Hi @Ankur Bawiskar ,

I tried this approach as well, but not working

@Vaishali 11 

share screenshots of your client script config,

share your script, share what error you are getting

without this we can't help

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader