-
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);
-
Nun ja, wenn man den 1. Beitrag genau liest, sieht man, dass auch der Schreiber da nicht sauber arbeitet:
a) per substr(xxx:1:6) wird der linksbündige teil genommen
b) per "move" wird der rechtsbündige Teil genommen.
Ich habe mich von b) leiten lassen.
@Dieter
Das kann man in anderen Sprachen ja genauso machen in dem man nur mehrere unterschiedlich benannte Zeiger auf den selben Inhalt verwendet, was auch oft genug gemacht wird.
-
Vielleicht noch eine Anmerkung zu dem o.g. Statement:
Code:
##bp = %dec(%subst(%char(bper):1:6):6:0);
%CHAR richtet linksbündig aus und entfernt führende Nullen:
BPER = 20120810 --> ##BP = 201208
BPER = 123456 --> #BP = 123456
BPER = 123 --> Abbruch!
... habe zufällgi gerade eben einen solchen Fehler uns rausgefischt!
Besser wäre in diesem Fall:
Code:
##BP = %Int(%Subst(%EditC(BPER: 'X'): 1: 6));
Birgitta
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