[NEWSboard IBMi Forum]
Seite 5 von 5 Erste ... 4 5
  1. #49
    Registriert seit
    Nov 2007
    Beiträge
    371
    ja aber das geht eben nicht ohne zu inzen siehe vorherige antwort. ich war gard nen tick schneller wie du . das ist ja genau das problem. ich werd mir jetzt auch einen programmgenerator basteln der das dspf durchliest und autmoatisch die copystrecke generiert.
    das alles brächte ich halt nicht machen wenn ich an die wenigstens an die recorddresse kommen würde den die offset adressen der felder bekomm ich ja. also startadresse + offset und dann würd es passen oder??.

    das problem bei copystrecken ist ja das wenn ich hier mal einen fehler mache und ich komme erst später drauf muß ich alle programme wandeln falls ich die copystrecke ändere. das muß ich halt beim serviceprogramm nicht....

  2. #50
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Nunja, an die Recordadresse zu kommen löst nicht dein Problem, da ja der Aufbau je nach Format eben unterschiedlich ist und zur Laufzeit aufgebaut wird.
    Eine Initialisierung des Recordpuffers würde beim nächsten WRITE automatisch zerstört und bringt eben überhaupt nichts.

    Ich würde mir auch wirklich nichts für INZ überlegen, da dies nun mal Sache des Programmes ist.

    Es gibt auch noch ein weiteres Problem in diesem Zusammenhang.

    Es soll Programme geben, die DSPF's gemeinsam nutzen, das Programm A den einen Teil der Formate und das Programm B einen anderen Teil.

    In RPG musst ich in den F-Bestimmungen das Format auf IGNORE setzen, damit der Compiler keinen Fehler macht.
    In ILERPG ist das nun egal, wenn mal ein Format nicht verwendet wird.
    Kann ja auch sein, dass mal ein Format nicht mehr benötigt wird, aber aus historischen Gründen (oder Faulheit) noch definiert bleibt.

    Allerdings sind die Variablen des nicht verwendeten Formates auch nicht im Speicher definiert, quasi also nicht vorhanden !

    Das kann dein Unterprogramm aber nicht merken und überschreibt damit ggf. falsche Speicheradressen.

    Da ist eine (ggf. falsch) generierte Copystrecke absolut unkritisch.
    - entweder merkts der Compiler
    - oder es spielt keine Rolle
    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. #51
    Registriert seit
    Nov 2007
    Beiträge
    371
    ja aber wenn ich doch die recordaddresse hätte kann ich doch den offset der felder den ich über das api bekomm einfach draufzählen und dann nur einmal inzen.

    folgender lösungsvorschlag.

    xxxx likerec format


    zeiger auf xxxx

    inz (xxxx + offset)


    ich bekomm doch dadurch die speicher adresse der felder oder versteh ich da was falsch??
    wenn das funtioniert wär ich auch kompiler unabhängig...

    danach sollen die felder ja sowieso vorbelegt werden..



    falls das nicht funktioniert is schicht im schacht

  4. #52
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Mittels likerec legst du eine DS an.
    Hier ist jedoch das Problem, dass eine Variable nur in einer DS vorkommen darf !
    Ausnahme: quailified.

    Qualified-Strukturen müssen allerdings in den F-Bestimmungen mit Prefix angegeben werden, da sonst die automatische Zuordnung F-Feld zu DS-Feld nicht vorgenommen wird.
    M.a.W:
    Alle Felder, die über F-Bestimmungen automatisch deklariert werden, sind Single-Felder (S statt DS).
    Definierst du eine DS mittels Likerec, übernimmt der Compiler diese Definition und unterläßt die Deklaration der S-Felder.

    Ein Ein-/Ausgabebefehl verwendet die Felder, die durch F-Bestimmungen deklariert werden:
    a) Single-Felder
    b) DS-Felder ohne Qualified
    c) Prefix-Felder für DS mit Qualified

    Qualified hat halt den Nachteil, dass jedes Feld nur mittels "DsName.FeldName" angesprochen werden kann, was den Tippaufwand nicht unbeträchtlich erhöht und Erstfehler erzeugt.

    Desweiteren musst du für deinen Init-Call den Aufruf dann je Satzformat (DS) machen !

    Ob das die Programmierung nun erleichtert, wage ich zu bezweifeln.

    PS:
    Wenn du zusätzlich zu einer DSPF noch Namensgleichheit zu DISK und PRINTER innerhalb eines Programmes hast, verschärft sich das Ganze noch weiter.
    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

  5. #53
    Registriert seit
    Nov 2007
    Beiträge
    371
    erst einmal danke dafür das du dich mit mir solange abgekämpft hast.
    das mit den qualified usw ist mir bekannt. aber trotzdem danke dafür.

    jetzt ist erst mal wochenende. evtl fällt mir ja noch was ein das ich ausprobieren kann ......

  6. #54
    Registriert seit
    Jan 2008
    Beiträge
    122

    Smile

    bin zufällig auf dein problem gestossen: für felxible attributsetzung und/oder feldverarbeitung sind intern beschriebene Bildschirmdateien besser geeignet.
    Unterscheide grundsätzlich ob die Attributsetzung für ein oder nur ausgabefelder wirksam sein soll. bei reinen ausgabefeldern kein problem, davor oder anstelle eines blanks den entsprechenden hexwert (z.B. X'20' grün, X'21' weiss, X'13zzss' Cursor). komplett ungebunden ist man mit dem freien 5250-datenstrom, während der ausführung können ohne kompilation sogar neue felder eingefügt oder die attribute wie feldlänge/feldposition verändert werden. E30 arbeitet nach diesem prinzip. Es wäre aber zu komplex über dieses forum diese techniken ausführlich abzuhandeln.

Similar Threads

  1. Wert aus CSV Datei
    By mk in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 21-12-06, 08:56
  2. Variable Zahlenkonvertieren
    By Xanas in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 28-08-06, 12:21
  3. String mit HexInhalt muss als Hex-Wert in Variable
    By cheffe1008 in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 16-05-06, 07:45
  4. Variable zuweisung
    By steven_r in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 08-05-06, 11:01
  5. Können CLLE Module selbst einen Wert halten bzw. zurückgeben?
    By JonnyRico in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 25-04-06, 10:16

Berechtigungen

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