Foro de programación ABAP

SAP / ABAP => Formularios => Mensaje iniciado por: usuarionavarra en 07 de Abril de 2008, 12:21:36 pm

Título: Mi primer formulario con SAPscript (Ayuda por favor)
Publicado por: usuarionavarra en 07 de Abril de 2008, 12:21:36 pm
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
Título: Re: Mi primer formulario con SAPscript (Ayuda por favor)
Publicado por: Nuria en 07 de Abril de 2008, 01:36:15 pm
Es posible que la ventana donde pintas las posiciones no tenga marcado el pincho de Ventana principal.

De esta forma actuará como si fuera una MAIN.
Título: Re: Mi primer formulario con SAPscript (Ayuda por favor)
Publicado por: Carlos en 07 de Abril de 2008, 04:37:25 pm
Hola.

Me imagino que al CALL FUNCTION 'WRITE_FORM' le estarás haciendo un loop o algo, porque creo que le falta código.

Otra cosa que se me ocurre con la primera línea que se te duplica es que el problema sea en el formulario, que lo repitas en algún punto. Podrías debuggear el formulario paso a paso y ver porque se duplica.

Un saludo.