-
free-format unterschiedliche Felddefinitionen
Moin, moin,
folgende Anforderung kann ich zur Zeit nur mit einem workaround (zumindest nach meiner Ansícht) lösen.
PHP-Code:
˜***************************************************************** € D BPER s 8 0 inz(20120817) D ##BP s 6 0 inz(*zeros)
Der Inhalt von BPER soll jetzt linksbündig in ##BP eingestellt werden. Wenn ich die Handbücher richtig verstanden habe, sollte eine enfache Zuweisung (eval) ausreichen.
Folgendes führt aber immer zu einem Programmabbruch:
PHP-Code:
/free
dsply bper; //##bp = %dec(%subst(%char(bper):1:6):6:0); ##bp = bper; dsply ##bp;
*inlr = *on;
/end-free
Auskommentiert habe ich meinen workaround.
Im "klassischen" RPG konnte ich so etwas mit einem "move" lösen. Gibt es im free-format eine "elegantere" Lösung?
Schon mal schönen Dank Eure Anregungen
Gruß
Andreas
-
Ein Eval führt zu einem Dezimalüberlauf was zu dem MCH-Fehler führt, da der Eval als Z-Add ausgeführt wird.
MOVE hat rechtsbündig übertragen und den Rest halt abgeschnitten. Ein Z-Add hätte den selben Fehler ausgelöst.
Du kannst das halt nur mit einer Overlay-Definition lösen:
D DS
D BPER 8 0
D ##BP 6 0 overlay(BPER:3)
Dann sparst du dir den Eval.
-
Interessehalber: was gefällt Dir an an
##bp=%Dec(%Subst(%Char(bper):1:6):6:0) nicht?
-
Wieso überhaupt so kompliziert?

lg Andreas
-
Moin, moin,
vielen Dank an Alle!
Der overlay ist mir nicht in den Sinn gekommen, aber das gefällt mir!
Am workaround gefällt mir "massive" Tiparbeit nicht -> Fehlerquelle 
Schöness WE allen.
Gruß
Andreas
-
@Andreas
Damit bekommst du nur den linken Teil, es soll aber der Rechte Teil ermittelt werden.
-
 Zitat von Fuerchau
@Andreas
Damit bekommst du nur den linken Teil, es soll aber der Rechte Teil ermittelt werden.
Ich dachte dass das die Anforderung ist?
Kann ja sein dass ich grad an legasthenie leide, aber %Subst(%Char(bper):1:6) liefert meines wissens den Linken Teil.
Außerdem
 Zitat von lucullus
Der Inhalt von BPER soll jetzt linksbündig in ##BP eingestellt werden.
-
Jepp, das habe ich ja doch überlesen .
-
... das Problem ist doch das lesen, nicht das schreiben!!!
fixed format:
move tuch hut
dsply hut
* zeigt Kaninchen vor, erst zu verstehen, wenn man die Deklaration von tuch und hut liest!!!
Overlay ds noch schlimmer!!!
eval hut = tuch;
dsply kaninchen;
jetzt ist sogar der Zusammenhang zwischen kaninchen und hut nur noch in der Deklaration (an völlig anderer Stelle) zu finden.
D*B
der schon weiß, warum für ihn RPG keine ordentliche Programmiersprache ist!
-
Ähem,
wären wir zweisprachig, könnten wir durchaus Gefallen an der selbsterklärenden Schreibweise finden. Das läse sich dann so:
BuchungsPeriodeJ4M2 = %Ziffern(%TeilAus(%Zeichenfolge(Datum8nEur):1:6):6 :0);
Similar Threads
-
By MarcG in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 20-09-11, 12:09
-
By mott in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 14-03-11, 13:09
-
By co_steffl in forum IBM i Hauptforum
Antworten: 19
Letzter Beitrag: 08-12-09, 12:14
-
By Fucasdreh in forum NEWSboard Server Job
Antworten: 0
Letzter Beitrag: 10-01-07, 13:12
-
By redsky in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 04-05-05, 12:26
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