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 22/04/09, 16:02:47
zurfero zurfero is offline
Junior Member
 
Fecha de Ingreso: ene 2008
Mensajes: 13
ALV GRID con POP UP

Hola.
Bueno, la duda es la siguiente..., tengo un ALV, y en ese ALV tengo unas celdas que son editables..., pero quiero que la información que hay en esas celdas se cargue de forma similar a un matchcode.
Qué quiero decir con esto..., Al pinchar en el matchcode, debería aparecer una pantalla con unos datos que yo debo de cargar y que no puedo ir a consultar a una tabla, ya que es un join complejo que depende de una serie de caracteristicas del objeto...

Como plantearíais esto??...
Hay alguna forma de que aparezca un popup..., o de crear una celda con matchcode...o algo así...???

Me podeis dar alguna idea??

Gracias.
Responder Con Cita
  #2  
Viejo 23/04/09, 03:35:21
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
Hola, si creo q es lo q entendi esta algo complejo, quieres una ayuda dentro de la celda editable de tu ALV y al mismo tiempo que la ayuda muestre los campos que vas agregando en las celdas???

Si ese es el caso entonces creo q por programa no se puede hacer mucho pero si es posible, nunca lo he hecho pero se me ocurre primero activar el campo del catalogo del ALV llamado CHECKTABLE, eso esta dentro de la estructura LVC_S_FCAT (Catalogo con OO), en ese campo se debe indicar una tabla de BD el cual mostrara los valores que tienes, ahora yo deberia crear una tabla Z con un solo campo el cual sera el campo que quiero q aparezca en el matchcode, a medida que voy llenando los datos en las celdas editables voy agregando datos en la tabla Z y asi en linea iran apareciendo los datos que agregaste en tu ayuda de busqueda, eso se puede hacer con ALV OO con el evento handle_data_changed, espero te sirva la info y la idea, si entendi mal xfa explicar mejor para q asi podamos ayudart entre todos
__________________
David Carballido Córdova
Responder Con Cita
  #3  
Viejo 23/04/09, 06:34:20
zurfero zurfero is offline
Junior Member
 
Fecha de Ingreso: ene 2008
Mensajes: 13
Hola David.
Efectivamente es algo lioso..., a ver si esta vez consigo explicarme mejor.

El problema , es que esos datos que tengo que presentar para que rellenen esa celda son dinámicos..., no puedo tenerlos almacenados en una tabla , ni una vista...,como dices para asociar a dicho campo una ayuda de búsqueda...,

La idea sería poder indicar (si se puede) en el catálogo de campos que esa celda tiene matchcode (sin que tenga asociado dicho campo ayuda de busqueda)..., y poder detectar el evento al clickar ahí, para que yo pueda realizar el proceso necesario y mostrar una nueva ventana tipo pop up (Me podéis decir qué funcion puedo utilizar para hacer esto??) ..., con los datos que he cargado y que desde ahí se seleccione y se cargue en la celda.

Gracias por la ayuda.
Responder Con Cita
  #4  
Viejo 07/05/09, 21:50:39
eljota eljota is offline
Member
 
Fecha de Ingreso: dic 2008
Localización: Lima-Peru
Mensajes: 48
alv llama popup

Creo q ya entendi lo q intentas hacer y si se puede:

Primero debes capturar la accion d dar doble clic a la celda q quieres editar, para eso debes asegurarte q:

q tu layout tenga asignado un valor en el campo F2CODE.

GS_LAYOUT-F2CODE = 'MATCHCODE'.

q tu llamado a alv grid tenga como export este layout y el user_command:

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
*
*
*
IS_LAYOUT = GS_LAYOUT
TABLES
T_OUTTAB = 'tu_tabla_interna'
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.

Luego implementar tu user_command:

FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.

CHECK NOT RS_SELFIELD-TABNAME IS INITIAL.
CASE R_UCOMM.
WHEN 'MATCHCODE'.
IF RS_SELFIELD-FIELDNAME EQ 'nombre_campo_editable'.
" Aqui va la funcionalidad una vez q hiciste doble clic al campo

" Llamado al pop up tipo matchcode
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'CAMPO-TABLA-POPUP'
WINDOW_TITLE = 'TITULO POP-UP'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = 'tabla interna con valores popup'
RETURN_TAB = IT_MATCH
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.

IF SY-SUBRC EQ 0.
READ TABLE IT_MATCH INDEX 1.
tu_tabla_interna-nombre_campo_editable = IT_MATCH-FIELDVAL.
ENDIF.
" Actualizacion del campo con el valor dl pop up
MODIFY tu_tabla_interna INDEX RS_SELFIELD-TABINDEX.

rs_selfield-refresh = 'X'.
clear i_ucomm.
ENDIF.
ENDCASE.
ENDFORM.

Necesitaras declarar la tabla interna:
DATA: BEGIN OF IT_MATCH OCCURS 0,
SHLPNAME LIKE DDSHRETVAL-SHLPNAME,
FIELDNAME LIKE DDSHRETVAL-FIELDNAME,
RECORDPOS LIKE DDSHRETVAL-RECORDPOS,
FIELDVAL LIKE DDSHRETVAL-FIELDVAL,
RETFIELD LIKE DDSHRETVAL-RETFIELD,
END OF IT_MATCH.

Esto lo hice sin compilar pero he hecho programas q hacen esto, asi q si tienes alguna duda, me avisas.

salu2
__________________
Jaime Zegarra V.
________________
ABAP Developer
Responder Con Cita
  #5  
Viejo 08/05/09, 06:22:35
zurfero zurfero is offline
Junior Member
 
Fecha de Ingreso: ene 2008
Mensajes: 13
Hola eljota.

Voy a intentar lo que dices, pues aún no conseguí hacerlo.

Gracias.
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 20:48:32.


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