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 ;