MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 21/07/09, 12:30:23
yoabapyupi yoabapyupi is offline
Senior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 125
Custom control en dynpro

Hola compañeros,

He creado un “Custom control” en un dynpro para que el usuario pueda meter un texto largo. Lo he hecho mediante:

data: gcl_container type ref to cl_gui_custom_container.
data: gcl_editor type ref to cl_gui_textedit.

y “create_object”.

Además he dibujado un botón para visualizar el “custom control” y otro para ocultarlo y es aquí donde tengo problemas. He probado con el método “set_visible” pasándole el valor “0” y va bien para ocultarlo, pero cuando le paso “1” para volver a visualizarlo no funciona.

Otra prueba: El botón que muestra hace los “create object” y el que oculta “set visible”. Ocurre lo mismo, oculta y cuando quiero volver a verlo no funciona.

¿Sabe alguien como puedo hacerlo funcionar?

Muchas gracias.
Responder Con Cita
  #2  
Viejo 21/07/09, 16:26:30
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
Hola, wueno yo tbm he realizado eso pero no lo hice con esa clase, sino usando la interface: c_textedit_control, es muy facil de usar y manipular, te adjunto una parte del codigo, la clase local que he creado es lcl_textedit y hereda de esa clase para poder usar sus metodos, espero te pueda servir
Archivos Adjuntos
Tipo de Archivo: zip ZZ_CLASS.zip (10.4 KB, 333 visitas)
__________________
David Carballido Córdova
Responder Con Cita
  #3  
Viejo 22/07/09, 12:22:28
yoabapyupi yoabapyupi is offline
Senior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 125
Te agradezco el esfuerzo David, pero creo que el código que me has pasado no es lo que estoy buscando. Si he entendido bien, lo que haces es ocultar campos. Yo lo que quiero es ocultar el "custom control" completo.
Responder Con Cita
  #4  
Viejo 22/07/09, 14:28:27
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
Holas, ahhh no entendi bien, si quieres ocultar el Custom Control debes jugar con el LOOP AT screen, el metodo set_visible es para dejar habilitado o inhabilitado a escritura el editor, mas o menos cuando quieres modificar y visualizar un programa ABAP
__________________
David Carballido Córdova
Responder Con Cita
  #5  
Viejo 23/07/09, 06:25:31
yoabapyupi yoabapyupi is offline
Senior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 125
Ya probé el "loop at screen", poniendo breakpoint y se ven todos los campos del dynpro excepto el "custom control" con lo que no puedo hacerlo invisible.
No se ..... igual me voy olvidando de florituras y lo dejo siempre visible.
Responder Con Cita
  #6  
Viejo 23/07/09, 12:51:12
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
Para ocultar o mostrar un text edit (esto tambien seria aplicable a casi cualquier objeto) tienes que llamar al metodo set_visible

En tu codigo supongo que crearas el custom container y luego crearas tu editor de texto asociandolo al custom container, algo mas o menos asi

DATA: go_cc TYPE REF TO cl_gui_custom_container,
go_txt TYPE REF TO cl_gui_textedit.

CREATE OBJECT go_cc
EXPORTING
container_name = 'CONTAINER'.

CREATE OBJECT go_txt
EXPORTING
parent = go_cc.

para poder jugar y ocultar o mostrar el control text_edit tendrias que hacer lo siguiente

Con esto lo muestras
go_txt->set_visible( visible = go_txt->visible_true ).

Con esto lo ocultas
go_txt->set_visible( visible = go_txt->visible_false ).
Responder Con Cita
  #7  
Viejo 24/07/09, 06:31:39
yoabapyupi yoabapyupi is offline
Senior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 125
Exacto Ballan, creo el custom container y luego creo el editor de texto asociándolo al custom container como me dices.

Mi idea es presentar la dynpro con dos botones con uno de ellos visualizaría el "custom control" y con el otro lo ocultaría. Este código que me has pasado para visualizar y ocultar entiendo que debe ir en el PAI de la dynpro cada uno asociado a su botón correspondiente.

¿Donde debo poner el código para crear el custom container y el editor de texto asociado al custom container?
Responder Con Cita
  #8  
Viejo 24/07/09, 06:55:11
PabloGP PabloGP is offline
Junior Member
 
Fecha de Ingreso: sep 2008
Mensajes: 21
Buenos días,
También tuve ese mismo problema y tras mirar en varios foros llegue a la conclusion q hace un LOOP AT SCREEN y ponerle el setvisible no funciona para los Custom Controls.

Yo consegui arreglaro con esto:

data:
* Create reference to the custom container
custom_container type ref to cl_gui_custom_container,
custom_container1 type ref to cl_gui_custom_container,
* Create reference to the TextEdit control
editor type ref to cl_gui_textedit,
editor2 type ref to cl_gui_textedit.

*.- Se ponen los costum_control de la descripción y la solución en modo lectura.

call method editor2->set_readonly_mode
exporting
readonly_mode = 1.

call method editor->set_readonly_mode
exporting
readonly_mode = 1.

Con esto no lo hago invisible, pero al menos no deja intruducir datos... Pruebalo e investiga si hay algun método similar para hacerlo invisible.

Un saludo
Responder Con Cita
  #9  
Viejo 24/07/09, 13:46:04
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
El codigo donde creas el custom container y el control text edit debe ir en el PBO

tu PBO deberia quedar mas o menos asi (la definicion de las variables la pongo aqui pero deberia ir en el TOP)

DATA: go_cc TYPE REF TO cl_gui_custom_container,
go_txt TYPE REF TO cl_gui_textedit.

data: gv_visibilidad type char 1 value '1'. "Por defecto lo ponemos visible

if go_cc is initial.

CREATE OBJECT go_cc
EXPORTING
container_name = 'CONTAINER'.

endif.

if go_txt is initial.

CREATE OBJECT go_txt
EXPORTING
parent = go_cc.

endif.

go_txt->set_visible( visible = gv_visibilidad ).

Luego en el PAI deberias colocar el valor adecuado en la variable gv_visibilidad, despues de ejecutarse el PAI volveria a pasar por el PBO y ya
se mostraria o no dependiendo del boton que tocaran, el codigo del PAI seria algo mas o menos asi

case sy-ucomm.

when 'UCOMM_BOTON_MOSTRAR_TEXT_EDIT'.

gv_visibilidad = go_txt->visible_true.

when 'UCOMM_BOTON_OCULTAR_TEXT_EDIT'.

gv_visibilidad = go_txt->visible_false.

endcase.
Responder Con Cita
  #10  
Viejo 27/07/09, 07:58:48
yoabapyupi yoabapyupi is offline
Senior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 125
Si señor, ahora si que si. ¡¡¡Muchas gracias Ballan!!!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 11:07:17.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web