MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Formularios - SAPScript - Smartforms
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 18/05/10, 00:07:13
mitosap mitosap is offline
Member
 
Fecha de Ingreso: sep 2009
Mensajes: 57
Salto de Pagina ---Sapscript

Hola amigos.

Tengo un programa control desde el cual hago un llamado al sapscript para imprimir un estado de cuenta. El programa es selectivo (parameter -un cliente a la vez). Me han pedido generar varios estados de cuenta (select-options) y para ello necesito que por cada cliente salte de página y se impriman sus encabezados (ventanas Header,Sociedad, Resumen).

He puesto el llamado al formulario-sapscript dentro de un loop, con un at first y un at last (para abrir y cerrar el formulario solo una vez). Todo bien, pero cuando se trata de un nuevo cliente no se como manejar el salto de la pagina.

A continuación parte del código:

**La tablita interna tiene n códigos de cliente, a los cuales se les selecciona **partidas abiertas y compensadas del periodo de estado de cuenta y se car-
**gan en otras tablitas que se usan para imprimir detalle (Ventana MAIN con
**diferentes elementos).
**>>
** ctab_kunnr
** 1) 25
** 2) 47
** 3) 84
** ..
** ..
** N) NN
**>>

Loop at ctab.
At first.
ITCPO-TDPAGESLCT = SPACE. "Todas las páginas
ITCPO-TDNEWID = 'X'. "Crea nuevo spool
ITCPO-TDCOPIES = 1. "1 copia
ITCPO-TDDEST = 'LOCL'. "Nombre de la impresora
ITCPO-TDPREVIEW = SPACE. "No Preview
ITCPO-TDCOVER = SPACE. "No portada
ITCPO-TDIMMED = 'X'. "Imprime inmediatamente
ITCPO-TDDELETE = 'X'. "Borra después de imprimir

CALL FUNCTION 'OPEN_FORM'
EXPORTING
FORM = 'ZESTADO_CUENTA'
LANGUAGE = SY-LANGU
OPTIONS = ITCPO
DEVICE = 'PRINTER'
DIALOG = 'X'
EXCEPTIONS
OTHERS = 1.

IF SY-SUBRC NE 0.
WRITE /'error al abrir formulario'.
STOP.
ENDIF.
Endat.
move ctab-kunnr to w_kunnr.

* Las ventanas header, sociedad y resumen se están imprimiendo solo para el
*primer cliente. Las ventanas address, info y MAIN si se imprimen para los *diferentes clientes.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
WINDOW = 'HEADER'
EXCEPTIONS
OTHERS = 1.

* Imprimimos la ventana Sociedad
CALL FUNCTION 'WRITE_FORM'
EXPORTING
WINDOW = 'SOCIEDAD'
EXCEPTIONS
OTHERS = 1.

* --- Imprimimos la ventana Address
CALL FUNCTION 'WRITE_FORM'
EXPORTING
WINDOW = 'ADDRESS'
EXCEPTIONS
OTHERS = 1.

* Imprimimos la ventana CABECERA
CALL FUNCTION 'WRITE_FORM'
EXPORTING
WINDOW = 'INFO'
ELEMENT = '503'
EXCEPTIONS
OTHERS = 1.

* Imprimimos la ventana CABECERA
CALL FUNCTION 'WRITE_FORM'
EXPORTING
WINDOW = 'INFO'
ELEMENT = '505'
EXCEPTIONS
OTHERS = 1.

* Imprimimos la ventana CABECERA
CALL FUNCTION 'WRITE_FORM'
EXPORTING
WINDOW = 'RESUMEN'
EXCEPTIONS
OTHERS = 1.
**
* --- Imprime Titulo de Pagos Realizados
CALL FUNCTION 'WRITE_FORM'
EXPORTING
WINDOW = 'MAIN'
ELEMENT = '522'
EXCEPTIONS
OTHERS = 1.

* Imprimimos la ventana MAIN Pagos Realizados
sort rtab by budat.
loop at rtab where statu = 'PC'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
WINDOW = 'MAIN'
ELEMENT = '534'
EXCEPTIONS
OTHERS = 1.
endloop.

sort rtab by budat.
loop at itab where statu = 'PC'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
WINDOW = 'MAIN'
ELEMENT = '535'
EXCEPTIONS
OTHERS = 1.
endloop.
**
.....
.....
......
......
**

AT LAST.
IF l_error IS INITIAL.
CALL FUNCTION 'CLOSE_FORM'.
IF sy-subrc NE 0.
l_error = 'X'.
ENDIF.
ENDIF.
ENDAT.

Ya he hecho el salto pero no con formulario sapscript si no con WRITE ** directamente, incluyendo un at new (gracias a la ayuda que recibí en este mismo foro).

loop ctab.
...
AT NEW kunnr
new-page
ENDAT.
..
..
endloop.




Agradecido infinitamente con la ayuda que me puedan brindar.

Saludos y que estén muy bien.
Responder Con Cita
  #2  
Viejo 18/05/10, 11:56:13
emerson.tosin emerson.tosin is offline
Member
 
Fecha de Ingreso: dic 2006
Localización: Sao Paulo, Brasil
Mensajes: 57
Se las paginas son iguales para todos los clientes, és solo abrir y cerrar el formulario en el final del LOOP ( OPEN_FORM E CLOSE_FORM ). Puede también, crear un ELEMENTO DE DATOS "/E" con el comando "NEW-PAGE".

espero que ayude!

Úlima edición por emerson.tosin fecha: 18/05/10 a las 11:58:20.
Responder Con Cita
  #3  
Viejo 18/05/10, 13:42:05
mitosap mitosap is offline
Member
 
Fecha de Ingreso: sep 2009
Mensajes: 57
Gracias Emerson.

El tema es que si cololo el open-form y close-form por cliente, me va a mostrar la pantalla de pre-visualización por cada uno. Lo que estoy buscando es que haga el open y close form solo para el primer y último cliente respectivamente.
Lo del comando new-page como elemento de texto, se lo incluí en la primera ventana de titulos (HEADER) y se comporta igual. A partir del segundo cliente me está omitiendo las ventanas HEADER, SOCIEDAD Y RESUMEN. La ventanas ADDRESS, INFO Y MAIN si las imprime pero de forma corrida no obedece el salto de pagina (new-page):


CALL FUNCTION 'WRITE_FORM'
EXPORTING
WINDOW = 'HEADER'
ELEMENT = 'NP'
EXCEPTIONS
OTHERS = 1.

El Elemento de texto NP tiene el comando NEW-PAGE.
Estaré haciendo algo mal seguramente, espero su valiosa ayuda.....

Saludos.
Responder Con Cita
  #4  
Viejo 21/05/10, 13:48:17
mitosap mitosap is offline
Member
 
Fecha de Ingreso: sep 2009
Mensajes: 57
Si funcionó como me dijo Emerson, incluyendo un elemento de texto con una linea comando NEW-PAGE.

...
...
sort rtab by budat.
loop at itab where statu = 'PC'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
WINDOW = 'MAIN'
ELEMENT = '535'
EXCEPTIONS
OTHERS = 1.
endloop.
**
**
** Esto me provoca el salto a la proxima pagina.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
WINDOW = 'MAIN'
ELEMENT = 'NP'
EXCEPTIONS
OTHERS = 1.

Lo que me queda ahora es controlar el reseteo de contador de pagina por cada cliente.
Amigos un millón de gracias y que esten muy bien....
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 14:23:18.


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