Populate field outside MRVS with a total sum of fields inside MRVS

Suryansh Verma
Tera Contributor

Hello Community,

I want to populate a field called total sum on a record producer form with a total sum of the fields inside an MRVS.

I was able to achieve this using an onSubmit catalog client script, but it only populates the data when user submits the form using submit button.

Is there any way that when user clicks on ADD button on MRVS then it populates the field outside MRVS.

1 ACCEPTED SOLUTION

Mohith Devatte
Tera Sage
Tera Sage

hello @Suryansh Verma ,

yes its possible .Follow the below steps to do it 

1)Create simple widget like below and use the below code in client controller of the widget

In the if loop replace testing with your MVRS internal name and count with your variable back end name where you want to store the count 

sum = parseInt(sum)+parseInt(rows[i].your_field_name_to be_summed)

in the above line just replace your_field_name_to be_summed with your field name where your count values to be summed are stored

api.controller=function($scope,$rootScope) {
	/* widget controller */
	var c = this;
	$rootScope.$on("field.change", function(evt, parms) {
		var g_form = $scope.page.g_form;
		if(parms.field.name=="testing") // replace testing with the your  MVRS internal name
		{
			var rows = JSON.parse(g_form.getValue('testing'));  // replace testing with the your  MVRS internal name
var sum=0;
 for(var i=0; i<rows.length; i++)
{
sum = parseInt(sum)+parseInt(rows[i].your_field_name_to be_summed) // replace your_field_name_to be_summed with your field name where your numbers to be added are stored
}
			g_form.setValue('count',parseInt(sum)); // replace count with the variable back end name where you want to store the count of the MVRS rows
		}
		
	});
};

find_real_file.png

2)Then go to your catalog item and create. variable type called "custom" and tag your widget like below in widget field 

find_real_file.png

Then try adding the rows and giving the number in the field and see if its working 

Hope this helps 

please mark my answer correct if this helps you

 

View solution in original post

11 REPLIES 11

@Mohith Devatte alert returns the below values

alert('JSON'+rows);

JSON[object Object]

alert('Length'+rows.length);

Length1

alert(sum);

NaN

 

@Suryansh Verma ARE YOU SURE THAT HOURS1 is the back end of the field in MVRS ?

can you post a screenshot of the MVRS row once you add it and also which type of field is hours 1?

 

@Mohith Devatte 

I have got it working now there was some syntax error.

Just one question though, I have 2 fields inside MRVS hours & hours1 and two fields outside MRVS i.e. total_hours and total_hours1.

So will i have to create another widget and variable to populate 2nd field or it can be achived in the same widget?

@Suryansh Verma you can achieve this in the same widget just copy the exact code in the same widget for the other hours field 

Hope this helps

please mark my answer correct if this helps you

@Mohith Devatte Thank you for your prompt response, really appreciated. 🙂