But I found a strange behaviour...
I have this global method:
- Code: Select all
function resetFormVars(formName)
{
var myForm = solutionModel.getForm(formName);
for (var i in forms[formName].allvariables) {
var formV = myForm.getFormVariable(forms[formName].allvariables[i]);
forms[formName].controller.setDataProviderValue(formV.name, formV.defaultValue);
}
}
Where
formName is the name of the Form where this method is called.
formV.defaultValue doesn't work properly (I think) because when the default value of a variable is null,
it returns the string "NULL" Ok, I have to modify the method:
- Code: Select all
function resetFormVars(formName)
{
var myForm = solutionModel.getForm(formName);
for (var i in forms[formName].allvariables) {
var formV = myForm.getFormVariable(forms[formName].allvariables[i]);
if(formV.defaultValue.toUpperCase() == 'NULL') {
forms[formName].controller.setDataProviderValue(formV.name, null);
} else {
forms[formName].controller.setDataProviderValue(formV.name, formV.defaultValue);
}
}
}
But.... it's no ok!! Again, with
formV.defaultValue. When the default value is a string, formV.defaultValue return a string with single quotes: "'default_value'". So I have to modify again the method, like this:
- Code: Select all
function resetFormVars(formName)
{
var myForm = solutionModel.getForm(formName);
for (var i in forms[formName].allvariables) {
var formV = myForm.getFormVariable(forms[formName].allvariables[i]);
if(formV.defaultValue.toUpperCase() == 'NULL') {
forms[formName].controller.setDataProviderValue(formV.name, null);
} else {
//SI LA VARIABLE ES STRING, SERVOY SE EMPEÑA EN PONER UNAS COMILLAS, ASI QUE TOCA QUITARLAS
forms[formName].controller.setDataProviderValue(formV.name, utils.stringReplace(formV.defaultValue, "'", ""));
}
}
}
It's very annoying