[59092] in SAPr3-news
Re: In Formularfenster Zeichenformat anhand von =?iso-8859-1?Q?Symboll=E4nge?= zuweisen
daemon@ATHENA.MIT.EDU (Gerhard Fricke)
Mon Mar 19 01:43:53 2007
To: sapr3-news@mit.edu
Date: Mon, 19 Mar 2007 06:43:47 +0100
From: Gerhard Fricke <gerhard.fricke@lsw.de>
Message-ID: <1174283027.24@user.newsoffice.de>
Hallo,
ich würde an deiner Stelle folgendes machen:
Im Sapscript:
perform z_barcodelaenge in program Z_userexit_barcode
using &Barcodefeld&
changing &z_laenge&
endperform
if &z_laenge& eq 26
....
else
....
endif
In dem Userexit-Programm erfolgt dann die Längenermittlung.
Grobaufbau des Programms:
REPORT Z_USEREXIT_BARCODE.
* Aufruf des Userexit z_barcodelaenge
FORM z_barcodelaenge TABLES INPUT STRUCTURE ITCSY
OUTPUT STRUCTURE ITCSY.
* Datendefinitionen
Data: Z_BARCODE LIKE BARCODEFELD,
Z_LAENGE TYPE I.
* Übernahme des Eingangswertes, steht dann in: input-value
READ TABLE input with key 'BARCODEFELD'.
* Achtung beim "Read Table" MUSS der Übergabenahmename GROSS
* geschrieben werden!
Z_BARCODE = input-value.
* Hier jetzt die Längenermittlung durchführen.
IF Z_BARCODE+26(1)& EQ &SPACE.
Z_LAENGE = 26.
ELSE.
Z_LAENGE = 27.
endif.
* Übergabe an das Sapscript-Formular
READ TABLE OUTPUT WITH KEY 'Z_LAENGE'.
OUTPUT-VALUE = Z_LAENGE.
MODIFY OUTPUT INDEX 1.
endform.
*Ende des Userexit.
Ich denke, dass du damit eine gute Lösung "hinzaubern" kannst.
Ciao
Gerd
St. Kother schrieb am 03.16.2007:
> Hallo Bernhard,
> Bernhard schrieb:
>> /: IF &BARCODE_FELD+26(1)& EQ &SPACE&
>> ...
>> /: ENDIF
> Oh man, danke für das Zaunsfeld...
>> Aber während ich so tippe: ist bei Dir denn nicht entweder C1 (ohne
>> Prüfzeichen) oder C2 (mit Prüfzeichen gefüllt ? Dann:
>> /: IF &C1& EQ &SPACE
>> ...
>> /: ELSE (oder auch ELSEIF ...)
>> ...
>> /: ENDIF
> Nein. C1 und C2 bezog sich auf Zeichenformate. Dahinter liegen die
> entsprechenden Barcodes. Allerdings habe ich es momentan so gelöst, dass
> unser Barcode generell 27 (inl. Prüfz.) lang ist. Es brachte auch nix,
> wenn ich 26 Zeichen an C2 geschickt habe, dann gab es immer noch ein
> zusätzliches Zeichen hintendran...
> Trotzdem nochmal danke für Prüfung mittels Offset.