Rob’s approach should work — just add a custom field renderer on a dummy field (e.g. the Id field) and then in your custom field renderer display the calculated value, and don’t provide an “Edit” mode renderer at all. Just unilaterally output a number/currency in read mode, e.g.
var field = arguments[0],
value = arguments[1],
$ = skuid.$;
field.metadata = {
displaytype: ‘CURRENCY’,
accessible: true,
precision: 8,
scale: 2,
required: false,
nameField: false,
label: ‘Cost’
};
field.required = false;
var calculateCost = function(){
value = (field.model.getFieldValue(field.row,‘Quantity__c’,true) || 0)
* (field.model.getFieldValue(field.row,‘Price__c’,true) || 0);
value = Math.round(value * 100) / 100;
field.element.empty();
skuid.ui.fieldRenderers.CURRENCY.readonly(field,value);
};
calculateCost();
var listener = new skuid.ui.Field(field.row,field.model,null,{fieldId: ‘Quantity__c’,register:true});
listener.handleChange = function(val){
calculateCost();
};
field.model.registerField(listener,‘Price__c’);