MUNDOSAP

MUNDOSAP (foro/index.php)
-   Formularios - SAPScript - Smartforms (foro/forumdisplay.php?f=5)
-   -   Mi primer formulario con SAPscript (Ayuda por favor) (foro/showthread.php?t=12332)

usuarionavarra 07/04/08 10:19:24

Mi primer formulario con SAPscript (Ayuda por favor)
 
Estoy haciendo mi primer formulario con Sapscript.

He creado dos páginas con varias windows (y page windows). He indicado para la primera página que next page sea la segunda página y para la segunda página
que el next page sea la primera (La idea es que si todas la filas de datos no me caben en la primera pueda ir avanzando por todas las página con scroll (El contenido de la segunda página he colocado las mismas page windows que para la primera).

Lo he probado y no veo el resto de datos o filas, solo veo la filas de al principio (de la primera página), supongo que en el código tengo que indicarle de alguna manera lo del scrolling o que cuando pulso los botones (first,next,previus, last) me vaya avanzando las páginas para poder ver el resto de las filas.

Otro problema que tengo es que, al sacar el informe, la primera fila de datos me la duplica. Es un ejemplo muy sencillo, consiste en sacar un informe con el contenido de la Tabla de diccionario de datos SPFLIGHT (Tabla que viene de ejemplo en el SAP) Es decir la primera fila de datos de la tabla SPFLIGHT la duplica y no sé por qué.

A continuación os mando el código de programa ABAP de el ejemplo para el formulario.

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

REPORT ZZSFLIGHT.

TABLES:SFLIGHT, ITCPO.

DATA:VAR_CARRID LIKE SFLIGHT-CARRID.
*DATA:VAR_CONNID LIKE SFLIGHT-CONNID.

FORM SACAR_INFORME.

VAR_CARRID = SFLIGHT-CARRID.
* VAR_CONNID = SFLIGHT-CONNID.

PERFORM ABRIR_FORMULARIO.

SELECT * FROM SFLIGHT
WHERE CARRID = VAR_CARRID.
PERFORM IMPRIMIR USING '' 'MAIN'.
ENDSELECT.

CALL FUNCTION 'CLOSE_FORM'
EXCEPTIONS
UNOPENED = 1
OTHERS = 2.
ENDFORM.

FORM ABRIR_FORMULARIO.
MOVE 1 TO ITCPO-TDCOPIES.
MOVE 'ESB6' TO ITCPO-TDDEST.
MOVE 'X' TO ITCPO-TDNEWID.
MOVE 'X' TO ITCPO-TDIMMED.
MOVE 'X' TO ITCPO-TDDELETE.
CALL FUNCTION 'OPEN_FORM'
EXPORTING
DEVICE = 'SCREEN'
DIALOG = 'X'
FORM = 'ZZIVAN10'
LANGUAGE = 'S'
OPTIONS = ITCPO
EXCEPTIONS
CANCELED = 1
DEVICE = 2
FORM = 3
OPTIONS = 4
UNCLOSED = 5
OTHERS = 6.
ENDFORM.

FORM IMPRIMIR USING ELEMENTO VENTANA.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = ELEMENTO
WINDOW = VENTANA
EXCEPTIONS
ELEMENT = 1
FUNCTION = 2
TYPE = 3
UNOPENED = 4
UNSTARTED = 5
WINDOW = 6
OTHERS = 7.
ENDFORM.

*&---------------------------------------------------------------------*
*& Module STATUS_0001 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module STATUS_0001 output.
SET PF-STATUS 'MENUINFORME'.
SET TITLEBAR 'SUPERTIT'.
endmodule. " STATUS_0001 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0001 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module USER_COMMAND_0001 input.
CASE SY-UCOMM.
WHEN 'INF'.
PERFORM SACAR_INFORME.
WHEN 'SAL'.
SET SCREEN 0. LEAVE SCREEN.
ENDCASE.
endmodule. " USER_COMMAND_0001 INPUT

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

Muchas gracias de antemano y cordiales saludos.

Buenos días a todos

hunterx 09/04/08 14:26:37

Buenas,

no tenés que definir dos páginas para mostrar los datos, si las dos son iguales borra la segunda. Sapscript imprime en una nueva hoja cuando se queda sin espacio en la primera.

La página sería un contenedor de las ventanas, le das el formato que quieras (con las page-windows) y ese es el formato con que se imprimen, sea 1 o n páginas.

Se definen más páginas cuando tenés varios formatos distintos, por ejemplo si queres que en un listado la primerá página se imprima con un encabezado pero el resto no, ahi definis una página con todos los elementos y el encabezado y la segunda página sin el encabezado. A la primera le indicas que la siguiente es la segunda pero a la segunda (creo, no recuerdo ahora porque no hago hace mucho) no le tenes que indicar que la siguiente es la primera.

Espero haberte ayudado, saludos.


Husos Horarios son GMT. La hora en este momento es 20:59:34.

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