V7R40


Nouveautés RPG


 

Nouveautés RPG de la version 7.4

On peut donc aussi utiliser ce mot clé pour recouvrir des sous-zones par un tableau, ce qui permet d'éviter le CTDATA qui pose problème dans les programmes de service

 

.Nouveautés disponibles seulement en 7.4

 

Tableaux dynamiques

2 possibilités pour les déclarer DIM(*AUTO:nbmax) ou DIM(*VAR:nbmax)

 

DIM(*AUTO:nbmax)

nbmax postes au maximum (ici 500)

La dimension du tableau s'incrémente au fur et à mesure des affectations par nom-tableau(*NEXT)

Il est possible de définir explicitement le nombre de postes avec la BIF %elem(nombre de postes)

 

DIM(*VAR:nbmax)

nbmax postes au maximum (ici 500)

La dimension doit être définie explicitement par la BIF %elem(nombre de postes) pour pouvoir affecter des valeurs dans les postes

 

La fonction %ELEM admet un deuxième paramètre ce qui permet

lorsque %elem est la source , de retrouver :

-le nombre d'occurences d'un tableau

Nblignes = %elem(montableau)

-le nombre de postes actuellement alloués d'un tableau dynamique

Nbpostes = %elem(montableau:*ALLOC)

-la dimension maximale d'un tableau dynamique

NbpostesMax = %elem(montableau:*MAX)

 

Lorsque %elem est la cible de l'affectation, de renseigner:

-la dimension d'un tableau

%elem(montableau) = Nblignes

-l'allocation des postes

%elem(montableau:*ALLOC) = Nbpostes

-la dimension pour laquelle on conserve ce qui est déjà renseigné lors d'un rétrécissement puis agrandissement

%elem(montableau:*KEEP) = Nbpostesdont le contenu est conservé

 

Tableaux chargés à la compilation

Il est maintenant possible de déclarer des tableaux chargés à la compilation sans indiquer le nombre de postes

 

DIM(*CTDATA)

Seul un poste par enregistrement est possible PERRCD(1)