[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2009
    Beiträge
    131

    Übergabe Datenstruktur (Occur=16) an Prozedur in Modul

    Hallo,

    ich möchte eine Datenstruktur mit 16x4 Feldern von einem RPGLE Modul an das nächste übergeben.

    Habe die DS jeweils im Prototypen angegeben.

    Beim Kompilieren erhalte ich aber einen Fehler in einer Zeile in der die DS-Felder mit Index (z.B. DS(03)) angesprochen werden: "Eine nicht-Datenstruktur kann nicht mit Index angesprochen werden."

    Kann man eine DS mit Mehrfachvorkommen nicht übergeben?

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Mehrfach-Datenstrukturen (Schlüsselwort Occurs) können im Prototypen NICHT definiert werden, wohl aber Array-Datenstrukturen (Schlüsselwort DIM).

    Die Struktur/Aufbau ist bei Array- und Mehrfachdatenstrukturen identisch. Bei Array-Datenstrukturen können die einzelnen Datenstruktur-Unterfelder direkt angesprochen werden, während bei den Mehrfach-Datenstrukturen die einzlenen Vorkommen zunächst mit dem Operation Code OCCUR oder mit der Built-In-Function %OCCUR eingelesen werden.

    Du musst natürlich auch die Dimension (Schlüssel-Wort DIM) im Prototypen angeben!

    ... also statt Mehrfach-Datenstrukturen Array-Datenstrukturen verwenden und dann klappts auch mit der Übergabe!

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  3. #3
    Registriert seit
    Sep 2005
    Beiträge
    425
    off topic
    die Komination aus occur und DIM erlaubt dann schöne 2-dimenionale Tabelen

    Der ILEMax

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von ILEMax Beitrag anzeigen
    off topic
    die Komination aus occur und DIM erlaubt dann schöne 2-dimenionale Tabelen

    Der ILEMax
    Diese Kombination war bereits in RPGIII möglich!

    Für mehrdimensionale Tabellen ist eine Kombination von Occur und Dim nicht notwendig. Mit DIM und verschachtelten Datenstrukturen (jeweils wieder mit DIM) kannst Du die schönsten Schweinereien machen.

    z.B.
    Code:
    D BestMon         DS                  Dim(12) Qualified                   
    D  AnfBest                      11P 3                                     
    D  Zugang                       11P 3                                     
    D  Abgang                       11P 3                                     
    D  EndBest                      11P 3                                     
                                                                              
    D JahresBestand   DS                  Dim(3) Qualified                    
    D   Bestand                           LikeDS(BestMon) Dim(%Elem(BestMon)) 
                                                                              
    D Abweichung      S              7P 2           
    D Jahr            S              5U 0 inz(2)  
    D Monat           S              3U 0 inz(11)                              
    **************************************************************************
     /Free                                                                    
                                                                              
       Abweichung = (1 - Jahresbestand(Jahr).Bestand(Monat).AnfBest) * 100 /  
                         Jahresbestand(Jahr-1).Bestand(Monat).AnfBest;        
                                                                              
     /End-Free
    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  5. #5
    Registriert seit
    Sep 2005
    Beiträge
    425
    Toll.
    ich bin beeindruckt!
    Konnte mich nie an das Qualified Kram gewöhnen.
    Aber das sieht schon sehr gut aus...
    Muß ich wohl noch mal ein wenig lernen.
    (und das, wo wir EDV'le ja sowieso nie mit dem Lernen aufhören ...
    )

    Danke Birgitta,
    Der ILEMax

  6. #6
    Registriert seit
    Jun 2009
    Beiträge
    131

    Danke!

    Um es mal mit den Worten einer jungen Dame (bekannt aus Funk und Fernsehen) zu sagen:

    Danke Birgitta und ILEMax! Hat mich schwer gehelft!

Similar Threads

  1. Debug Modul ohne Quelle
    By Marimari1009 in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 22-11-06, 14:48
  2. Prozedur, in welchem Modul
    By loeweadolf in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 06-11-06, 15:05
  3. DS Übergabe
    By Squall in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 24-10-06, 08:44
  4. Datenstruktur
    By Bratmaxxe in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 24-07-06, 13:25
  5. Modul <-> Programm
    By Tobse77 in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 16-05-05, 17:12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •