#1
|
|||
|
|||
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 |
#2
|
|||
|
|||
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. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|