Problema SELECTION-SCREEN BEGIN OF SCREEN

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • luise32
    Member
    • oct
    • 71

    #1

    Problema SELECTION-SCREEN BEGIN OF SCREEN

    Buenos dias!

    Con la finalidad de tener un select option dentro de una dynpro he creado una dynpro con una subscreen y en el codigo especifique lo siguiente:

    Código:
    SELECTION-SCREEN BEGIN OF SCREEN 500 AS SUBSCREEN.
    SELECT-OPTIONS: p_fecha FOR sy-datum.
    SELECTION-SCREEN END OF SCREEN 500.
    En la dynpro coloque:

    Código:
    PROCESS BEFORE OUTPUT.
     MODULE STATUS_0100.
    CALL SUBSCREEN subscreen INCLUDING sy-repid '500'.
    
    PROCESS AFTER INPUT.
     MODULE USER_COMMAND_0100.
    CALL SUBSCREEN subscreen.
    Esto hizo que dentro de la subscreen coloque el select option tipo fecha. Todo iba bien hasta que empece a jugar con el dato que el usuario ingresaba y es que al darle ejecutar (coloque un boton en la dynpro que funciona con f8 para ejecutar el programa) este campo siempre esta vacio hasta que se ejecute totalmente el PAI. Esto implica que el usuario tenga que presionar Enter para que los valores sean cargados internamente.

    Como puedo forzar a la dynpro para que el usuario no tenga que presionar enter, para que funcione de igual forma que un report abap comun y corriente?

    Muchas Gracias!
    Consultor SAP ABAP
  • sconoredhot
    Senior Member
    • feb
    • 341

    #2
    hola

    podes probar agregando esto:

    CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
    EXPORTING
    functioncode = '=00'
    EXCEPTIONS
    function_not_supported = 1
    OTHERS = 2.
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.

    esto simula un enter.
    Saludos
    Sebas

    Desarrollador ABAP.

    Comentario

    • acesar
      Member
      • abr
      • 44

      #3
      Sino, agregá un botón que sea EJECUTAR. De esa forma te independizas se secuencia de carga de los parámetros y de esperar un ENTER y que el usuario lo ejecute cuando esté listo para hacerlo...es una simple opinión.

      Comentario

      • luise32
        Member
        • oct
        • 71

        #4
        Hola buenas tardes, gracias a ambos por sus respuestas.

        sconoredhot: Probare lo que me dices y apenas tenga el resultado te comento.

        acesar: No entendi lo que me propones, ojala me lo pudieras explicar nuevamente.



        Saludos!
        Consultor SAP ABAP

        Comentario

        • luise32
          Member
          • oct
          • 71

          #5
          Originalmente publicado por sconoredhot
          podes probar agregando esto:

          CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
          EXPORTING
          functioncode = '=00'
          EXCEPTIONS
          function_not_supported = 1
          OTHERS = 2.
          IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.

          esto simula un enter.
          Saludos
          Hola a todos, lamento informar que este truco no funciono, una lastima!

          Alguna otra idea?

          Saludos!
          Consultor SAP ABAP

          Comentario

          • Spainnavar
            Member
            • sep
            • 53

            #6
            Creo que esta función te valdra... busca ejemplos por internet que seguro que tienes con ella

            K_CMPERS_MULTIPLE_SELECTION

            Suerte,
            Un saludo

            Comentario

            • Spainnavar
              Member
              • sep
              • 53

              #7
              Más concretamente este link...
              http://scn.sap.com/thread/293407

              Un saludo

              Comentario

              • luise32
                Member
                • oct
                • 71

                #8
                Hola a todos,

                Ya resolvi mi problema, tenia un error en el codigo y es el siguiente:

                En el PAI tenia:

                Código:
                PROCESS AFTER INPUT.
                  MODULE user_command_0400.
                  CALL SUBSCREEN subscreen.
                La forma correcta es:

                Código:
                PROCESS AFTER INPUT.
                  CALL SUBSCREEN subscreen.
                  MODULE user_command_0400.
                Al ejecutar el user command primero no se cargaban los valores en las variables y es por esta razon que no se tenian en cuenta a menos que el usuario presione Enter.

                Gracias por sus aportes!
                Consultor SAP ABAP

                Comentario

                Trabajando...