objeto de texto para DYNPRO O ALV
Hola,
necesitaría saber como usar el custom control para que usuario pueda escribir un texto largo en él. Un objeto para editar y grabar información. Se que se puede hacer también con TEXT EDIT . Otra posibilidad es hacerlo por ALV. Alguien me puede hechar una mano? Saludos |
Acá tienes un ejemplo
1 Adjunto(s)
Si lo que buscas es ingresar textos largos, lo más recomendable es que que utilices la clase CL_GUI_TEXTEDIT y lo deposites en un custom control en la dynpro....
Te envío un ejemplo que espero te sirva... NOTA: Ten en cuenta que el nombre de los comandos que estoy tomando en cuenta corresponden a mi barra de status personal.... Tú deberías crear la tuya propia y asignarle los comandos que gustes.... Saludos... |
Hola, puedes ver el ejemplo DEMO de sap RSDEMO_DRAG_DROP_EDIT_TREE, esta se encuentra en la transaccion DWDM, aunq el ejemplo de Garces es tbm claro y preciso .... nos cuentas como te fue
|
gracias
Muchas gracias Garcés,
de momento parece que tiene buena pinta tu código. Una pregunta, esta variable v_modif : cómo la defines? Gracias por vuestra atención:) |
Uy! me olvidé de ponerlo en el código... jejeje v_modif es un entero (Type I) con valor cero.... Sorry y saludos..... |
guardar texto en container de dynpro
Hola,
el código que me proporcionaste va muy bien, ahora quiero incorporarle una función, quiero que el mensaje de texto se pueda guardar en SAP. Partimos de un container de Dynpro Saludos, |
Tendrás que utilizar el módulo de función SAVE_TEXT y el COMMIT_TEXT.
|
Fíjate que en el código que te proporcioné hay un form que se llama 'imprimir_texto' el cual estoy llamando en el PAI con el 'MODULE user_command_100'. En este form tienes unallamada al método 'gcl_editor->get_text_as_r3table', cuyos parámetros puedes ver también en el código.... Si ya tienes el texto en una tabla interna, lo único que tienes que hacer es volcarla a la BD con sentencias INSERT o UPDATE según sea el caso en la tabla correspondiente (que me imagino que sería una 'Z')... Espero haberte ayudado Saludos |
no pasa datos a tabla
Hola,
debugando veo que no se rellena ninguna tabla o variable del código que me has proporcionado. Una pregunta, por donde relaciono el container del texto con tu código? Saludos y gracias :o |
Ésta sería la manera
Primero instancias el container en un módulo PBO de la dynpro, pasándole como parámetro 'container_name' el nombre que le pusiste a tu custom_control en la misma dynpro. Luego, el objeto container se pasa como parámetro 'parent' al editor de texto en su constructor al instanciarlo... Luego en un módulo PAI deberás llamar al método que te indiqué en el post anterior. Espero haber podido ser de utilidad... Saludos... |
sigue sin cargar datos
Hola Miguel Ángel,
te agradezco de antemano tu valiosa ayuda. De tu última nota extraigo CALL METHOD gcl_editor->free EXCEPTIONS cntl_error = 1 cntl_system_error = 2. Éste método no lo tenía. El 1er código lo puse en PBO y el 2o en el PAI tal como dices. El del PAI lo puse en el caso de salvar o guardar. WHEN 'SAVE'. SIGUE SIN CARGAR DATOS, quizás sea porque tengo q creo el container de nuevo otra vez y hacerlo en primer paso, no lo sé. Saludos y muchas gracias:o |
Puedes postear tu código para revisarlo y verificar en dónde está tu error???
|
código
*&---------------------------------------------------------------------*
*& 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. |
Husos Horarios son GMT. La hora en este momento es 20:09:07. |
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web