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 05/09/07, 07:33:28
Heran Heran is offline
Junior Member
 
Fecha de Ingreso: may 2007
Localización: No consigo ubicarme
Mensajes: 21
Linea color ALV

Hola, me han pedido colorear las lineas de un ALV dependiendo de una fecha. Si la fecha de cierre ya ha pasado en rojo y si esta por venir en verde.
Me pregunto si se podrá hacer. Y si se puede agradeceria alguna pista.

Gracias de antemano.
__________________
- Heran -
Responder Con Cita
  #2  
Viejo 05/09/07, 08:02:56
Avatar de melerogalan
melerogalan melerogalan is offline
Senior Member
 
Fecha de Ingreso: nov 2006
Localización: Murcia
Mensajes: 142
Espero que te sirva

Hola:
Primero te tienes que definir en la estructura que le pasas al ALV (en este ejempolo la llamaremos 'alv') un campo del tipo 'slis_t_specialcol_alv', es donde almacenaremos los colores del ALV, asi como los campos que queremos que nos ponga color(en este ejemplo lo llamaremos al campo 'color').
Yo te recomiendo que te hagas una subrutina y cada vez que rellenes un registro del alv la llames.

Subrutina(Esta echa para que ponga toda la linea de un color, si solo quieres unos determinados campos deberas de indicarlos en el campo 'fieldname' de la estrucutra 'slis_specialcol_alv' y añadir a la estrucutra donde tengas almacenado los colores en nuestro ejemplo alv-color, un registro por cada campo que metas):


form rellenar_colores.

* Cabecera de la tabla interna(alv-color) donde tenemos almacenados los colores
DATA local_color TYPE slis_specialcol_alv.

* Si la fecha es un valor le pones un color sino otro y asi lo que quiers, tambien lo puedes hacer con un case.
IF fecha EQ 'lo que sea 01'.
local_color-color-col = '1'.
ELSEIF fecha eq 'lo que sea 02'.
.
.
.
ENDIF.

* Es importante que añadas el registro a la tabla interna
APPEND local_color TO alv-color.
CLEAR local_color.

endform.

Espero que te sirva de ayuda.
Responder Con Cita
  #3  
Viejo 05/09/07, 12:54:25
Heran Heran is offline
Junior Member
 
Fecha de Ingreso: may 2007
Localización: No consigo ubicarme
Mensajes: 21
He hecho todo tal y como dices, pero el ALV sigue igual.
__________________
- Heran -
Responder Con Cita
  #4  
Viejo 05/09/07, 15:14:28
Avatar de darona
darona darona is offline
Member
 
Fecha de Ingreso: jun 2006
Localización: Valencia, Spain
Mensajes: 44
En la tabla interna que muestras en el ALV debes crear un campo TYPE lvc_t_styl. En un campo definido de esta forma puedes modificar gran cantidad de características del mismo dándole valores a una serie de bits.

En la declaración del layout debes indicarle qué campo de la tabla interna marca el estilo de la línea a dibujar.
Ejemplo: it_layout1-stylefname = 'ASPECTO'.
Donde 'aspecto' es el nombre del campo de la tabla interna del tipo lvc_t...


Puedes crearte un form como el siguiente que pinte las celdas.

DATA: it_cells TYPE lvc_t_styl.
FORM pintar_celdas USING c TYPE tf605-coimeth.
DATA ls_cells1 TYPE lvc_s_styl.

REFRESH it_cells.
CLEAR: ls_cells1.

CASE c.
WHEN '11100'.
ls_cells1-style = '00000004'.
WHEN '11300'.
ls_cells1-style = '00000003'.
WHEN '11420'.
ls_cells1-style = '00000006'.
ENDCASE.
INSERT ls_cells1 INTO TABLE it_cells.
ENDFORM.

En este caso pinto las filas en función del método de consolidación.
Ya sólo queda pasarle los valores de la tabla it_cells al campo de nuestra tabla interna que se muestra en el ALV. Eso se hace de la siguiente manera:

LOOP AT ti_calculo.
PERFORM pintar_celdas USING ti_calculo-coimeth.
ti_calculo-aspecto[] = it_cells[].
MODIFY ti_calculo.
ENDLOOP.


Espero que te sirva de ayuda.

Saludo,
David.
Responder Con Cita
  #5  
Viejo 07/09/07, 11:10:31
Avatar de melerogalan
melerogalan melerogalan is offline
Senior Member
 
Fecha de Ingreso: nov 2006
Localización: Murcia
Mensajes: 142
Thumbs up Se falta indicarle en la estrucutura de la layout un campo

Le tienes que indicar en la estructura de la layout el nomrbe del campo donde ira almacenado el color, perdona por no decirtelo, .

it_layout-coltab_fieldname = 'COLOR'.

Espera que ahora te funcione.

Saludos
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 16:12:13.


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