GET CURSOR FIELD para expertos

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Hikari
    Member
    • oct
    • 50

    #1

    GET CURSOR FIELD para expertos

    Hola a todos.. me pasa algo raro
    estoy tratando de implementar el GET CURSOR FIELd en el PAI dentro
    del USER_COMMAND pero no me trae nada en la variable para el nombre
    del campo, no se q esta pasando lo implemento en otro prog y si funciona..

    ah me trae 4 en el sy-subrc...

    HELP
  • francesc
    Member
    • mar
    • 58

    #2
    Prueba a forzar en PBO la posición del cursor y ver si te la devuelve ( debería obviamente ). El sy-subrc = 4 indica que no tienes el cursor posicionado en ningún campo de pantalla

    Comentario

    • DavidXD_XD
      Moderator
      • ago
      • 1255

      #3
      Hola, dale una mirada a este post ...

      David Carballido Córdova

      Comentario

      • Hikari
        Member
        • oct
        • 50

        #4
        Hola.. gracias por sus comentarios, sigo con el trouble,...
        se me hace bien raro, no se si influye en algo si los campos
        estan en la pestaña de un tabstrip...

        Les agradezco de antemano su ayuda.

        Comentario

        • francesc
          Member
          • mar
          • 58

          #5
          Creo que no se puede, en la ayuda sap pone:
          "Otherwise, GET CURSOR FIELD returns only names of global fields, regardless of whether they are addressed directly (i.e. by "WRITE"), by field symbols or by reference parameters."
          Es decir que probablemente al estar en un tabstrip ya es lógico que no devuelva nada.

          Podrias probar con alguna de las funciones que lee campos de dynpros: del estilo de 'DYNPRO_FIELD_GET' u otras. Pueba a buscar en la se37 por *dynpro* si esta no te funciona, alguna debe haber, seguro

          Comentario

          • gugutin
            Member
            • jul
            • 71

            #6
            Hola Hikari
            Prueba con esto, es posible que te ayude, yo no le he usado con tabscript, pero si en table controls.


            DATA: lv_dynpvalue LIKE dynpread-fieldvalue.
            DATA: lv_repid LIKE sy-repid.
            DATA: lv_dynnr LIKE sy-dynnr.

            *-- Obtenemos el valor del campo de pantalla deseado
            lv_repid = sy-repid.
            lv_dynnr = sy-dynnr.

            CALL FUNCTION 'GET_DYNP_VALUE'
            EXPORTING
            i_field = 'I_TABCONTROL-DESCC'
            i_repid = lv_repid
            i_dynnr = sy-dynnr
            CHANGING
            o_value = lv_dynpvalue
            EXCEPTIONS
            OTHERS = 1.

            * Modificamos el Valor del campo
            if lv_dynpvalue = '?'.
            lv_dynpvalue = 'XXXXXXXXXXXXXXXXXXXXX'.
            endif.

            * Enviamos el valor del campo a pantalla
            CALL FUNCTION 'SET_DYNP_VALUE'
            EXPORTING
            i_field = 'I_TABCONTROL-DESCC'
            i_repid = lv_repid
            i_dynnr = lv_dynnr
            i_value = lv_dynpvalue.

            Saludos

            Comentario

            • Hikari
              Member
              • oct
              • 50

              #7
              Si, creo q no se puede hacer lo que yo queria,, lo ultimo
              que me postearon creo q sirve para actualizar campos en una dynpro,
              lo que queria era usar get cursor field para obtener el campo
              donde estuviera posicionado el cursor con el evento Enter...

              Comoquiera les agradezco bastante a todos los que me comentaron
              algo....

              Saludos.. aqui andamos..

              Comentario

              • tuma
                Junior Member
                • ene
                • 2

                #8
                Tenía el mismo problema, el GET CURSOR FIELD me traía siempre blanco.

                El problema es que al ser una SUBSCREEN el user_command lo hacía en la SCREEN principal.
                La solución para mi caso, es hacer el GET CURSOR FIELD en el PAI de la SUBSCREEN guardándolo en un campo global y ya después lo tienes para utilizarlo en el user_command de la SCREEN principal.

                Comentario

                Trabajando...