[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Dec 2004
    Beiträge
    34

    Thumbs up Displayfile Pointerübergabe

    Hallo allesamt.

    Ich habe mal wieder ein programmierproblem für ausgewachsene programmierer
    hoffe jemand kann helfen.

    Problem:
    Ich habe ein Displayfile mit 4 Feldern.
    alle felder sind mit returncursor deklariert,
    damit ich bei F4 den feldnamen bekomme
    und mit diesem dann ein externes programm aufrufen kann, dieses programm liefert mit im übergabefeld den wert für
    dieses feld. wie zun geier bekomme ich nun den inhalt in das displayfile.


    Beispiel

    Feldname: feld1 (F4)

    call PGM
    parm feld1 (name des feldes bei call)

    rückgabe im feld1 parameter = "hugo"
    nun möchte ich diesen wert "hugo"
    inf feld1 anzeigen und übernehmen.

    feld1 kann auch feld2 feld2 usw sein(name des Displayfile Feldes)
    und jedsmal einen anderen wert haben.

    um das ganze nich mit select zu machen, dachte ich an Pointer. liege ich falsch?
    für ein kurzes beispiel währe ich dankbar
    Gruss an alle

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Da Feldnamen zur Compilezeit in Adressen übersetzt werden, können Namen zur Laufzeit nicht dynamisch ermittelt werden.
    Du kannst aber z.B. eine Tabelle mit Namen und Adressen initialisieren und diese Adressen dann per Value an das Programm übergeben, so dass diese die Adresse wieder als normale Referenz übernehmen.
    Gegen die berühmten Pufferüberschreibungen musst du allerdings selber arbeiten:

    d myflds ds
    d fldname1 10 inz('NAME1')
    d fldadr1 * inz(%addr(NAME1)

    usw. usw.
    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

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    @Baldur: im Falle von exportierten Feldern kann man den Exportnamen auch zur Laufzeit von einem API gegen den Pointer tauschen lassen. Das ist dieselbe Mimik, die ich in PROCP4NAME verwende (steht als Freeware auf meiner OpenSource Seite).

    mfg

    Dieter Bender

    Zitat Zitat von Fuerchau
    Da Feldnamen zur Compilezeit in Adressen übersetzt werden, können Namen zur Laufzeit nicht dynamisch ermittelt werden.
    Du kannst aber z.B. eine Tabelle mit Namen und Adressen initialisieren und diese Adressen dann per Value an das Programm übergeben, so dass diese die Adresse wieder als normale Referenz übernehmen.
    Gegen die berühmten Pufferüberschreibungen musst du allerdings selber arbeiten:

    d myflds ds
    d fldname1 10 inz('NAME1')
    d fldadr1 * inz(%addr(NAME1)

    usw. usw.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Dazu müsste ich allerdings aus dem Programm ein Modul machen, die Displayfelder exportieren.
    Ich denke, dieser Aufwand lohnt nicht im Verhältnis zur gewünschten Funktion.
    Ich würde in diesem Fall tatsächlich ein bisschen Definitionsarbeit machen und dann die Adressen per %lookup ermitteln und übergeben.
    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

Similar Threads

  1. Anzahl Felder in Displayfile
    By steven_r in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 07-11-06, 11:01
  2. Displayfile Pointer
    By THH in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 19-12-05, 10:32

Berechtigungen

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