Ver Mensaje Individual
  #2  
Viejo 27/06/13, 15:38:44
Mauricio Hidalgo Mauricio Hidalgo is offline
Senior Member
 
Fecha de Ingreso: may 2006
Localización: Santiago, Chile
Mensajes: 481
Tomado desde la ayuda en línea para CREATE DATA.

PARAMETERS: type(10) TYPE c,
length TYPE i,
decimals TYPE i.

DATA dref TYPE REF TO data.

FIELD-SYMBOLS <fs> TYPE ANY.

START-OF-SELECTION.
TRY.
PERFORM create_data USING type
length
decimals
CHANGING dref.
ASSIGN dref->* TO <fs>.
DESCRIBE FIELD <fs> TYPE type
LENGTH length IN BYTE MODE
DECIMALS decimals.
WRITE: type, length, decimals.
CATCH cx_sy_create_data_error.
WRITE: 'Error creating', type, length, decimals.
ENDTRY.

FORM create_data USING value(typ) TYPE c
value(len) TYPE i
value(dec) TYPE i
CHANGING dref TYPE REF TO data
RAISING cx_sy_create_data_error.
TRANSLATE typ TO LOWER CASE.
CASE typ.
WHEN 'd' OR 'f' OR 'i' OR 'string' OR 't' OR 'xstring'.
CREATE DATA dref TYPE (typ).
WHEN 'c' OR 'n' OR 'x'.
CREATE DATA dref TYPE (typ) LENGTH len.
WHEN 'p'.
CREATE DATA dref TYPE p LENGTH len DECIMALS dec.
WHEN OTHERS.
RAISE EXCEPTION TYPE cx_sy_create_data_error.
ENDCASE.
ENDFORM.
Responder Con Cita