MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 30/10/08, 09:23:26
Avatar de Driau
Driau Driau is offline
Senior Member
 
Fecha de Ingreso: ago 2007
Mensajes: 235
Mandar variable de un report a otro

Hola a todos,

Tengo un report llamado Z28E que lista los movimientos mensuales de un producto (muestra un ALV por pantalla). Tengo otro programa llamado Z28E_MASIVA que mediante un CALL TRANSACTION ejecuta X veces el Z28E pero este hace que el listado se imprima directamente por la impresora.

Estoy intentando que cuando salgan los X listados...salgan numerados. Por ello en el programa Z28E_MASIVA en donde se realiza el CALL TRANSACTION para cada uno de los materiales he hecho lo siguiente:

FORM procesar_materiales .
LOOP AT seleccion.

d_contador_tmp = d_contador_tmp + 1.
EXPORT d_contador_tmp TO MEMORY ID 'CONTADOR_PAGINAS'.


PERFORM bdc_dynpro USING 'Z28E' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ONLI'.
PERFORM bdc_field USING 'P_MATNR'
seleccion-matnr.
PERFORM bdc_field USING 'P_ANYO'
p_anyo.
PERFORM bdc_field USING 'P_SUBCOM'
p_subcom.
PERFORM bdc_field USING 'P_MATPRI'
p_matpri.
PERFORM bdc_dynpro USING 'SAPMSSY0' '0120'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=&RNT'.
PERFORM bdc_dynpro USING 'SAPLSPRI' '0100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=PRIN'.
PERFORM bdc_field USING 'PRI_PARAMS-PDEST'
'Defecte Windows'.
PERFORM bdc_field USING 'PRI_PARAMS-PRCOP'
'1'.
PERFORM bdc_field USING 'RADIO0500_1'
'X'.
PERFORM bdc_dynpro USING 'SAPMSSY0' '0120'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=&F12'.
PERFORM bdc_dynpro USING 'Z28E' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/EECAN'.
PERFORM bdc_transaction USING 'Z28E'
'N'
'X'
'S'.
ENDLOOP.
ENDFORM. " procesar_materiales


He creado una variable que a cada iteracion icnrementa en uno el contador. Luego en el programa Z28E que es el que realmente acabar imprimiendo he puesto esto:

INITIALIZATION.

IMPORT d_contador FROM MEMORY ID 'CONTADOR_PAGINAS'.


Teoricamente esperaba que la variable d_contador obtuviera el valor que le pasa el report Z28E_MASIVA pero no es así...

Como puedo hacerlo? Como puedo pasar el valor de este contador de un programa a otro???
Responder Con Cita
  #2  
Viejo 30/10/08, 12:40:19
ibecerra
 
Mensajes: n/a
Hola Driau y porque no haces algo mas sencillo utiliza un submit
al programa Z28E le creas una variable de entrada parameters con valor entero.
luego cuando llamas al masivo generas tu contador y ese contador se lo envias como parametro al programa z283.

Saludos
Responder Con Cita
  #3  
Viejo 30/10/08, 12:55:50
Avatar de Driau
Driau Driau is offline
Senior Member
 
Fecha de Ingreso: ago 2007
Mensajes: 235
El problema...

Es que el programa no lo he hecho yo y quisiera mantener el codigo tal cual esta en la medida de lo possible. Quizás no te he entendido bien..pero puedo combinar el SUBMIT con el CALL TRANSACTION??? Es decir, tal cual esta ahora no le puedo meter un SUBMIT no???
Responder Con Cita
  #4  
Viejo 30/10/08, 13:08:58
ibecerra
 
Mensajes: n/a

Hola, el que ha hecho ese programa no tiene idea para que casos se utiliza un batch input.
el batch input , es para entrada netamente de datos , no para impresiones.
mira no borres lo q esta hecho . create otro procedimiento y hazlo con el submit.
todos esos parametros q vez q esta siendo el batch input, facil lo puedes hacer con el submit. y el con el minimo codigo
te pongo un ejmplo sencillo.

SUBMIT ZCOB0001
WITH P_BLDAT EQ P_BLDAT
WITH P_BUDAT EQ P_BUDAT .
Responder Con Cita
  #5  
Viejo 30/10/08, 13:23:24
Avatar de Driau
Driau Driau is offline
Senior Member
 
Fecha de Ingreso: ago 2007
Mensajes: 235
Perdona mi incultura

Otro procedimiento es otro report???
Responder Con Cita
  #6  
Viejo 30/10/08, 13:27:57
ibecerra
 
Mensajes: n/a
hola

Hola
creo q mejor convesamos por el msg .
no crear otro reporte solo crear un nuevo form o comentar esa lineas y pones el nuevo cambio, en caso q deseas deshacer las modificaciones.. tomalo como si fuera un backup preventivo.
Saludos
Responder Con Cita
  #7  
Viejo 31/10/08, 10:40:38
Avatar de Driau
Driau Driau is offline
Senior Member
 
Fecha de Ingreso: ago 2007
Mensajes: 235
Lo he probado con SUBMIT

Pero ahora solo llego a ver el listado en pantalla. Es decir yo necesito ejecutar el Z28E_MASIVA. Supongamos que este ejecuta 4 veces el Z28E con cuatro codigos dematerial: MAT1, MAT2, MAT3 y MAT4.

Lo que deberia pasar es: ejecutio Z28E_MASIVA poniendo los cuatro código de material en su pantalla de seleccion. Este hace un loop a los cuatro materiales y por o tanto hace el SUBMIT cuatro veces. Esto es como esta ahora:

FORM procesar_materiales.

LOOP AT seleccion.

*** INICIO CAMBIO Nº.1 CARLES ***
d_contador_tmp = d_contador_tmp + 1.
*** FINAL CAMBIO Nº.1 CARLES ***

SUBMIT z28e AND RETURN
WITH p_matnr EQ seleccion-matnr
WITH p_anyo EQ p_anyo
WITH p_subcom EQ p_subcom
WITH p_numpag EQ d_contador_tmp
WITH p_matpri EQ p_matpri.
ENDLOOP.

ENDFORM. "procesar_materiales


Lo que necesito es que cuando se vea en pantall el ALV que saca el Z28E, se imprima, luego vuelva al Z28E_MASIVA (con el siguiente código de material y haga lo mismo).

He visto que submit tiene instrucciones para imprimir...pero me da a mi que no podre hacerlo.

Te he agregado al MSN...pero no stas :-(

Un saludo y gracias!
Responder Con Cita
  #8  
Viejo 31/10/08, 12:15:44
ibecerra
 
Mensajes: n/a
de esta manera es para mandarlo x impresora


* Without archiving
DATA: PARAMS LIKE PRI_PARAMS,
DAYS(1) TYPE N VALUE 2,
COUNT(3) TYPE N VALUE 1,
VALID TYPE C.

CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING DESTINATION = 'LT50'
COPIES = COUNT
LIST_NAME = 'TEST'
LIST_TEXT = 'SUBMIT ... TO SAP-SPOOL'
IMMEDIATELY = 'X'
RELEASE = 'X'
NEW_LIST_ID = 'X'
EXPIRATION = DAYS
LINE_SIZE = 79
LINE_COUNT = 23
LAYOUT = 'X_PAPER'
SAP_COVER_PAGE = 'X'
COVER_PAGE = 'X'
RECEIVER = 'SAP*'
DEPARTMENT = 'System'
NO_DIALOG = ' '
IMPORTING OUT_PARAMETERS = PARAMS
VALID = VALID.

IF VALID <> SPACE.
SUBMIT RSTEST00 TO SAP-SPOOL
SPOOL PARAMETERS PARAMS
WITHOUT SPOOL DYNPRO.
ENDIF.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 16:32:06.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web