Autor Tema: Mi primer formulario. Help me please.  (Leído 7298 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado usuarionavarra

  • Usuario Jr
  • **
  • Mensajes: 25
    • Ver Perfil
Mi primer formulario. Help me please.
« en: 04 de Abril de 2008, 11:06:31 am »
Hola, Buenos días a todos:

Vereis, estoy aprendiendo a hacer formularios. Acabo de hacer mi primer formulario. Es un formulario muy sencillo, lo único que tiene que hacer es mostrar el contenido de la tabla de ejemplo que trae los entornos SAP, llamada SFLIGHT (Tabla de vuelos)

Me he encontrado con dos problemas al hacer mi primer formulario:

Primer Problema) La primera fila de datos me la duplica (¿le ha pasado a alguien algo parecido o sabe como solucionarlo?) Me refiero a la ventana MAIN, donde saca propiamente dicho el contenido de la tabla SFLIGHT Pues bien, la primera fila de dicha tabla de diccionario, me la duplica. En todas las pruebas que he hecho me hace lo mismo (Duplica la primera fila de datos)

Segundo prblema) No se ven todas las filas de la tabla del diccionario de datos SFLIGHT en la ventana MAIN. Al haber definido una sóla página se supone que si no caben todas las filas de la tabla de didccionario de datos en el formulario (ventana MAIN), subiendo bajando el scroll, deberían poder verse todas las filas ¿no es así? ¿alomejor es que tengo que activar el scrolling? ¿Si fuera así como debo de actibar el scrolling? He comprobado que al ejecutar el formulario, en la parte superior derecha aparecen cuatro botones, uno para indicar primera página, otro para indicar siguiente página, otro para indicar página anterior y otra para indicar última página. Creo que me falta de activar algo o de añadir algo de código en algún sitio. (Yo creo que con definir una sóla página y activando el scrolling valdría, pero no sé como activarlo)

Muchas gracias de antemano a todos y un cordial saludo.

Desconectado Carlos

  • Usuario Sr.
  • ****
  • Mensajes: 177
    • Ver Perfil
Re: Mi primer formulario. Help me please.
« Respuesta #1 en: 04 de Abril de 2008, 01:01:16 pm »
Hola.

Vamos a ir paso a paso.

Lo primero, con que estás haciendo los formularios? Sapscript o Smartforms.

Si no te salen todas las filas (no te entran, me imagino) es porque tienes que preparar la segunda hoja. Por lo que me da la impresión que estás utilizando Sapscript.

Y otra pregunta, suponiendo lo del Sapscript, y que no estas con una copia del standar, estarás haciendo tu mismo los OPEN_FORM, WRITE, y CLOSE, no?

Igual es bueno que nos enseñes el código para ver cual puede ser el problema de la primera fila que se te repite.

Un saludo.




Desconectado usuarionavarra

  • Usuario Jr
  • **
  • Mensajes: 25
    • Ver Perfil
Re: Mi primer formulario. Help me please.
« Respuesta #2 en: 04 de Abril de 2008, 02:12:39 pm »
Hola, muchas gracias por responderme. Efectivamente, estoy haciendo el formulario con Sapscript.

He creado una segunda página. El contenido de la segunda página he colocado las mismas page windows que para la primera. En la primera página he colocado en next page la segunta, y en la segunda página he colocado en next pag la primera.

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

Sigo teniendo el mismo problema de duplicación de filas. A continuación te 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

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

Tengo asociada una transaccón al report para poder ejecutarlo. No sé si a la fuerza tengo que crear un modul pool para poder ejecutarlo a través de una trasacción.

Muchas gracias,de nuevo, por todo y cordiales saludos.