PDA

Ver la Versión Completa : Colocar Titulo (Cabcera) a ALV


CRISTINO.GARCIA
12/09/12, 18:54:03
Hola a todos

Realice un ALV pero me piden que coloque como cabecera el rango de fecha que es tomado del input, como se puede lograr eso?

Gracias

Cristino

calanis
12/09/12, 21:14:06
Hola Cristino!

Un ejemplo con ALV por Función
Link

Otro ejemplo por ALV por Objetos
Link
Link2

Espero te sirva

Saludos

CRISTINO.GARCIA
14/09/12, 21:41:31
Muchas Gracias !!!

Saludos

Cristino

CRISTINO.GARCIA
18/09/12, 14:34:56
Hola Amigo, muchas gracias por tu informacion. Me sirvio de mucho, pero ahora tengo un detalle, los montos a reflejar en al ALV tienen signos negativos y positivos, yo ejecuto la funcion que los toma pero al momento de llevarlo al ALV no le coloca los signos, es que esos campos deben tener una mascar o tratamiento especial???

Muchas Gracias

Saludos

Cristino

Hola Cristino!

Un ejemplo con ALV por Función
Link

Otro ejemplo por ALV por Objetos
Link
Link2

Espero te sirva

Saludos

calanis
18/09/12, 15:21:19
Hola Cristino!

Es raro lo que indicas, fijate vía debug justo antes de llamar al ALV como estan los valores de la tabla(osea que signo traen)

Ahora para una correcta visualización generalmente en el catalogo cuando pasas un valor ya sea de tipo moneda o tipo Unidad de medida lo debes informar en el catalogo.

Por ej:

Valor Moneda
Valor interno de tú campo 2,34 -->BSEG-DMBTR
Moneda de Visualización COP -->Pesos Colombianos-->BKPF-WAERS
Valor de Visualización 234 COP
Campo en el catalogo
ls_fieldcat-tabname = 'GT_ALV'.
ls_fieldcat-fieldname = 'DMBTR'.
ls_fieldcat-ref_tabname = 'BSEG'
ls_fieldcat-ref_fieldname = 'DMBTR'.
ls_fieldcat-ctabname = 'BKPF'. -->Referencia del campo Moneda
ls_fieldcat-cfieldname = 'WAERS'.-->Referencia del campo Moneda
Tambien debes cargarlo al campo moneda tanto en la tabla interna que uses como en el catalog, no es necesario que este visible
ls_fieldcat-tabname = 'GT_ALV'.
ls_fieldcat-fieldname = 'WAERS'.
ls_fieldcat-ref_tabname = 'BKPF'.
ls_fieldcat-ref_fieldname = 'WAERS'.

Valor Unidad de Medida
Valor interno de tú campo 6,000 -->EKPO-MENGE
Moneda de Visualización KM -->Kilómetro-->EKPO-MEINS
Valor de Visualización 6,000 KM


Espero te sirva

Saludos

CRISTINO.GARCIA
18/09/12, 16:08:04
Hola Amigo
En mi programa hago la busqueda asi:

FORM IMPORTE_MON_LOCAL_CON_SIGNO.

DATA: AUX LIKE BSEG-FDWBT.
CLEAR: IMPORTEMONEDALOCAL,MONEDA.


SELECT SINGLE FDWBT INTO AUX
FROM BSEG
WHERE BUKRS = TABLA-BUKRS
AND BELNR = TABLA-BELNR
AND BUZEI = TABLA-BUZEI.


IF AUX < 0.
IMPORTEMONEDALOCAL = TABLA-DMBTR * -1.
IMPORTEMONEDADOC = TABLA-WRBTR * -1.
ELSE.
IMPORTEMONEDALOCAL = TABLA-DMBTR.
IMPORTEMONEDADOC = TABLA-WRBTR.
ENDIF.
MONEDA = 'VEF'. " Ultima Columna

ENDFORM.

Total General
W_POSI = W_POSI + 1.
gt_fieldcat-tabname = 'TABLA'.
gt_fieldcat-emphasize = 'C401'.
gt_fieldcat-fieldname = 'AUX'.
gt_fieldcat-ddictxt = 'L'.
gt_fieldcat-seltext_l = 'Total General'.
gt_fieldcat-col_pos = W_POSI.
gt_fieldcat-ref_tabname = 'BSEG'. "Tabla de Referencia
gt_fieldcat-ref_fieldname = 'FDWBT'. "Campo Referencia en Tabla
gt_fieldcat-do_sum = ' '. "Sumarizar (campo numerico)
APPEND gt_fieldcat.
CLEAR gt_fieldcat.

En la funcion si veo que trae el signo pero al llegar a este punto me imprime solo 0.00.

Gracias

Cristino

Hola Cristino!

Es raro lo que indicas, fijate vía debug justo antes de llamar al ALV como estan los valores de la tabla(osea que signo traen)

Ahora para una correcta visualización generalmente en el catalogo cuando pasas un valor ya sea de tipo moneda o tipo Unidad de medida lo debes informar en el catalogo.

Por ej:


Espero te sirva

Saludos

calanis
18/09/12, 16:58:29
Cristino

Revisando lo que me envias observo varios puntos:
1- No estas asignando el valor de tú consulta a la tabla del ALV.
La variable AUX que usas no la pasaste a la tabla que envias al ALV, en el campo TABLA-AUX

2-Por que accedes de nuevo a la BSEG para sacar el valor de este campo BSEG-FDWBT(ojo desconozco el requerimiento pero creo que ya accediste antes a la BSEG)

3-Trata de cuidar la Performance por que en Producción esa Consulta que estabas aplicando puede que te complique la existencia

4-Para los campos DMBTR y WRBTR quien te indica que el valor es positivo o negativo es el campo BSEG-SHKZG


FORM IMPORTE_MON_LOCAL_CON_SIGNO.

DATA: lv_SHKZG type BSEG-SHKZG.
CLEAR: IMPORTEMONEDALOCAL,MONEDA.


SELECT SINGLE SHKZG INTO lv_SHKZG
FROM BSEG
WHERE BUKRS = TABLA-BUKRS
AND BELNR = TABLA-BELNR
AND GJAHR = TABLA-GJAHR "<--Esta línea agregala por Performance
AND BUZEI = TABLA-BUZEI.

IF lv_SHKZG = 'H'."-->Indicador Debe/Haber
IMPORTEMONEDALOCAL = TABLA-DMBTR * -1.
IMPORTEMONEDADOC = TABLA-WRBTR * -1.
ELSE.
IMPORTEMONEDALOCAL = TABLA-DMBTR.
IMPORTEMONEDADOC = TABLA-WRBTR.
ENDIF.
MONEDA = 'VEF'. " Ultima Columna
* Creo que aquí deberia de existir un MODIFY a la tabla interna TABLA
* en donde se asigne el valor AUX al campo TABLA-AUX

ENDFORM.


Espero te sirva

Saludos

CRISTINO.GARCIA
18/09/12, 17:58:50
Gracias Amigo, dejame ver bien lo que me indicas, pero antes cuando el reporte no era ALV con esa funcion me mostraba los negativos y ahora no.

Cualquier cosa te consulto nuevamente.

Gracias

Cristino

Cristino

Revisando lo que me envias observo varios puntos:
1- No estas asignando el valor de tú consulta a la tabla del ALV.
La variable AUX que usas no la pasaste a la tabla que envias al ALV, en el campo TABLA-AUX

2-Por que accedes de nuevo a la BSEG para sacar el valor de este campo BSEG-FDWBT(ojo desconozco el requerimiento pero creo que ya accediste antes a la BSEG)

3-Trata de cuidar la Performance por que en Producción esa Consulta que estabas aplicando puede que te complique la existencia

4-Para los campos DMBTR y WRBTR quien te indica que el valor es positivo o negativo es el campo BSEG-SHKZG



Espero te sirva

Saludos

CRISTINO.GARCIA
20/09/12, 16:20:13
Ya resolvi lo de los signos negativos. Muchas Gracias Amigo lo que me enviaste me sirvio. Pero ahora me piden que la informacion que despliego en el alv salga por cliente es decir por cada cliente sumarize los montos de las columnas. Actualmente el reporte sale asi:

Codigo Cliente Saldo Morosidad 1 Saldo Morosidad 2 ... Saldo Morosidad N Fecha Vencimiento
Cod1
cod1
cod1
cod2
cod2
cod3
cod3
cod3

Ahora quieren es:
Codigo Saldo Morosida1 Saldo Morosidad 2 Saldo Morosidad N Fecha Vencimiento
Cod1
cod2
cod3

La data esta en una TABLA:
DATA: BEGIN OF TABLA OCCURS 0,
codigo
saldo morosidad1
saldo morosidad2

END OF TABLA.

Como puedo hacer eso?

Muchas Gracias

Cristino
Cristino

Revisando lo que me envias observo varios puntos:
1- No estas asignando el valor de tú consulta a la tabla del ALV.
La variable AUX que usas no la pasaste a la tabla que envias al ALV, en el campo TABLA-AUX

2-Por que accedes de nuevo a la BSEG para sacar el valor de este campo BSEG-FDWBT(ojo desconozco el requerimiento pero creo que ya accediste antes a la BSEG)

3-Trata de cuidar la Performance por que en Producción esa Consulta que estabas aplicando puede que te complique la existencia

4-Para los campos DMBTR y WRBTR quien te indica que el valor es positivo o negativo es el campo BSEG-SHKZG



Espero te sirva

Saludos