[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2016
    Beiträge
    33

    Progamm interne Tabelle in RPGIV definieren

    Hallo,
    habe Probleme mit der Definition einer programm internen ladbaren Tabelle

    **
    01Januar
    02Februar
    03März
    04April

    usw.

    Wie muss die in den D-Bestimmungen definiert werden
    Stehe gersde auf dem Schlauch.
    Danke

  2. #2
    Registriert seit
    Jan 2003
    Beiträge
    746
    D MONAT S 20 DIM(12) CTDATA PERRCD(1)
    **
    Januar
    Februar
    März

  3. #3
    Registriert seit
    Aug 2016
    Beiträge
    33
    Die Tabelle sollte aber so aussehen

    01Monatsname

    Es ist nur ein Beispiel

  4. #4
    Registriert seit
    Jan 2003
    Beiträge
    746
    Wozu?

    MyMonatNum = %Lookup(%Trim(String):MONAT:1);
    MyMonatNam = MONAT(MyMonatNum);

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    Was ich an internen Tabellen hasse ist, dass die Informationen am Ende der Quelle stehen und eine nach meinem Geschmack illustere Syntax haben.

    Deshalb definiere ich i.d.R. globale/locale Datenstrukturen, die direkt initialisiert werden und innerhalb der Quelle nicht verändert werden. (...ich weiß ist nicht das gleiche, aber m.E. einfacher zu handeln und mit den richtigen Namenskonventionen sollte auch der Kollege solche Struktueen nicht überschreiben:

    Code:
      DCL-DS  ConstDSMonat   Qualified;
          *N  Zoned(2) inz(1);
          *N  Char(10) inz('Januar');
          *N  Zoned(2) inz(2);
          *N  Char(10) inz('Februar');
     ...
         Arr     Dim(12)  Pos(1);
         ArrNum  Zoned(2) Overlay(Arr);
         ArrChar Char(10) Overlay(Arr: *Next);
      END-DS;
    Birgitta
    Birgitta Hauser

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

  6. #6
    Registriert seit
    Jun 2009
    Beiträge
    316
    Ich hab mal was aus einem Uraltprogramm rausgeholt:

    D USn S 3 DIM(11) CTDATA PERRCD(1)
    D UKn S 16 DIM(11) ALT(USn)


    ** USn + UKn UMSATZ
    0321771000000000000
    0331776000000000000
    0351775000000000000
    0361570000000000000
    0371575000000000000
    0381571000000000000
    0391577000000000000
    03F1561000000000000

  7. #7
    Registriert seit
    Nov 2003
    Beiträge
    2.304
    Oder vielleicht so?

    PHP-Code:
    DMONATE           DS                                         
    DARRINZ                               INZ
    ('01Januar    +     
    D                                          02Februar   +     
    D                                          03März      +     
    D                                          04April     +     
    D                                          05Mai       +     
    D                                          06Juni      +     
    D                                          07Juli      +     
    D                                          08August    +     
    D                                          09September +     
    D                                          10Oktober   +     
    D                                          11November  +     
    D                                          12Dezember  '
    )    
    DARR                                  OVERLAY(ARRINZDIM(12)
    DARRNUM                          2S 0 OVERLAY(ARR)           
    DARRCHAR                        10A   OVERLAY(ARR:*NEXT

  8. #8
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    Zitat Zitat von Pikachu Beitrag anzeigen
    Oder vielleicht so?

    PHP-Code:
    DMONATE           DS                                         
    DARRINZ                               INZ
    ('01Januar    +     
    D                                          02Februar   +     
    D                                          03März      +     
    D                                          04April     +     
    D                                          05Mai       +     
    D                                          06Juni      +     
    D                                          07Juli      +     
    D                                          08August    +     
    D                                          09September +     
    D                                          10Oktober   +     
    D                                          11November  +     
    D                                          12Dezember  '
    )    
    DARR                                  OVERLAY(ARRINZDIM(12)
    DARRNUM                          2S 0 OVERLAY(ARR)           
    DARRCHAR                        10A   OVERLAY(ARR:*NEXT
    Das klappt bei gezonten und alphanumerischen Feldern mit fixer Länge. Bei gepackten Feldern und/oder Feldern mit variabler Länge wird diese Schreibweise problematisch.

    Birgitta
    Birgitta Hauser

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

  9. #9
    Registriert seit
    Aug 2016
    Beiträge
    33
    Das aus dem Uraltprogramm ist das was ich in diesem Fall brauche. Danke.

Similar Threads

  1. Interne Prozeduren mit DFTACTGRP
    By DEVJO in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 16-09-15, 14:14
  2. iseries Sicherheittool interne Userkontrolle
    By svente in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 03-11-14, 13:46
  3. ILE RPG, Berechnung extern definieren
    By Bau in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 05-12-02, 17:43
  4. BIBL.-Liste im WAS 3.5 definieren
    By sufukli in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 07-06-02, 13:07
  5. Wie Command mit Auswahlliste definieren
    By Joachim_Scholz in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 21-11-01, 18:45

Berechtigungen

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