MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Duda Sencilla en Reporte ALV. (foro/showthread.php?t=61879)

Eduesqueda 18/03/12 18:13:25

Duda Sencilla en Reporte ALV.
 
Hola a todos, espero y alguien me pueda ayudar...

Ejemplo cortito de mi ALV (obvio son más campos)...

LIFNR BELNR GHAHR ENVIO (CHECKBOX)
100000 51902345 2011 X
200000 17023451 2012
280000 12345689 2011 X

En la barra de botones se tiene un boton que dice "Generar Archivo", es decir todo lo seleccionado (con X) se manda a un archivo TXT. (Esto ya lo hace mi programa).

Ahora como le hago para validar que en todo lo SELECCIONADO: si BELNR no tiene Referencia (XBLNR) ... como le hago ... para marcar esos renglones.

El usuario verá estos renglones marcados con su mensaje de error diciendo que no tienen referencia. El usuario puede corregir los documentos poniendo la referencia y ya mi programa no le marcaría el error ó el usuario podría deseleccionar estos renglones que no tienen referencia y generar el archivo TXT sin estos renglones y ya cuando los corrija ya los podría generar con mi programa al archivo TXT.

Mi programa ya selecciona y deselecciona reglones ALV, también sé como mandar un mensaje de error general en el ALV...pero no sé como decirle al usuario en que renglones del ALV tienen errores. Se puden marcar con colores o algo?

Como podría hacer esto? Gracias si alguien me puede ayudar....gracias.
Estaré pendiente...

vamp_01 18/03/12 22:09:19

trx se80
programa bcalv_edit_03

En este programa validan el cambio de un campo, y te informan que campo esta con el cambio.
fija te en el evento RECIVER....ahi esta la logica, pq el alv no envia un dato en especial envia la linea que estas cambiando, dentro del alv, tiene un indicador de posicion, ese es el que sal envia y por el cual tu puedes hacer las validaciones del valor de los campos.

Suerte. ;)

Eduesqueda 19/03/12 01:39:05




Si te entiendo y gracias pero no se va a modificar ningun campo del ALV solo preguntaba que como puedo marcar el renglón donde ALV-BELNR no exista referencia en BKPF-XBLNR. Esta referencia también la traigo en el ALV. Es decir cuando esta referencia sea blancos como puedo marcar esos renglones....gracias y saludos

vamp_01 19/03/12 14:55:42

SI QUERES MARCARLOS ANTES QUE LA TABLA DE SALIDA SALGA AL USUARIO

LOOP [TABLA_ALV] WHERE BELNR EQ '' .
[TABLA_ALV]-CHECKBOX = 'X'.

MODIFY [TABLA_ALV] INDEX SY-TABIX.

ENDLOOP.

si los quieres que el usuario los marque, debes recibir el evento y marcarlo en la tabla del ALV.

Eduesqueda 19/03/12 20:37:40



BUENO YA UTILIZO EL CHECKBOX PARA SELECCIONAR LOS RENGLONES A ENVIAR AL ARCHIVO TXT....PERO DE ESTOS QUE ESTAN CON X O SELECCIONADOS NECESITO HACER LA VALIDACION Y DECIR: POR EJEMPLO DE 5 RENGLONES QUE SE MARCAN PARA ENVIO, DECIR QUE UNO POR EJEMPLO NO ES VALIDO PORQUE NO TIENE REFERENCIA (XBLNR)...SI FUERA EL QUINTO REGISTRO EN ALV A ENVIAR (MARCADO YA CON X) COMO LO ILUMINO-MARCO POR EL ERROR. ENTONCES YA EL USUARIO LO DESELECCIONA Y SOLO ENVIA LOS OTROS CUATRO.

NO SE PUEDE MARCAR CON COLORES EL RENGLON QUINTO DEL ALV CON ERROR? O TENDRÍA QUE UTILIZAR OTRO CHECKBOX COMO TU DICES Y ANTES DE MOSTRAR EL ALV SALGA ESTE 2DO CHECKBOX CON VALOR?

Melandry 20/03/12 10:39:19

Hola.
En ALV con funciones REUSE_ALV puedes colorear celdas de tu ALV.
En primer lugar en la declaración de tu tabla resultado para los datos de tu ALV tienes que declarar un campo de siguiente tipo(y creo que tiene que ser siempre el último de tu tabla):

En este caso yo lo he llamado "COLOR" puedes poner el nombre que quieras.

Despues en el BUILD_LAYOUT tienes que indicarle cual es tu campo para los colores dentro de tu tabla:

Luego por cada fila de tu tabla cofiguras el color de tu estructura LVC_T_SCOL, indicándole el nombre del campo a colorear y configurando el color, intensificado, etc.
Salu2.

PD: Por cierto, yo recurriría al típico campo con semaforito para mostrale la fila incorrecta.

DCErick 20/03/12 13:32:13

Ojo que de estos temas (color celda y campo tipo icono) hay bastantes post en el foro (o por lo menos unos 3 threads)....

Eduesqueda 20/03/12 17:12:30



Disculpa como esta lo del semaforito, me podrías pasar el código o explicar como?

Melandry 22/03/12 12:15:24

Hola, pues siguiendo el ejemplo q te decía antes, tienes que añadir un campo a tu tabla resultado tipo C de long 1.
Y al igual que antes en el BUILD_LAYOUT decirle que campo vas a usar de semáforo:

WA_LAYOUT-LIGHTS_FIELDNAME = 'nomb. del campo de tu tabla'.

Luego a cada fila de tu tabla resultado, despues del chequeo que haces le asignas valores 1, 2, 3 cada uno corresponde a un valor del semáforo.
Un saludo.

Eduesqueda 23/03/12 22:09:17

Muchas Gracias
 
A Todos...ya Quedo. Saludos.


Husos Horarios son GMT. La hora en este momento es 23:24:47.

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