-
führende Nullen
Hallo,
Ich habe gerade folgendes Problem. In meinem Programm würde ich gerne dem Feld im Display File führende Nullen zuweisen. Dies habe ich wie folgt probiert:
HTML-Code:
feld = %SUBST(%editc(feld2: 'X') :1 :7)
Leider bekomme ich folgende Fehlermeldung beim umwandeln angezeigt.
HTML-Code:
Aufbereitung für nichtnumerisches Feld ungültig; für
Aufbereitungsschlüssel oder Schablone werden standardmäßig Leerz. angenommen.
-
Zitat von pabloesco
Hallo,
Ich habe gerade folgendes Problem. In meinem Programm würde ich gerne dem Feld im Display File führende Nullen zuweisen. Dies habe ich wie folgt probiert:
HTML-Code:
feld = %SUBST(%editc(feld2: 'X') :1 :7)
Leider bekomme ich folgende Fehlermeldung beim umwandeln angezeigt.
HTML-Code:
Aufbereitung für nichtnumerisches Feld ungültig; für
Aufbereitungsschlüssel oder Schablone werden standardmäßig Leerz. angenommen.
Dann solltest Du mal die Felddefinitionen posten.
GG
-
Du weisst schon, dass Du nur ein Dezimalfeld mit einem Editcode versehen kannst ...
Anmerkung:
Wenn Du das so haben willst, musst Du das numerische Feld als Alpha-Feld ausgeben. Das Handling überlasse ich Dir.
kf
-
Ja. Das hab ich mittlerweile auch bemerkt. Gibt es etwas ähnliches für ein alphanumerisches Feld?
-
Du kannst auf ein numerisches Feld keinen %subst machen. Dafür musst Du es erst in ein Alphafeld umwandeln. Ist es nur ein Ausgabefeld, kannst Du Alpha ausgeben, bei einem Inputfeld handelst Du dir, bzw. dem Benutzer nur Probleme ein.
kf
-
Trick 17: EvalR Feld = '0000000000' + Feld2
-
Ich habe es mittlerweile so probiert aber ich bekomme trotzdem die selbe Fehlermeldung.
Beide Felder sind als Alphafelder definiert.
feld = %subst(feld2 :1 :7)
feld = %int(%editc(feld: ''))
-
ok, die einfachste Lösung bei numerischem Feld: machst Du bei deinem Displayfile folgenden Zusatz zum feld: EDTWRD('0bbbbbbb'),
b = Blank.
kf
-
Vielen Dank für eure Hilfe. Es funktioniert jetzt wie es soll :-)
-
Noch eine Lösung zum mitschreiben mit verschachtelten Bifs für Alphafelder:
feld = %editc(%dec(%subst(feld2:1:7):7:0):'X');
kf
-
Dieser Hinweis hätte doch bereits reichen müssen;-):
"Du weisst schon, dass Du nur ein Dezimalfeld mit einem Editcode versehen kannst ..."
Was die Umwandlung angeht so muss diese u.U. noch erweitert werden, da Leerzeichen nicht erlaubt sind:
feld = %editc(%dec(%trim( %subst(feld2:1:7)):7:0):'X');
Was allerdings bei einem leeren Feld auch auf die Nase fällt, also geht auch:
feld = %editc(%dec(%trim( %subst('0' + feld2:1:7)):7:0):'X');
Wenn Feld2 sowieso kurz genug ist, reicht auch ein:
feld = %editc(%dec(%trim( '0' + feld2):7:0):'X');
-
Und wer das Ganze gerne mit SQL machen würde ...
Das folgende Beispiel richtet den Inhalt der OrigFields rechtsbündig aus und füllt bis zur Länge von 15 Zeichen linksbündig mit Nullen auf. Funktioniert im übrigen sowohl für numerische als auch alphanumerische Werte. Bei alphanumerischen Werten sollten folgende Blanks entfernt werden.
Code:
Exec SQL Set :OutputField = LPAD(RTrim(:OrigField), 15, '0');
Birgitta
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