[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jan 2007
    Beiträge
    1.002
    ok, die einfachste Lösung bei numerischem Feld: machst Du bei deinem Displayfile folgenden Zusatz zum feld: EDTWRD('0bbbbbbb'),
    b = Blank.
    kf

  2. #2
    Registriert seit
    Aug 2019
    Beiträge
    53
    Vielen Dank für eure Hilfe. Es funktioniert jetzt wie es soll :-)

  3. #3
    Registriert seit
    Jan 2007
    Beiträge
    1.002
    Noch eine Lösung zum mitschreiben mit verschachtelten Bifs für Alphafelder:

    feld = %editc(%dec(%subst(feld2:1:7):7:0):'X');
    kf

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    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');
    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. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    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
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Wem letztlich die Performance egal ist...
    Wenn RPGLE das doch schon hergibt, warum dann auf SQL ausweichen;-)?
    Und wenn schon dann richtig:

    Exec SQL Set :OutputField = LPAD(Trim(:OrigField), 15, '0');
    Denn RTrim lässt ggf. vorhandene führende Leerzeichen stehen.
    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

Berechtigungen

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