-
Inhalt Variable Wert zuweisen
Hallo Miteinander,
In meiner Variablen steht z.b. der Wert
'Feld1'.
Dieser Wert stellt wiederrum einen Variablennamen dar.
Ist es in RPG möglich den Wert einer Variablen auszulesen ( in diesem Beipiel wäre das Feld1) und diesem Inhalt Feld1 was eine Variable darstellt einen Wert zuzuweisen??
das Thema wurde schon mal vor einiger Zeit hier diskutiert. Evtl hat sich seit der Zeit ja was getan...
Vielen dank im voraus..
-
Geändert hat sich zur Zeit nichts.
Namen dienen nur dem Compiler und werden in Adressen übersetzt.
Kennst du die Adresse (%ADDR() zur Compilezeit), kannst du "dynamisch" mit Inhalten arbeiten.
Ansonten ist der "Name" zur Laufzeit unbekannt.
-
Ergo. Ich habe keine möglichkeit dem Feld1 einen Wert zuzuweisen oder??
Geht das evtl über API QUSLFLD (buffer position)
Offset | Type | Field |
---|
Dec | Hex
|
---|
0 | 0 | CHAR(10) | Field name | 10 | A | CHAR(1) | Data type | 11 | B | CHAR(1) | Use | 12 | C | BINARY(4) | Output buffer position | 16 | 10 | BINARY(4) | Input buffer position |
Die Variablennamen meines Displayfiles werden erst zur Laufzeit über ein Api ermittelt.
-
wenn du im Programm an den Buffer drankommst (sprich ihn addressieren kannst, dann reichen die Positionen, du holst dir einen Pointer auf die Buffer Variable, addierst den Offset drauf et voila.
D*B
der nicht ganz versteht wozu das eigentlich gut ist und meint, dass oft über Anwednungsdesign mehr zu holen ist...
Zitat von woodstock99
Ergo. Ich habe keine möglichkeit dem Feld1 einen Wert zuzuweisen oder??
Geht das evtl über API QUSLFLD (buffer position)
Offset | Type | Field |
---|
Dec | Hex
|
---|
0 | 0 | CHAR(10) | Field name | 10 | A | CHAR(1) | Data type | 11 | B | CHAR(1) | Use | 12 | C | BINARY(4) | Output buffer position | 16 | 10 | BINARY(4) | Input buffer position |
Die Variablennamen meines Displayfiles werden erst zur Laufzeit über ein Api ermittelt.
-
@ Bender.
wir setzten unsere Displayattribute über einen Variablennamen. Diese Variablennamen holen wir uns über ein APi. Diese müssen alle erst einmal initialisiert werden x:20 weil es sonst zu Fehlern bei der Setzung der Attribute kommt.
Wie soll man das sonst anstellen?
Wir wollen halt nicht jede Variable im RPG
per Hand initialisieren ...
-
Nun ja, wenn du MI beherrschst, kannst du mittels DTAPTR (steht nur in MI zur Verfügung) eine Adresse mit Feldtyp und Ausprägung definieren und per MI-Befehl mittels CPYBLA o.ä. verarbeiten.
Ich denke aber, dass das nicht die Lösung sein kann.
Wenn du mit reinen Zeichenfeldern arbeitest kannst du ja per "%subst(MyFeld: pos: len)" variabel zugreifen.
Mit gezonten numerischen Felder klappt das auch noch, bei gepackten Felder stößt du auf ein Problem.
Binärfelder lassen sich noch per Zwischenfeld verarbeiten.
-
@ fuerchau..
?????????.
ich glaube wir reden leider aneinander vorbei.
siehe vorherige antwort..
-
solange man ein File pro Displayfile hat, würde ich das von anderer Logik befreien (=> Design) und die Dinger aus den DDS Bestimmungen generieren - und fertig ist.
@Baldur: Substring von DS (intern binary data) und Pointer ist dasselbe. Die packed und int Klamotten kriegt man auch über Zwischenfelder da rein (am besten macht man sich da ein Service Programm mit entsprechenden Konvertierungen)
D*B
Zitat von woodstock99
wir setzten unsere Displayattribute über einen Variablennamen. Diese müssen alle erst einmal initialisiert werden x:20 weil es sonst zu Fehlern bei der Setzung der Attribute kommt.
Wie soll man das sonst anstellen?
Wir wollen halt nicht jede Variable im RPG
per Hand initialisieren ...
-
wir haben halt mehrere Records,Windows usw in unserer Bildschirmmaske. Wir positionieren und z.b auch bei einer Fehlermeldung über ein Api auf das fehlerhafte Feld. Ziel dieser ganzen Aktion soll sein : Keine Bezugszahlen mehr und flexibilität z.b. ein Feld das Blau ist soll bei einem Fehler in Umkehranzeige dargestellt werden usw und das ganze ohne Bezugszahlen, denn 1347 Bezugzahlen im Programm macht das ganze nicht grad übersichtlicher .
-
Nunja, so ist das halt mit der Programmierung.
Definiere alle Variablen für die Displayattribute an den Anfang des Satzformates.
Definiere je Satzformat eine eigene Struktur (DS).
Dann kannst du per
eval %subst(MyDs: 1: Len) = *allx'20';
die Attribute zuweisen.
Du kannst auch
- ein Array anlegen: MyArr 1 dim(nn)
- die Felder in der I-Anweisung umbenennen
- mit eval MyArr = x'20' zuweisen
Aber alles das geht ja eigentlich am Thema vorbei.
Denn auch mit einem API musst du ja irgendwo die Feldnamen übergeben, da ist es doch einfacher in einer *INZSR die Felder zu initialisieren als extra Code zu schreiben der fehleranfälliger wird.
-
Das kann doch nur die jeweilige Anwendung selber entscheiden.
Ich würde dem eigenen API eben das Attributfeld auch als Parameter übergeben.
-
"Das kann doch nur die jeweilige Anwendung selber entscheiden." ???
Ich muß gestehen der Zug rollt grad bei mir ein. Soll heissen ich versteh nur Bahnhof .
Wie mit übergeben?
Das Problem ich ja das der Feldname in einer Variablen steht.
Ich muß ja an die Adresse des Feldnamens kommen und ich denke mal des dies über das Api
QUSLFLD (buffer position)
Offset | Type | Field |
---|
Dec | Hex
|
---|
0 | 0 | CHAR(10) | Field name | 10 | A | CHAR(1) | Data type | 11 | B | CHAR(1) | Use | 12 | C | BINARY(4) | Output buffer position | 16 | 10 | BINARY(4) | Input buffer position |
realisiert werden kann oder bin ich jetzt im Augenblick nur noch verwirrt..
Similar Threads
-
By mk in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 21-12-06, 08:56
-
By Xanas in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 28-08-06, 12:21
-
By cheffe1008 in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 16-05-06, 07:45
-
By steven_r in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 08-05-06, 11:01
-
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
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks