PDA

Ver la Versión Completa : Campo de String largo, para bastante texto.


dmgman
12/06/06, 08:26:57
Que tipo de dato utilizo para guardar un dato, cuya dimension es la propia de una narracion... o una descripcion??

Y existe en el Screen Painter algun campo de texto, q como sucedia en visual basic, visualizara mas de 1 linea.

Gracias de antemano.
Salu2

JoseGoVa
12/06/06, 09:40:32
Que tipo de dato utilizo para guardar un dato, cuya dimension es la propia de una narracion... o una descripcion??

Y existe en el Screen Painter algun campo de texto, q como sucedia en visual basic, visualizara mas de 1 linea.

Gracias de antemano.
Salu2

Para almacenar mucho texto existe el tipo de dato: STRINGVAL (String variable largo)

dmgman
12/06/06, 10:20:58
Que longitud tiene ese tipo de dato?
A que clase de objeto lo asocio ese campo en el Screen Painter?

He encontrado una funcion q me vale para esto, se llama "TERM_CONTROL_EDIT".
Pero esta funcion saca un Popup, y almacena los datos en una tabla.

Gracias

bono
12/06/06, 14:19:20
Hola,
Lo que se suele hacer es utilizar un campo de texto finito y un objeto de texto determinado. El campo finito se utilizaría en caso de que la longitud no excediera de unos pocos carácteres mientras que el objeto de texto (mostrado, por ejemplo a partir de un botón) permitiría extenderse de forma infinita.

Para crear un objeto de texto has de utilizar la tcode SE75. Tienes dos opciones:
- Aprovechar algun objeto de texto ya existente y tan sólo crear un ID nuevo.
- Crear objeto e ID nuevo para tu objeto de texto.

Revisa los módulo de funciones EDIT_TEXT, SAVE_TEXT, READ_TEXT, INIT_TEXT, CREATE_TEXT para poder mantener tu texto.

Espero te haya ayudado.

Saludos.

dmgman
12/06/06, 15:16:32
Hola gracias por tu contestacion.
Llevo poco tiempo con Abap y no conocia ni la transaccion ni la forma de proceder que me has planteado.
Si sabes de algun sitio con un manual o algo q me explique un poco, te lo agradeceria.

Salu2

Mauricio Hidalgo
13/06/06, 22:14:56
Hola puedes ocupar el custom-control del screen painter y tratarlo mediante una clase llamada data CL_GUI_TEXTEDIT:

se declara como
data otxtarea_cabecera TYPE REF TO CL_GUI_TEXTEDIT.

se instancia de la forma siguiente

CREATE OBJECT custom_area_cabecera
EXPORTING
container_name = 'TXTAREA_CABECERA'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5.


CREATE OBJECT otxtArea_Cabecera
EXPORTING parent = custom_area_cabecera.


donde TXTAREA_CABECERA es el nombre que se le dio al custom control en la dynpro.

Lo siguiente es que veas los metodos disponibles para la clase, aquí te agregó los que he ocupado.

para eliminar texto existente:
if not otxtarea_Cabecera is initial.
call method otxtArea_Cabecera->DELETE_TEXT.
endif.

para leer el contenido:
call method otxtArea_Cabecera->GET_TEXT_AS_STREAM
importing
TEXT = i_texttable
exceptions
ERROR_DP = 1
ERROR_CNTL_CALL_METHOD = 2.

CALL FUNCTION 'CONVERT_STREAM_TO_ITF_TEXT'
tables
text_stream = i_texttable
ITF_TEXT = t_txtcabecera.

para pasarle al control el contenido de una tabla interna:

call method otxtArea_cabecera->SET_TEXT_AS_STREAM
exporting
TEXT = i_texttable
exceptions
ERROR_DP = 1.



donde i_texttable

TYPES:
BEGIN OF t_texttable,
line(120) type c,
END OF t_texttable.

DATA i_texttable TYPE TABLE OF t_texttable.
data: t_txtcabecera like tline occurs 0 with header line.

esta otra función es la inversa de *stream_to_itf*

call function 'CONVERT_ITF_TO_STREAM_TEXT'
tables
ITF_TEXT = t_line
TEXT_STREAM = i_texttable.


espero haberte dado luces.

te adjunto como se ve el text edit.

Saludos

dmgman
13/06/06, 22:42:22
Lo probare y luego te cuento en este post, gracias.

hanzzou
22/03/10, 15:52:11
porfa... decime que metodos usastes para que el container te quede como la imagen...

probe varios y siempre me muestra la barra en la parte superior y una status bar en la parte inferior

gracias

hanzzou
22/03/10, 16:15:39
ya esta estaba errando el valor

otxtArea_Cabecera->SET_TOOLBAR_MODE ( 0 )

otxtArea_Cabecera->SET_STATUSBAR_MODE ( 0 )

Sil12
25/06/10, 19:04:57
Hola!

Espero puedan ayudarme. Estoy usando este mismo control con todos los metodos que mencionaste pero mi problema es que si yo muestro un registro con datos, cuando quiero mostrar los siguientes no me actualiza el texto, es como si se quedara pegado. Ya lo he limpiado con el metodo DELETE_TEXT y he cargado el nuevo texto que quiero q se muestre con el set_text_as_r3table, pero ya no muestra el segundo texto, aparece vacio!!!.

Otra cosa es que en algunos registros quiero que aparezca como read_only y en otros no... pero se qda con el estado del primer registro que visualice. No puedo cambiarle este atributo después, no me hace caso. Por favor ayudenme!!!!