Cuando muestras importes en un ALV, es fundamental que el sistema sepa qué moneda aplica a cada cantidad. Si no, el ALV no podrá formatear correctamente los números (decimales, separadores de miles) ni mostrar el símbolo de moneda adecuado.
En ABAP, esto se resuelve en el fieldcatalog: indicas cuál es el campo de moneda asociado a cada campo de cantidad mediante la propiedad cfieldname.
Configuración en el fieldcatalog
Supón que tienes dos campos en tu tabla interna:
En el fieldcatalog, defines:
WHEN 'XPRICE'.
<fs_fieldcat>-col_pos = 4.
<fs_fieldcat>-edit = 'X'.
<fs_fieldcat>-cfieldname = 'XCURRENCY'. " ← Nombre del campo moneda
<fs_fieldcat>-datatype = 'CURR'. " ← Tipo cantidad
WHEN 'XCURRENCY'.
<fs_fieldcat>-col_pos = 5.
<fs_fieldcat>-edit = 'X'.
<fs_fieldcat>-just = 'C'.
Referenciar un campo cantidad con su moneda en ALV es sencillo: en el fieldcatalog, marca datatype = 'CURR' y apunta al campo moneda con cfieldname. El ALV se encargará del resto: formato de números, decimales y símbolo de moneda, todo por fila.


