Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Problem with ALV report

Former Member
0 Likes
359

Hello,

I am king of new in Alv reports and I am using the function REUSE_ALV_HIERSEQ_LIST_DISPLAY' to displya my report, but in the detail I am including several accounting journals, it is possible to make a group for each journal?

Thank you, Mary

1 REPLY 1
Read only

Former Member
0 Likes
316

REPORT ZGT_REPORTE_RE_WE.

tables: BKPF,

BSEG,

SKAT,

LFa1,

*BSEG,

EKBE,

ZGT_MIN_CECO.

TYPE-POOLS: slis.

include zgtformatos.

data: begin of Ti_RE OCCURS 0.

INCLUDE STRUCTURE BKPF.

data: END OF TI_RE.

data: begin of Ti_WE OCCURS 0.

INCLUDE STRUCTURE BKPF.

data: END OF TI_WE.

data: begin of Ti_MM01 OCCURS 0.

INCLUDE STRUCTURE EKBE.

data: END OF TI_MM01.

data: begin of Ti_BSEG_RE OCCURS 0.

DATA: EXPAND(1).

INCLUDE STRUCTURE BSEG.

data: ID(18),

TEXTO like SKAT-TXT50,

BLDAT Like BKPF-BLDAT , "fecha docto

BUDAT Like BKPF-BUDAT , "fecha contabilizacion

XBLNR Like BKPF-XBLNR , "numero referencia

MONAT Like BKPF-MONAT , "mes contable

WAERS Like BKPF-WAERS , "moneda

KURSF Like BKPF-KURSF . "tipo de cambio

data: END OF Ti_BSEG_RE.

data: begin of Ti_BSEG_WE OCCURS 0.

DATA: EXPAND(1).

INCLUDE STRUCTURE BSEG.

data: RE_BUKRS like Ti_BSEG_RE-BUKRS,

RE_BELNR like Ti_BSEG_RE-BELNR,

RE_GJAHR like Ti_BSEG_RE-GJAHR,

ID(18),

TEXTO like SKAT-TXT50,

BLDAT Like BKPF-BLDAT ,

BUDAT Like BKPF-BUDAT ,

XBLNR Like BKPF-XBLNR ,

MONAT Like BKPF-MONAT ,

WAERS Like BKPF-WAERS ,

KURSF Like BKPF-KURSF ,

CECO_MIN LIKE ZGT_MIN_CECO-CECO_MIN ,

TXT50 LIKE ZGT_MIN_CECO-TXT50.

data: END OF Ti_BSEG_WE.

data: vindex like sy-tabix,

alv_keyinfo TYPE slis_keyinfo_alv,

alv_variant LIKE disvariant,

alv_layout TYPE slis_layout_alv,

alv_repid like sy-repid,

alv_print type slis_print_alv,

programa like sy-repid,

fc_hier TYPE slis_fieldcat_alv OCCURS 0 WITH HEADER LINE,

VCOLOR(4),

AWKEY_TEMP(14),

FIELDCAT TYPE SLIS_T_FIELDCAT_ALV with header line.

*----

-


  • Parametros de Seleccion

*----

-


SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-001.

PARAMETER: SO_BUKRS like BKPF-BUKRS,

GJAHR like BKPF-GJAHR DEFAULT sy-datum(4) OBLIGATORY,

BELNR like BKPF-BELNR.

SELECTION-SCREEN END OF BLOCK 1.

initialization.

sociedad so_bukrs.

START-OF-SELECTION.

perform Buscar_Datos.

PERFORM IMPRIMIR.

*&----


*

*& Form Buscar_Datos

*&----


*

  • text

*----


*

  • --> p1 text

  • <-- p2 text

*----


*

*

  • Se extrae el encabezado de la factura, debería devolver una sola linea

*

*----


*

FORM Buscar_Datos .

select * from bseg into corresponding fields of table Ti_BSEG_RE

where BUKRS = SO_BUKRS and

BELNR = BELNR and

GJAHR = GJAHR.

select single * from bkpf

where BUKRS = SO_BUKRS and

GJAHR = GJAHR and

BELNR = BELNR.

*----


*

*

  • Se extrae el historial del documento de MM, en donde se obtiene la

  • relación entre la factura y la recepción.

*

*----


*

Select * from EKBE into corresponding fields of table TI_MM01

Where BELNR = BKPF-AWKEY(10) AND

GJAHR = GJAHR.

loop at Ti_MM01.

CLEAR: AWKEY_TEMP.

CONCATENATE TI_MM01-LFBNR

TI_MM01-LFGJA into AWKEY_TEMP.

  • Llenamos la tabla FI de recepciones

CLEAR: BKPF.

select * from bkpf into corresponding fields of Ti_BSEG_WE

where AWKEY = AWKEY_TEMP.

check sy-subrc = 0.

append Ti_BSEG_WE.

select * from *bseg into corresponding fields of Ti_BSEG_WE

where BUKRS = TI_BSEG_WE-BUKRS and

GJAHR = TI_BSEG_WE-GJAHR and

BELNR = TI_BSEG_WE-BELNR and

EBELN = TI_MM01-EBELN and

EBELP = TI_MM01-EBELP.

Ti_BSEG_WE-re_BUKRS = TI_BSEG_WE-BUKRS.

Ti_BSEG_WE-re_BELNR = TI_BSEG_WE-BELNR.

Ti_BSEG_WE-re_GJAHR = TI_BSEG_WE-GJAHR.

concatenate SO_BUKRS

BELNR

GJAHR into Ti_BSEG_WE-ID.

append Ti_BSEG_WE.

endselect.

endselect.

endloop.

clear: vindex.

loop at Ti_BSEG_RE.

add 1 to vindex.

concatenate Ti_BSEG_RE-BUKRS

Ti_BSEG_RE-BELNR

Ti_BSEG_RE-GJAHR into Ti_BSEG_RE-ID.

modify Ti_BSEG_RE index vindex.

endloop.

************************************************************************

  • En esta parte se copian todas las lineas que no son de facturas por

  • recibir al detalle del reporte. Ejemplo linea de Impuestos

************************************************************************

loop at Ti_BSEG_RE. "where LIFNR = '' and

  • HKONT <> '0000200001'.

move-corresponding Ti_BSEG_RE to Ti_BSEG_WE.

concatenate Ti_BSEG_WE-BUKRS

Ti_BSEG_WE-BELNR

Ti_BSEG_WE-GJAHR into Ti_BSEG_WE-ID.

append Ti_BSEG_WE.

endloop.

delete Ti_BSEG_RE where LIFNR = ''.

delete Ti_BSEG_WE where BUZEI = ''. "HKONT = '0000200001'.

DELETE ADJACENT DUPLICATES FROM Ti_BSEG_WE

COMPARING BUKRS BELNR GJAHR BUZEI.

clear: vindex.

loop at Ti_BSEG_WE.

add 1 to vindex.

clear: SKAT.

select single TXT50 into Ti_BSEG_WE-TEXTO

from SKAT where spras = sy-langu and

SAKNR = Ti_BSEG_WE-HKONT.

if Ti_BSEG_WE-SHKZG = 'H'.

Ti_BSEG_WE-DMBTR = Ti_BSEG_WE-DMBTR * -1.

Ti_BSEG_WE-WRBTR = Ti_BSEG_WE-WRBTR * -1.

Ti_BSEG_WE-DMBT2 = Ti_BSEG_WE-DMBT2 * -1.

endif.

modify ti_bseg_WE index vindex.

endloop.

clear: vindex.

loop at Ti_BSEG_RE.

add 1 to vindex.

clear: SKAT.

select single TXT50 into Ti_BSEG_RE-TEXTO

from SKAT where spras = sy-langu and

SAKNR = Ti_BSEG_RE-HKONT.

clear: LFA1.

select single NAME1 into Ti_BSEG_RE-TEXTO

from LFA1 where lifnr = Ti_BSEG_RE-lifnr.

modify ti_bseg_RE index vindex.

endloop.

clear: vindex.

loop at Ti_BSEG_WE.

add 1 to vindex.

clear: ZGT_MIN_CECO.

Select single * into corresponding fields of TI_BSEG_WE

from ZGT_MIN_CECO

where CECO_PEP = TI_BSEG_WE-KOSTL or

CECO_PEP = TI_BSEG_WE-PROJN.

modify TI_BSEG_WE index vindex.

endloop.

ENDFORM. " Buscar_Datos

*&----


*

*& Form IMPRIMIR

*&----


*

  • text

*----


*

  • --> p1 text

  • <-- p2 text

*----


*

FORM IMPRIMIR .

PERFORM F_LAYOUT.

PERFORM C_RELACION.

PERFORM LLENAR_CATALOGO.

PROGRAMA = SY-REPID.

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

i_callback_program = PROGRAMA

i_callback_pf_status_set = 'SET_STATUS'

i_callback_user_command = 'USER_COMMAND'

is_layout = alv_layout

is_print = alv_print

it_fieldcat = fc_hier[]

i_default = 'X'

i_save = 'A'

is_variant = alv_variant

i_tabname_header = 'TI_BSEG_RE'

i_tabname_item = 'TI_BSEG_WE'

is_keyinfo = alv_keyinfo

TABLES

t_outtab_header = ti_bseg_re[]

t_outtab_item = ti_bseg_we[]

EXCEPTIONS

program_error = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. " IMPRIMIR

*&----


*

*& Form F_LAYOUT

*&----


*

  • text

*----


*

  • --> p1 text

  • <-- p2 text

*----


*

FORM F_LAYOUT.

  • alv_layout-info_fieldname = 'COLOR'.

alv_layout-coltab_fieldname = SPACE.

alv_layout-EXPAND_ALL = 'X'.

  • ms variables

  • alv_layout-no_sumchoice = SPACE.

alv_layout-colwidth_optimize = 'X'.

alv_layout-zebra = 'X'.

  • fin ms varialbes

  • alv_layout-LIGHTS_FIELDNAME = 'VBELN'.

  • alv_layout-LIGHTS_TABNAME = 'LIST'.

  • alv_layout-LIGHTS_ROLLNAME = 'VBELN'.

  • alv_layout-BOX_FIELDNAME = 'VBELN'.

  • alv_layout-BOX_TABNAME = 'LIST'.

alv_layout-EXPAND_FIELDNAME = 'EXPAND'.

ENDFORM. " F_LAYOUT

*&----


*

*& Form LLENAR_CATALOGO

*&----


*

  • text

*----


*

  • --> p1 text

  • <-- p2 text

*----


*

FORM LLENAR_CATALOGO.

Refresh: fc_hier.

*----

-


*- CABECERA

*----

-


clear: fieldcat[].

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

I_PROGRAM_NAME = sy-repid

I_INTERNAL_TABNAME = 'TI_BSEG_RE'

I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = sy-repid

changing

ct_fieldcat = fieldcat[].

clear: vindex.

loop at fieldcat.

add 1 to vindex.

*check vindex < 10.

move-corresponding fieldcat to FC_HIER.

FC_HIER-TABNAME = 'TI_BSEG_RE'.

if FC_HIER-fieldname = 'GJAHR' or

FC_HIER-fieldname = 'BELNR' or

FC_HIER-fieldname = 'EBELN' or

FC_HIER-fieldname = 'EBELP' or

FC_HIER-fieldname = 'LIFNR' or

FC_HIER-fieldname = 'DMBTR' or

FC_HIER-fieldname = 'WRBTR' or

FC_HIER-fieldname = 'DMBT2' or

FC_HIER-fieldname = 'HKONT' or

FC_HIER-fieldname = 'TEXTO'.

FC_HIER-no_out = ''.

else.

FC_HIER-no_out = 'X'.

endif.

if FC_HIER-fieldname = 'LIFNR' or

FC_HIER-fieldname = 'DMBTR' or

FC_HIER-fieldname = 'WRBTR' or

FC_HIER-fieldname = 'DMBT2' .

FC_HIER-row_pos = 2.

else.

FC_HIER-row_pos = 1.

endif.

APPEND FC_HIER. CLEAR: FC_HIER.

endloop.

*----

-


*- POSICION

*----

-


clear: fieldcat[].

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

I_PROGRAM_NAME = sy-repid

I_INTERNAL_TABNAME = 'TI_BSEG_WE'

I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = sy-repid

changing

ct_fieldcat = fieldcat[].

clear: vindex.

loop at fieldcat.

add 1 to vindex.

move-corresponding fieldcat to FC_HIER.

FC_HIER-TABNAME = 'TI_BSEG_WE'.

FC_HIER-row_pos = 1.

if FC_HIER-fieldname = 'GJAHR' or

FC_HIER-fieldname = 'BELNR' or

FC_HIER-fieldname = 'EBELN' or

FC_HIER-fieldname = 'EBELP' or

FC_HIER-fieldname = 'VALUT' or

  • FC_HIER-fieldname = 'LIFNR' or

FC_HIER-fieldname = 'WRBTR' or

FC_HIER-fieldname = 'DMBTR' or

FC_HIER-fieldname = 'DMBE2' or

FC_HIER-fieldname = 'PROJK' or

FC_HIER-fieldname = 'KOSTL' or

FC_HIER-fieldname = 'HKONT' or

FC_HIER-fieldname = 'TEXTO' or

FC_HIER-fieldname = 'CECO_MIN' or

FC_HIER-fieldname = 'TXT50' .

FC_HIER-no_out = ''.

else.

FC_HIER-no_out = 'X'.

endif.

APPEND FC_HIER. CLEAR: FC_HIER.

endloop.

delete FC_HIER where fieldname = 'BUKRS'.

ENDFORM. " LLENAR_CATALOGO

*&----


*

*& Form C_RELACION

*&----


*

  • text

*----


*

  • --> p1 text

  • <-- p2 text

*----


*

FORM C_RELACION.

alv_keyinfo-header01 = 'ID'.

alv_keyinfo-item01 = 'ID'.

  • alv_keyinfo-header01 = 'VBELN'.

  • alv_keyinfo-item01 = 'VBELN'.

ENDFORM. " C_RELACION

*----


*

  • FORM SET_STATUS *

*----


*

  • ........ *

*----


*

  • --> RT_EXTAB *

*----


*

FORM SET_STATUS USING rt_extab TYPE slis_t_extab.

  • IF cl_mmim_auth=>level( ) IS INITIAL.

  • APPEND 'AUTH' TO rt_extab.

  • ENDIF.

  • IF cl_mmim_auth=>level( ) = cl_mmim_auth=>c_error.

  • MESSAGE s124(m7).

  • ENDIF.

  • IF detail = 'X'.

  • APPEND 'DETAIL' TO rt_extab.

  • ENDIF.

SET PF-STATUS 'STANDARD' EXCLUDING rt_extab.

ENDFORM.

FORM user_command USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

if r_ucomm = '&IC1'.

case rs_selfield-FIELDNAME .

when 'BELNR'.

  • read table ti_result index rs_selfield-TABINDEX.

set parameter id 'BLN' field rs_selfield-value.

set parameter id 'BUK' field so_bukrs.

  • set parameter id 'AN2' field ti_result-ANLN2.

call transaction 'FB03' and skip first screen.

when 'EBELN'.

bseg-ebeln = rs_selfield-value.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = bseg-ebeln

IMPORTING

OUTPUT = bseg-ebeln.

bseg-ebelp = 1.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = bseg-ebelp

IMPORTING

OUTPUT = bseg-ebelp.

call function 'ME_DISPLAY_PURCHASE_DOCUMENT'

exporting

i_ebeln = bseg-ebeln

  • i_ebelp = bseg-ebelp

i_enjoy = 'X'

exceptions

not_found = 1

no_authority = 2

invalid_call = 3

preview_not_possible = 4

others = 5.

endcase.

endif.

endform.