juanmgdelomana
21/10/08, 14:48:25
Hola:
Tengo que hacer una modificación en un programa de tipo module pool que va a hacer un chequeo cuando pincho un boton 'AÑADIR' y añado una/s nueva/s factura/s con su proveedor, datos que yo introduzco.
El tema es ver si esta es única y en el caso de que no lo sea debería mostrar un popup con una información en ALV (las coincidencias encontradas, es decir las facturas que tienen el mismo nº de factura y el mismo proveedor). Lo estoy intentando hacer con un módulo de funciones ya que este trozo de código se utilizará más adelante en otros sitios.
Se os ocurre algo, lo que he intentado no me para de dar distintos dumps. ¿Me podría ayudar alguien? Os dejo mi código.
Muchas gracias por vuestra colaboración. Un saludo.
type-pools: slis. " ALV Global types
data: l_exit.
data: ls_private type slis_data_caller_exit.
data: ls_fieldcat type slis_fieldcat_alv.
data: lt_fieldcat type slis_t_fieldcat_alv.
DATA: REF_DDIC LIKE DD03P-TABNAME.
data: ls_selfield TYPE SLIS_SELFIELD.
data: cuenta type i.
data: rp_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
refresh it_zesfera_cab_fact.
clear it_zesfera_cab_fact.
loop at IT_FACTURA.
SELECT *
from zesfera_cab_fact
APPENDING table it_zesfera_cab_fact
* into table it_zesfera_cab_fact
where factura = it_factura-factura and
proveedor = it_factura-proveedor and
estatus <> 'B'.
endloop.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = sy-repid
I_INTERNAL_TABNAME = 'it_zesfera_cab_fact'
I_STRUCTURE_NAME = REF_DDIC
* I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = sy-repid
CHANGING
CT_FIELDCAT = RP_FIELDCAT[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
* OTHERS = 3
.
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
I_ZEBRA = 'X'
I_TABNAME = it_zesfera_cab_fact
IT_FIELDCAT = rp_fieldcat[]
IMPORTING
ES_SELFIELD = LS_SELFIELD
TABLES
T_OUTTAB = it_zesfera_cab_fact.
ENDFUNCTION.
Tengo que hacer una modificación en un programa de tipo module pool que va a hacer un chequeo cuando pincho un boton 'AÑADIR' y añado una/s nueva/s factura/s con su proveedor, datos que yo introduzco.
El tema es ver si esta es única y en el caso de que no lo sea debería mostrar un popup con una información en ALV (las coincidencias encontradas, es decir las facturas que tienen el mismo nº de factura y el mismo proveedor). Lo estoy intentando hacer con un módulo de funciones ya que este trozo de código se utilizará más adelante en otros sitios.
Se os ocurre algo, lo que he intentado no me para de dar distintos dumps. ¿Me podría ayudar alguien? Os dejo mi código.
Muchas gracias por vuestra colaboración. Un saludo.
type-pools: slis. " ALV Global types
data: l_exit.
data: ls_private type slis_data_caller_exit.
data: ls_fieldcat type slis_fieldcat_alv.
data: lt_fieldcat type slis_t_fieldcat_alv.
DATA: REF_DDIC LIKE DD03P-TABNAME.
data: ls_selfield TYPE SLIS_SELFIELD.
data: cuenta type i.
data: rp_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
refresh it_zesfera_cab_fact.
clear it_zesfera_cab_fact.
loop at IT_FACTURA.
SELECT *
from zesfera_cab_fact
APPENDING table it_zesfera_cab_fact
* into table it_zesfera_cab_fact
where factura = it_factura-factura and
proveedor = it_factura-proveedor and
estatus <> 'B'.
endloop.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = sy-repid
I_INTERNAL_TABNAME = 'it_zesfera_cab_fact'
I_STRUCTURE_NAME = REF_DDIC
* I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = sy-repid
CHANGING
CT_FIELDCAT = RP_FIELDCAT[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
* OTHERS = 3
.
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
I_ZEBRA = 'X'
I_TABNAME = it_zesfera_cab_fact
IT_FIELDCAT = rp_fieldcat[]
IMPORTING
ES_SELFIELD = LS_SELFIELD
TABLES
T_OUTTAB = it_zesfera_cab_fact.
ENDFUNCTION.