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 03/03/08, 11:58:19
tate tate is offline
Senior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 106
Refrescar ALV

Buenas, tengo un programa saca una alv, y al pinchar en el documento de compra, me va a la transaccion ME23N y modifico lo que sea.
El caso esque le doy al boton refrescar y no me hace nada de nada, y ya no se como hacerlo.
He probado a poner: rs_selfield-refresh = 'X'.
lo e puesto en mil sitios para probar y nada de nada, no me refresca , aber si alguien me echa una mano.
Dejo el perfom q uso:

*---------------------------------------------------------------------*
* FORM user_command *
*---------------------------------------------------------------------*
FORM callback_ucomm USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
DATA answer.
CONSTANTS ansy VALUE 'J'.
DATA noborra.

DATA: usuario TYPE r_usuario.
DATA: usuario_altern TYPE r_usuario.

CASE r_ucomm.
WHEN '&REF'.
rs_selfield-refresh = 'X'.
w_res-refresh = 'X'.
WHEN '&IC1'.
* Mostramos el pedido o el listado secundario
SELECT SINGLE * FROM ekko WHERE ebeln = rs_selfield-value.
IF sy-subrc = 0.
rs_selfield-refresh = 'X'.
SET PARAMETER ID 'BES' FIELD rs_selfield-value.
= 'X'.
CALL TRANSACTION 'ME23N'.
ELSE.
READ TABLE i_data INDEX rs_selfield-tabindex.
PERFORM pantalla_historial.
ENDIF.
*- Ini Ins SIS5F 13/10/05
WHEN '&DEL'.
LOOP AT i_data WHERE mark = 'X'.
PERFORM borrado_pos USING i_data
noborra.
* La desmarco en el ALV
IF noborra = 'X'.
i_data-mark = ' '.
CLEAR noborra.
MODIFY i_data.
ELSE.
ENDIF.
ENDLOOP.
PERFORM mostrar_posibles_mod.
IF NOT tab_borrado IS INITIAL.
CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
EXPORTING
defaultoption = 'N'
diagnosetext1 = text-006
diagnosetext2 = text-007
diagnosetext3 = text-008
textline1 = text-010
titel = text-009
IMPORTING
answer = answer.

CASE answer.
WHEN ansy.
PERFORM ejecutar_borrado.
MOVE 'X' TO rs_selfield-refresh.
WHEN OTHERS.
*** Cancelada por usuario
MESSAGE s000(zmm) WITH text-014.
ENDCASE.
ENDIF.

********Tratamiento Usuario Alternativo.*************
WHEN '&USU'.
CLEAR: i_data_altern,
usuario,
usuario_altern.
REFRESH i_data_altern[].
LOOP AT i_data WHERE mark = 'X'.
MOVE-CORRESPONDING i_data TO i_data_altern.
APPEND i_data_altern.
ENDLOOP.
IF sy-subrc <> 0.
MESSAGE e000(zmm) WITH 'Seleccione al menos un registro'.
ENDIF.
PERFORM usuario_alternativo USING usuario
usuario_altern.
*6º Vuelvo. al alv (1º refrescar)
MOVE 'X' TO rs_selfield-refresh.
*- FIn Ins SIS5F 5/02/06
WHEN OTHERS.
ENDCASE.
ENDFORM.
Responder Con Cita
  #2  
Viejo 03/03/08, 13:24:15
Avatar de robert_milan
robert_milan robert_milan is offline
Senior Member
 
Fecha de Ingreso: jun 2006
Localización: Mexico, DF
Mensajes: 315
Que cosas cambias?'

O a que te refieres de que no cambia los datos?'


Si pones un ejemplo estaria mejor
__________________
Un Huevon No Inútil


Solo di lo que piensas, a la mejor tienes la mejor respuesta....

Si alguien ya lo hizo, copialo y cambiale las variables total es un codigo nuevo.....

Si SAP lo hace se puede hacer, no me pidas hacer algo que SAP no ha hecho.....

Consultor FI jr/ABAP Sr.

Úlima edición por robert_milan fecha: 03/03/08 a las 13:28:47.
Responder Con Cita
  #3  
Viejo 03/03/08, 13:36:58
vickxo vickxo is offline
Senior Member
 
Fecha de Ingreso: nov 2006
Localización: Madrid, España
Mensajes: 118
Que tipo de cambio quieres?

Por lo que he entendido, lo que quieres es ver reflejados los cambios en el ALV que has hecho por la transaccion, si es asi, el problema que veo a primera vista es que en ningun momento le dices a la transaccion que devuleva los datos, cosa que veo dificil o al menos yo no tengo idea de como hacerlo si no es a traves de una consulta a tablas. De cualquier manera si aclaras un poco mas el problema para mas o menos entenderte mejor, saludos...
__________________
el tema esta en hacer la pregunta correcta...
Responder Con Cita
  #4  
Viejo 03/03/08, 13:38:56
abapconsultoria abapconsultoria is offline
Senior Member
 
Fecha de Ingreso: ene 2008
Mensajes: 101
Talking

Buenas que tal. No te esta refrescando el ALV porque la tabla interna no es alterada cuando ejecutas la trx ME23N. Se me ocurren una par de cosas que te lo actualizarian pero no son buenas practicas. Hasta me da verguenza escribirlas

Saludos.

PD: Field symbol a la tabla del programa y modificarla desde ahi . Con un refresh deberia funcionar.
__________________




Lo importante no es saber sino saber quien es el que sabe
Responder Con Cita
  #5  
Viejo 03/03/08, 14:19:08
tate tate is offline
Senior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 106
Bien, lo que digo, esque llamo a la transaccion me23n, y cambio el importe por ejemplo, entonces al grabar, me vuelve a la alv, pero, en la columna importe, sigue siendo la misma, no me a cambiado el importe, y yo kiero eso, o que cuando regrese de la transacion, cambial el contedo de la fila que e cambiado o que le de al boton refrescar y me lo cambie.

Como uso Field symbol , y el refres?? por probarlo..........
Responder Con Cita
  #6  
Viejo 03/03/08, 14:21:31
Avatar de robert_milan
robert_milan robert_milan is offline
Senior Member
 
Fecha de Ingreso: jun 2006
Localización: Mexico, DF
Mensajes: 315
Lo que he visto es que no vuelves a llamar a los datos guardados en la transaccion ME23N, por lo que veo es que te falta primero volver a consultar los datos de las tablas.
__________________
Un Huevon No Inútil


Solo di lo que piensas, a la mejor tienes la mejor respuesta....

Si alguien ya lo hizo, copialo y cambiale las variables total es un codigo nuevo.....

Si SAP lo hace se puede hacer, no me pidas hacer algo que SAP no ha hecho.....

Consultor FI jr/ABAP Sr.
Responder Con Cita
  #7  
Viejo 03/03/08, 14:22:20
tate tate is offline
Senior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 106
Bueno el ejemplo, seria q pincho en el doc. de compra, me va a la me23n, cambio el importe, le doy a grabar, me volveria a la alv, y una de dos, o bien le doy a un boton y q me la actualize, pero e probado con :
CASE r_ucomm.
WHEN '&REFRESH'.
rs_selfield-refresh = 'X'.
pero no refresca ni nada, o sino, que al grabar, cambiara los datos de la alv
Responder Con Cita
  #8  
Viejo 03/03/08, 14:37:40
LouieBoy LouieBoy is offline
Member
 
Fecha de Ingreso: ago 2006
Mensajes: 86
Buenas, hmmm, si no he entendido mal, lo que deberias hacer es refrescar la tabla interna, osease volver a seleccionar todos los datos ya que tienes una incoherencia, actualizas el diccionario mediante la transaccion y pretendes actualizar el alv con los datos que hay en la tabla interna.

Create un perform de seleccion, lo llamas en el start of selecction, muestras el alv, controlas de alguna manera si los datos cambian, por ejemplo cuando haces el call transaction, marcas un flag, si el flag esta marcado refresh de la tabla interna, llamas el perform de seleccion de datos y luego refresh del alv.
Yo haria esto, antes de liarme con field symbols

Saludos,

LouieBoy
Responder Con Cita
  #9  
Viejo 03/03/08, 15:05:37
tate tate is offline
Senior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 106
Bueno os adjunto el programa por si alguien me le puede echar un vistazo y decirme.
Archivos Adjuntos
Tipo de Archivo: zip programa.zip (15.7 KB, 12 visitas)
Responder Con Cita
  #10  
Viejo 03/03/08, 15:13:47
LouieBoy LouieBoy is offline
Member
 
Fecha de Ingreso: ago 2006
Mensajes: 86
Buenas, ¿te has leido mi post? Si es asi, explicame que parte no entiendes y tel a vuelvo a explicar.

Saludos,

LouieBoy
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 05:36:48.


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