PDA

Ver la Versión Completa : obj text CONTAINER para DYNPRO


romario2
19/12/08, 12:02:31
Necesito un objeto de texto que guarde datos en una dynpro de Module Pool.

Tengo este código pero no acaba de funcionar:

*&---------------------------------------------------------------------*
*& Module STATUS_1000 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_1000 OUTPUT.

SET TITLEBAR 'TITLE'.
SET PF-STATUS 'STATUS_1000'.

DATA: gcl_container TYPE REF TO cl_gui_custom_container.
DATA: gcl_editor TYPE REF TO cl_gui_textedit.

* Instancio el container
CREATE OBJECT gcl_container
EXPORTING
container_name = 'TXTAREA_CABECERA'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
others = 6.

IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

* Intancio el editor de texto con el contenedor como 'parent'
CREATE OBJECT gcl_editor
EXPORTING
parent = gcl_container
wordwrap_mode = 2
wordwrap_position = 228
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
gui_type_not_supported = 5
others = 6.

IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

ENDMODULE. " STATUS_1000 OUTPUT

******************

MODULE user_command_1000 INPUT.

CASE sy-ucomm.

WHEN 'CAN' OR 'FIN' OR 'BACK' OR 'EXIT'.
CLEAR sy-ucomm.
SET SCREEN 0.
LEAVE PROGRAM.

WHEN 'SAVE'.



DATA: t_texto TYPE line OCCURS 0.
DATA: w_texto TYPE line.
DATA: v_modif TYPE i.


* Obtengo los datos introducidos en la tabla 't_texto'
CALL METHOD gcl_editor->get_text_as_r3table
IMPORTING
table = t_texto
is_modified = v_modif
EXCEPTIONS
error_dp = 1
error_cntl_call_method = 2
error_dp_create = 3
potential_data_loss = 4
others = 5.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

* En este punto deberías tener en la tabla 't_texto' lo que
* has ingresado en el text_editor. Cada entrada de la tabla
* representa una línea ingresada en el text_editor.

* Finalmente, libero los recursos del objeto editor.
CALL METHOD gcl_editor->free
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2.

IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

MUCHAS GRACIAS:)

DavidXD_XD
20/12/08, 13:23:03
Hola, tal vez este programa DEMO te pueda servir, ahi si guarda los datos dentro de la variable que quieres

DEMO_CUSTOM_CONTROL

Espero te pueda servir ... :D

romario2
22/12/08, 17:48:28
Hola,

una pregunta, DEMO_CUSTOM_CONTROL guarda los datos en una tabla interna?

Estoy debugando y no acabo de verlo.

Saludos,

DavidXD_XD
22/12/08, 19:33:16
Hola ... si los toma, se encuentran dentro de la tabla interna text_tab, y los inserta al momento de presionar el boton "Tomar texto"

romario2
23/12/08, 17:31:15
Hola,

muchas gracias por la respuesta, ya funciona el report:)

Ahora necesitaría codificar estos textos por ejemplo con unos parámetros que tengo y enviar datos de la tabla interna a una tabla z que tengo con un campo de char 255

Saludos y feliz navidad:p

romario2
24/12/08, 07:49:14
Hola,

Necesitaría codificar unos textos (de un textedit de container)
con unos parámetros que tengo y enviar datos de la tabla interna a una tabla z que tengo con un campo de char 255

Saludos y feliz navidad

DavidXD_XD
24/12/08, 12:29:19
Creo q para eso deberias crear un ID z e insertarla con la funcion SAVE_TEXT, aver si consigo info y te la paso ... :D

PD: He visto que si se puede