[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Apr 2014
    Beiträge
    10

    Question Gepackte Felder in RPG II (RPG36)

    Hallo zusammen,

    ich muss eine Anpassung in einem RPG II Programm durchführen und brauche dazu ein gepacktes Feld. Das Feld soll gepackt 6,0 definiert sein.

    Mit
    C Z-ADD*ZEROS FELD 60
    bin ich schon hereingefallen. Ich dachte, das Feld wird wie im RPG III als gepacktes Feld definiert. Aber der Compiler macht daraus ein gezontes Feld.

    Ich habe es auch schon über eine DS versucht, aber das haut irgendwie auch nicht hin. Vielleicht mache ich hier ja aber etwas falsch.
    I DS
    I P 1 40FELD

    Weiß jemand, ob man in RPG II ein Feld explizit als gepackt definieren kann (und wenn ja, wie)?

    Danke und Grüße
    Thomas

  2. #2
    Registriert seit
    Sep 2015
    Beiträge
    28
    Die Datentypen P (gepackt), S (gezont) und B (binär) werden im Free Format durch die Schlüsselworte PACKED, ZONED und BINDEC ersetzt.

    Im Free-Format entspricht PACKED(11, 2) der Fix-Format-Definition 11P 2.
    Wird ein Feld im Free-Format mit ZONED(7) angegeben, so entspricht dies im Fix-Format der Definition 7S 0.

    Hoffe das hilft

    Paul Hofmann

  3. #3
    Registriert seit
    Jan 2007
    Beiträge
    905
    Feld 6.0 gepackt = Feld gezont 11.0
    Ich hoffe, ich hab die Frage so verstanden. Alles andere macht keinen Sinn.

    Anmerkung: Felddefinitionen nur für I/O packen. Für interne Felder ist das Format egal.
    kf

  4. #4
    Registriert seit
    Apr 2014
    Beiträge
    10
    Hallo Paul,

    danke für Deine Antwort, aber mit Free-Format kann ich unter RPG II (RPG36) leider nichts anfangen.
    Für mein Problem sollte ich wissen, wie ich ein Feld unter RPG II explizit als gepackt definieren kann.

    Gruß
    Thomas

  5. #5
    Registriert seit
    Dec 2002
    Beiträge
    37
    In den Rechnenbestimmungen wird das Feld ganz normal mit 6,0 Stellen definiert.

    In den Ausgabebestimmungen wird dann in der Stelle 44 ein P angegeben und das Feld wird gepackt gefüllt.

    O FELD 4P

    In den Eingabebestimmungen sieht es dann so aus:

    I P 1 40FELD


    Manfred Maschke

  6. #6
    Registriert seit
    Apr 2014
    Beiträge
    10
    Zitat Zitat von camouflage Beitrag anzeigen
    Feld 6.0 gepackt = Feld gezont 11.0
    Ich hoffe, ich hab die Frage so verstanden. Alles andere macht keinen Sinn.

    Anmerkung: Felddefinitionen nur für I/O packen. Für interne Felder ist das Format egal.
    Nicht ganz.
    Ich weiß, wie man in RPG III bzw. RPG IV (ILE) ein gepacktes Feld definiert. Aber unter RPG II (RPG36) funktioniert das irgendwie nicht.

    Das Feld benötige ich als Parameter an ein CL-Programm, das will die Daten gepackt haben.

  7. #7
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Vielleicht liegt's daran:

    AS/400 Performance Management Version 3 Release 1 (April 1995)

    ... Other systems may process other numeric field types more efficiently. For example, System/36 uses zoned decimal arithmetic. Since the System/36 RPG compiler on the AS/400 (CRTS36RPG) does not generate packed decimal fields, you must use the CRTRPGPGM to get packed decimal field code generated for running on an AS/400.

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ggf. kann man sich dann mit einem Trick behelfen, in dem man eine externe DS (soweit das da schon geht) erstellt, die das Feld als gepackt definiert.
    Vielleicht übernimmt der Compiler das dann auch als gepackt.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Oder den Wert als Zeichenkette übergeben und im CL empfangen und in ein numerisches Feld übertragen. Vorsicht bei negativen Werten!

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Und dann gibts ja immer noch die "Wrapper"-Option:
    RPG mit Zoned-Parameter, übertragen in Packed und Aufruf des Originals.
    Ggf. Rückübertragen des Wertes wenn es eine Returnwert sein soll.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  11. #11
    Registriert seit
    Apr 2014
    Beiträge
    10
    Das habe ich fast schon vermutet/befürchtet. Danke für den Link.
    Ich hatte gehofft, dass es doch irgendwie möglich sein könnte, gepackte Felder zu definieren.

    Dann muss ich doch den Umweg über einen Wrapper machen.

  12. #12
    Registriert seit
    Apr 2014
    Beiträge
    10
    Ja, das mit dem Wrapper habe ich mir auch schon überlegt und werde das wohl machen.

    Danke für Deine Antwort.

    VLEXsoftware+consulting gmbh
    http://www.vlexplus.com

Similar Threads

  1. VARCHAR Felder(UTF-8) und ILE RPG
    By uditzen in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 26-06-15, 10:03
  2. NULL Felder / CPYTOIMPF
    By cicero22 in forum IBM i Hauptforum
    Antworten: 12
    Letzter Beitrag: 03-09-14, 18:45
  3. S/36 Format und Hidden Felder
    By Tonazzo in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 12-06-14, 22:50
  4. SQL Felder dynamisch
    By Harald.Wallukat in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 16-12-02, 20:37
  5. RPG36
    By andi in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 23-07-01, 17:23

Tags for this Thread

Berechtigungen

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