Führende Nullen in einem c-Feld

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV

Führende Nullen in einem c-Feld

Postby Matti4101 » Mon Dec 02, 2002 2:43 pm

Hallo zusammen,

ich habe ein klitzekleines Problem: Wie kann ich ein character-Feld mit Länge 15 mit führenden Nullen auffüllen. Hat jemand dafür eine smarte Lösung. Vorab Danke.
Matti4101
.
.
 
Posts: 8
Joined: Mon Dec 02, 2002 2:43 pm

Postby Alva1590 » Mon Dec 02, 2002 3:01 pm

Hi,

Du kannst das ganze über ein Feld vom typ n (numerischer character machen), der Initialwert dieses Feldes ist dann nämlich '0'.
Also bspw.

data: deinfeld(15) type c,
meinfeld(15) type n.

deinfeld = '3'.
move deinfeld to meinfeld.
move meinfeld to deinfeld.

Inhalt von deinfeld dann: '000000000000003'.
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm

Postby Alva1590 » Tue Dec 03, 2002 4:20 pm

Die sinnvollste Methode wäre, die Variable mit Bezug auf ein Datenelement zu definieren, das sich wiederum auf die passende Domäne bezieht.
Dann erledigt das System die Konvertierung der im Dynpro eingegebenen Werte ins interne Format per Conversion exit.

Frank Dittrich
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm

Postby Willy1492 » Tue Dec 03, 2002 4:44 pm

Und falls es nicht um Nutzereingaben geht (und Du die Daten aus irgendeiner anderen Quelle so bekommst und dann aufbereiten mußt), ist die direkte Verwendung des entsprechenden CONVERSION_EXIT_..._INPUT-Funktionsbausteins immer noch die sicherste Methode.
(Den Conversion Exit findest Du unter den Eigenschaften der Domäne.)

Ansonsten müßtest Du noch etliche Sicherheitsprüfungen einbauen, damit MATNR A001 nicht in einen völlig falschen Wert umgesetzt wird.

Frank
Willy1492
....
....
 
Posts: 581
Joined: Tue Dec 03, 2002 4:44 pm

Postby Matti4101 » Tue Dec 03, 2002 6:33 pm

Hallo Frank,

Conversion-Exit hört sich für mich am sichersten an, daher bin ich mal hergegangen und hab mir über die SE37 anzeigen lassen, was es denn da so alles an Conversion-Bausteinen gibt. Das ist ja nun eine ganze Menge. Welcher ist denn nun der für meine Zwecke richtige? Leider bin ich nicht so ganz fündig geworden :(
Danke.

Gruß,
Sandman
Matti4101
.
.
 
Posts: 8
Joined: Mon Dec 02, 2002 2:43 pm

Postby Willy1492 » Tue Dec 03, 2002 6:45 pm

Wenn Du keine passende Domäne findest, dann in Deinem Beispiell vermutlich CONVERSION_EXIT_ALPHA_INPUT.
(Die Anzahl der vorangestellten Nullen hängt dann von der definierten Länge der übergebenen Variablen ab.

Ansonsten ALPHA durch den in SE11 zu der Domäne angegebenen Conversion Exit ersetzen.

Frank
Willy1492
....
....
 
Posts: 581
Joined: Tue Dec 03, 2002 4:44 pm

Postby Jessy5246 » Tue Dec 03, 2002 8:20 pm

Dear Sandman:
If you want to suppress non-numeric characters, you can look at the ASSIGN command with option TYPE. You can force a field to act like a numeric, which does not require the declaration of a separate field (especially helpful, if the length can vary).

Pseudo-code:
data: REC-C15(15) type C.
f-s: [f1]. (brackets for HTML)
Instead of move x to REC-C15, you assign REC-C15 to [f1] type 'N' and move x to [f1].

Regards,
Wolfgang
Jessy5246
..
..
 
Posts: 23
Joined: Tue Dec 03, 2002 8:20 pm

Postby Matti4101 » Wed Dec 04, 2002 10:15 am

Moin zusammen,

vielen Dank an alle für die Hilfe. Ich bin überwältigt wie schnell das ging und über die Fülle der Lösungsmöglichkeiten. Thanks to everyone :D
Matti4101
.
.
 
Posts: 8
Joined: Mon Dec 02, 2002 2:43 pm


Return to ABAP® Core

Who is online

Users browsing this forum: No registered users and 0 guests

cron