Presenting a value based on another value in another field

persahlstrom
Mega Contributor

Hello, im trying to present a value in a field based on another field.

To illustrate, I have two fields: "Company" and "Company country". When I select a company from the search-function, I want the companys country to display in the "Company Country" field.

Both fields are references refering to core_companies where a company has a country.

find_real_file.png

So far, I've been buildning a Client Script which should get the job done, but somehow it doesn't. The fields name are: "company" and "x_vvab_sales_suppo_company_country" . Anyone got any idea why it's not working?

The code:

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading)
  return;

if (newValue == '') {
  g_form.setValue('x_vvab_sales_suppo_company_country', '');
  return;
}

if (!g_form.getControl('x_vvab_sales_suppo_company_country'))
  return;

var chosedCompany = g_form.getReference('company', setCompany);
}

function setCompany(chosedCompany) {
if (chosedCompany)
  g_form.setValue('x_vvab_sales_suppo_company_country', chosedCompany.country);
}

1 ACCEPTED SOLUTION

ghsrikanth
Tera Guru

Hi Per,



A small update to the script, I tried the script in my local - remove the getControl line as now the new field is not reference it may error out


and you can keep the function outside the onChange also, it still working - I have verified and its working in my local, mostly your issue will be resolved.



function onChange(control, oldValue, newValue, isLoading, isTemplate) {


if (isLoading)


  return;



if (newValue == '') {


  g_form.setValue('x_vvab_sales_suppo_company_country', '');


  return;


}


 


var chosedCompany = g_form.getReference('company', setCompany);



function setCompany(chosedCompany) {


  if (chosedCompany)


  g_form.setValue('x_vvab_sales_suppo_company_country', chosedCompany.country);


  }



}



Mark if it is helpful or correct, feedback is appreciated


View solution in original post

12 REPLIES 12

ghsrikanth
Tera Guru

Hi Per,



A small update to the script, I tried the script in my local - remove the getControl line as now the new field is not reference it may error out


and you can keep the function outside the onChange also, it still working - I have verified and its working in my local, mostly your issue will be resolved.



function onChange(control, oldValue, newValue, isLoading, isTemplate) {


if (isLoading)


  return;



if (newValue == '') {


  g_form.setValue('x_vvab_sales_suppo_company_country', '');


  return;


}


 


var chosedCompany = g_form.getReference('company', setCompany);



function setCompany(chosedCompany) {


  if (chosedCompany)


  g_form.setValue('x_vvab_sales_suppo_company_country', chosedCompany.country);


  }



}



Mark if it is helpful or correct, feedback is appreciated


Hello Srikanth!



It worked perfectly, thank you for your time and for a good solution!



Have a nice day!



Best regards,


Per


ghsrikanth
Tera Guru

Its great to know, the issue is resolved, thanks for your feedback