Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ALV
01/04/2014Ing. Eduardo Miguel Puricelli Deja un comentarioGo to comments
Caso: se desea agregar el campo ubicación (MARD-LGPBE) al reporte ALV de la transacción
estándar MB52.
Solución:
El reporte tiene dos visualizaciones: jerárquica y no jerárquica. Para el primer caso, dejo el
campo oculto (para que el usuario lo pueda agregar si lo desea) y en el segundo caso lo
agregaré visible, antes del campo Lote.
Yo agregué el campo luego del campo lote y para eso lo hice sin usar la macro, agregándolo al
fieldcat directamente con código -ya que el col_pos está fijo sumando 1 en la macro-). O sea:
fieldcat-COL_POS = '9'.
fieldcat-fieldname = 'LGPBE'.
fieldcat-tabname = 'BESTAND'.
fieldcat-ref_tabname = 'MARD'.
fieldcat-no_out = SPACE.
IF NOT fieldcat-seltext_l IS INITIAL.
MOVE : fieldcat-seltext_l TO fieldcat-seltext_m,
fieldcat-seltext_l TO fieldcat-seltext_s.
ENDIF.
APPEND fieldcat. CLEAR fieldcat.
b. Para reporte jerárquico
CLEAR fieldcat.
fieldcat-fieldname = 'LGPBE'.
fieldcat-tabname = 'BESTAND'.
fieldcat-ref_tabname = 'MARD'.
fieldcat-no_out = 'X'.
APPEND fieldcat.
Nota: si queremos modificar los datos de cabecera del reporte jerárquico modificamos
el HEADER
Hacemos click con el botón derecho en las comillas y elegimos ->Implementación ampliación ->
Crear implementación. Nos aparece la siguiente pantalla, elegimos “Cod. Fuente”.
* ENHANCEMENT-SECTION RM07MLBS_09 SPOTS ES_RM07MLBS.
* END-ENHANCEMENT-SECTION.
* ENHANCEMENT-SECTION RM07MLBS_10 SPOTS ES_RM07MLBS.
* END-ENHANCEMENT-SECTION.
**$*$-Start: RM07MLBS_2————————————————————————–$*$*
* ENHANCEMENT 14 MGV_MATNR_LAMA_RM07MLBS. “active version
** Modification for PIC-Supersession/MPN
*
* IF SHOW_EXT_MANUFACTURER EQ ‘X’.
* CLEAR EMNFR.
* IMPORTING
** E_MFRPN =
* E_EMNFR = EMNFR
* EXCEPTIONS
* MATERIAL_IS_NO_MPN = 1.
*
* IF SY-SUBRC EQ 0.
* MOVE EMNFR TO HEADER-EMNFR.
* ENDIF.
* ENDIF.
* ENDENHANCEMENT.
data : l_f_check_new(01) type c. ” <–
y reeemplazar su uso en:
CALL FUNCTION ‘REUSE_ALV_HIERSEQ_LIST_DISPLAY’
EXPORTING
* I_INTERFACE_CHECK = l_f_check
I_INTERFACE_CHECK = l_f_check_new ” <–
CALL FUNCTION alv_detail_func
EXPORTING
* I_INTERFACE_CHECK = l_f_check
Creamos una nueva tabla interna con el/los nuevos campos a agregar (en nuestro caso sólo es
el campo MARD-LGPBE) y lo usamos en la llamada del ALV. Para nuestro ejemplo para el reporte
jerárquico y no-jerárquico, debo crear una tabla BESTAND_NEW para agregar el campo LGPBE:
DATA: BEGIN OF bestand_new OCCURS 0,
* Key fields
matnr LIKE mara-matnr,
werks LIKE t001w-werks,
lgort LIKE mard-lgort,
LGPBE like mard-LGPBE, ” Campo ubicación
sobkz LIKE mkol-sobkz,
ssnum like bickey-ssnum, “n531604
pspnr like mspr-pspnr, “n531604
vbeln like mska-vbeln, “n531604
posnr like mska-posnr, “n531604
lifnr LIKE mkol-lifnr,
kunnr LIKE msku-kunnr,
kzbws LIKE mssa-kzbws,
charg LIKE mchb-charg,
* Additional data (texts, unit, …)
maktx LIKE marav-maktx,
bwkey LIKE mbew-bwkey,
mtart LIKE marav-mtart,
matkl LIKE marav-matkl,
meins LIKE marav-meins,
bwtty LIKE marc-bwtty,
xchar LIKE marc-xchar,
lgobe LIKE t001l-lgobe,
bwtar LIKE mcha-bwtar,
waers LIKE t001-waers,
name1 LIKE t001w-name1,
* Quantities and currencies
labst LIKE mard-labst,
wlabs LIKE mbew-salk3,
insme LIKE mard-insme,
winsm LIKE mbew-salk3,
speme LIKE mard-speme,
wspem LIKE mbew-salk3,
einme LIKE mard-einme,
weinm LIKE mbew-salk3,
retme LIKE mard-retme,
wretm LIKE mbew-salk3,
umlme LIKE mard-umlme,
wumlm LIKE mbew-salk3,
glgmg LIKE marc-glgmg, “n912093
wglgm LIKE mbew-salk3, “n912093
trame LIKE marc-trame, “n912093
wtram LIKE mbew-salk3, “n912093
umlmc LIKE marc-umlmc, “n912093
wumlc LIKE mbew-salk3, “n912093
* Dummy field
dummy TYPE ALV_DUMMY,
* Colour
farbe TYPE slis_t_specialcol_alv,
lvorm like mard-lvorm,
wbwesb like mbew-salk3, “AC0K020254
matnr_40 type text40, “DI note 1160649
END OF bestand_new.
TABLES
t_outtab_item = bestand_new “bestand
y
TABLES
T_OUTTAB = bestand_new ” bestand
PD: en lugar de agregar la nueva estructura BESTAND_NEW no me fijé, pero capaz podía
ampliarse la actual BESTAND agregando el nuevo campo.
Link: http://scn.sap.com/thread/2072130