Manipule une variable venant de WinDev depuis ou vers une variable locale du programme natif.
Ces fonctions sont prévues pour manipuler des structures de données.
Un appel préalable à variable_init_desc, variable_init_ds ou variable_init_pcml est nécessaire.
variable_get_data lit la variable vers un pointeur RPG, et variable_set_data fait le contraire.
Si la variable est de type tableau, variable_get_data_next permet d’accéder successivement aux occurrences. variable_set_data _next permet d’ajouter des occurrences.
Remarque : Il faut utiliser variable_get_data avant variable_get_data _next, et variable_set_data avant variable_set_data _next.
Prototype RPG :
Dvar_get_data PR 10I 0 ExtProc('variable_get_data')
D var_name * value options(*string)
D data * value
var_name correspond au nom de la variable côté PC.
data est un pointeur vers la variable réceptrice, qui peut être un élément de tableau de structure, ou une structure simple.
La fonction retourne un entier différent de zéro en cas d’erreur
Exemple d’utilisation (ici en RPGLE):
Dpartenaire DS
D identif 9P 0
D cdealpha 10
D raisonsoc 30
D absorbes 70
[…]
/free
// define array of structure result
iRet = var_init_desc('wpart':
'(identifiantPartenaire:P9)' +
'(codealphaPartenaire:A10)' +
'(raisonSociale:A30)' +
'(absorbes:A70)'
);
iRet = var_set_data('wpart': %addr(partenaire));
Cet exemple lit la variable windev ‘wpart’, et l’affecte à la DS locale ‘partenaire’