populating a dropdown with information from the screen
Posted: 22 Dec 2022, 05:05
Hi
Been playing today with this, the only particular detail is to be aware that the array is of an object that contains values and text.
So, if you have a screen like this one:
and you want to have the input field code, to have a dropdown, using the values listed below, you could first identify the screen, also identify the field containing the 1=aaa 2=bbb etc for example as "options", then, bring a dropdown in the input field "code", leave the dropdown as Fixed Values, and select the script for fixedValues, click edit:
you can use this script there for example, which basically moves the string in the screen to an array, temporarly each entry is also split by the = character and the two halfs are used to populate value and text, adding entries to the returnValue array:
more info here:
https://axesdocs.lansa.com.au/index.php ... 50cmllcyJd
Been playing today with this, the only particular detail is to be aware that the array is of an object that contains values and text.
So, if you have a screen like this one:
and you want to have the input field code, to have a dropdown, using the values listed below, you could first identify the screen, also identify the field containing the 1=aaa 2=bbb etc for example as "options", then, bring a dropdown in the input field "code", leave the dropdown as Fixed Values, and select the script for fixedValues, click edit:
you can use this script there for example, which basically moves the string in the screen to an array, temporarly each entry is also split by the = character and the two halfs are used to populate value and text, adding entries to the returnValue array:
Code: Select all
/* move the string 1=aaa 2=bbb etc to an array format {"1=aaa", "2=bbb", etc. } */
let arraytxt = (FIELDS("options").getValue()).split(' ');
/* clear the array */
ENV.returnValue = [];
for (let i = 0; i < arraytxt.length; i++) {
/* convert the array entry in another temporary array for example tmp[0] = 1, tmp[1] = aaa */
let tmp = arraytxt[i].split('=');
/* put it together as an object and add it to the array*/
var object = { value: tmp[0], text: tmp[1]};
ENV.returnValue.push(object);
}https://axesdocs.lansa.com.au/index.php ... 50cmllcyJd