|
Código fuente -
Informativos
|
|
Lunes, 07 de Julio de 2003 21:07 |
Extrae información de un juego de datos Batch Input
************************************************************************
* Permite extraer la información que compone un batch input *
* Es necesario seleccionar el juego de datos a buscar y el campo *
* que contiene la información que queremos visualizar *
* *
* Andrés Picazo 18/11/2002 http://www.sapabap.cc *
* *
************************************************************************
REPORT z_extract_batch_input.
TABLES: apqd, apqi.
data: i_apqi like apqi occurs 100 with header line. selection-screen begin of block a1 with frame.
SELECT-OPTIONS: s_credat FOR apqi-credate, "Fecha creación batch input
s_groupi FOR apqi-groupid obligatory, "N. juego datos
s_creato FOR apqi-creator. "Usuario que lo creo selection-screen end of block a1.
selection-screen begin of block a2 with frame.
parameters: p_prog(40) obligatory, "Nombre programa
p_dynp(4) obligatory, "Nº Dynpro
p_fiel like dd03l-FIELDNAME obligatory. "Campo
selection-screen end of block a2.
DATA: L_aux1 type string,
l_aux2 type string,
l_aux type string,
l_texto type string.
data: c_aux,
x_aux type x.
START-OF-SELECTION.
* Seleccionamos el juego de datos
SELECT * FROM apqi
into table i_apqi
WHERE credate IN s_credat
AND groupid IN s_groupi
AND creator IN s_creato
and mandant = sy-mandt.
loop at i_apqi.
* Accedemos a la composición del batch input
select * from apqd
where qid = i_apqi-qid.
* Buscamos la pantalla y el dynpro
if apqd-vardata+22(40) = p_prog and
apqd-vardata+62(4) = p_dynp.
l_aux = p_fiel.
* Buscamos el campo
l_texto = apqd-vardata.
split l_texto at l_aux into l_aux1 l_aux2.
if sy-subrc = 0.
* Obtenemos sus valores
if not l_aux2 is initial.
l_aux2 = l_aux2+1.
clear l_aux1.
do.
c_aux = l_aux2(1).
write c_aux to x_aux.
if x_aux ne '00'.
concatenate l_aux1 c_aux into l_aux1.
else.
exit.
endif.
SHIFT l_aux2 LEFT.
if l_aux2 is initial.
exit.
endif.
enddo.
write: / l_aux1.
endif.
endif.
endif.
endselect.
endloop.
|