Code: Alles auswählen.
DATA foobar(10) TYPE c. " <- 10 chars
Code: Alles auswählen.
* FORM foobar USING VALUE(xxx) TYPE c(10). oder
* FORM foobar USING VALUE(xxx(10)) TYPE c. oder
* ...
* ENDFORM.
*
* Ich moechte 10 chars uebergeben koennen.
Code: Alles auswählen.
TYPES c10(10) TYPE c.
FORM foobar USING VALUE(xxx) TYPE c10.
* ...
ENDFORM.
Wie du schon selber beschrieben hast. Type-Definition. Aber das ist doch i.A. grad mal eine einzige Zeile am Anfang des Programms. Was ist denn daran schlecht?Anonymous hat geschrieben: Aber: Wie machst du das, wenn du nen numerischen char (Typ: n) mit 30 Zeichen übergeben willst?
Man kann sich vieles vorstellen, allerdings kommt dieser Fall in der Praxis äußerst selten vor. Zu 99% bezieht man sich bei Form-Parametern (natürlich auch DATA-Definitionen) auf DDIC-Datentypen.Anonymous hat geschrieben:Naja, stell dir mal vor, du hast mehrere solcher Forms, die jeweils andere Datentypen mit anderer Größe nutzen. So jetzt musst du für jeden doofen anders großen Datentypen ein Type-Definition anlegen, wie dumm ist denn das.
Code: Alles auswählen.
FORM tu_was USING p1 TYPE C "Zeichenkette 1 - 65535
p2 TYPE N "numer. Zeichenkette 1 - 65535
p3 TYPE CLIKE. "alle Arten von Zeichenketten, inkl. String, N, D und T
ENDFORM.
Code: Alles auswählen.
+---I,INT2,INT1
+-----------NUMERIC-----+---P
| +---F
|
| +---X
+---SIMPLE---+-----------XSEQUENCE---+---XSTRING
| |
| +---CLIKE-+-CSEQUENCE---+---STRING
ANY---+ | +---C
| |
| | +---N
| +-------------+---D
| +---T
| +---STRUC(C,N,D,T)
|
+---TABLE
Danke, ereglam. Das heisst also, dass man die Längen bei p, c, n und x garnicht angeben muss und das Form nur eine teilweise Typisierung übernimmt. Bei der Übergabe wird daher erst vollständig typisiert und die Länge automatisch mit übernommen, richtig?ereglam hat geschrieben:Hallo Gast,
es ist zwar richtig, dass man in der Typvereinbarung von Funktionen und Forms keine Längen für C und N angegeben kann, aber es gibt dafür u.a. die direkten, generischen Typangaben, die nämlich genau C und N heißen und entsprechend x-beliebig lange Zeichenketten (im Rahmen der Maximallängen) zulassen: ...