| RPG : astuces %lookup |
|
La fonction %lookup ne fonctionne pas avec des DS. Il suffit de quelques déclarations supplémentaires pour l'utiliser avec des DS : définir des variables alpha sur l'emplacement mémoire des DS :
Ne compile pas :
// DS modèle
d Voiture ds qualified
d template
d Constructeur 10a
d Immat 12a
d Catalogue ds likeds( Voiture )
d dim( 200 )
d maVoiture ds likeds( Voiture )
...
if %lookup( maVoiture : Catalogue ) = 0 ;
dsply 'ERREUR : ma voiture n''existe pas !' ;
endif ;
Compile :
// Ajouter les déclarations :
// déclarations pour %lookup
d CatalogueLook s 32a based( PtrCatalogue )
d dim( 200 )
d PtrCatalogue s * inz( %addr( Catalogue ) )
d maVoitureLook s 32a based( PtrmaVoiture )
d PtrmaVoiture s * inz( %addr( maVoiture ) )
...
if %lookup( maVoitureLook : CatalogueLook ) = 0 ;
dsply 'ERREUR : ma voiture n''existe pas !' ;
endif ;
|