Ayuda de Búsqueda

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Eyre81
    Junior Member
    • ago
    • 11

    #1

    Ayuda de Búsqueda

    Hola, tengo un problema con una ayuda de SAP.

    Necesito crear en la SE11 una ayuda de búsqueda que me saque los datos de una tabla del diccionario de datos, pero con una condición. Es decir, la tabla almacena un historico mensual y yo quiero que en el match code del campo que asocie solo aparezca lo correspondiente al mes actual dependiendo de la fecha del sistema.

    Me podéis ayudar?

    Gracias por adelantado
  • Mauricio Hidalgo
    Senior Member
    • may
    • 481

    #2
    A ver si me logras entender:

    1° Parte creando un módulo de funciones que tenga la interfaz siguiente:

    FUNCTION ZAYUDA_MISDATOS.
    *"----------------------------------------------------------------------
    *"*"Interfase local
    *" TABLES
    *" RECORD_TAB STRUCTURE SEAHLPRES
    *" SHLP_TAB TYPE SHLP_DESCR_TAB_T
    *" CHANGING
    *" VALUE(CALLCONTROL) LIKE DDSHF4CTRL STRUCTURE DDSHF4CTRL
    *" VALUE(SHLP) TYPE SHLP_DESCR_T
    *"----------------------------------------------------------------------

    * Defines tu tabla interna en donde tendrás losa datos que quieres
    * tratar en el match-code
    data: begin of mis_datos occurs 0,
    campo1 like referencia,
    campo2 like referencia,
    campo3 like refrencia,
    end of mis_datos.

    * ESTE IF TIENE QUE IR NO LO BORRES.
    IF CALLCONTROL-STEP = 'SELECT'.

    * Puebla tu tabla interna, por ejemplo
    select * into corresponding fields of table mis_datos
    from <tu_tabla>
    where <tus_condiciones>.


    REFRESH RECORD_TAB.
    * ESTO PASA TUS DATOS A LA INTERFAZ DEL MATCH CODE
    * NO BORRAR.
    CALL FUNCTION 'F4UT_RESULTS_MAP'
    TABLES
    SHLP_TAB = SHLP_TAB
    RECORD_TAB = RECORD_TAB
    SOURCE_TAB = mis_datos
    CHANGING
    SHLP = SHLP
    CALLCONTROL = CALLCONTROL.
    CALLCONTROL-STEP = 'DISP'.
    ENDIF.
    ENDFUNCTION.

    2&#176; vas a tu match code
    En la secci&#243;n Obtenci&#243;n de Datos. No ingresas nada.
    En campo Exit Ayuda p.B&#250;sq. Ingresas la Funci&#243;n que creaste anteriormente.
    Y con eso ya tienes disponible los campos de la tabla interna de la funci&#243;n para que crees el match code tal como si lo estuvieras tomando direcatamente de una tabla o vista (m&#233;todo de Selecci&#243;n).

    Saludos.

    Mauricio Hidalgo
    Editado por última vez por Mauricio Hidalgo; 30/08/2006, 18:08:42.

    Comentario

    • Eyre81
      Junior Member
      • ago
      • 11

      #3
      Muchas gracias

      Muchisimas gracias, me funciona perfecto.

      Comentario

      • josemi06
        Junior Member
        • ago
        • 29

        #4
        Originalmente publicado por Mauricio Hidalgo
        A ver si me logras entender:

        1° Parte creando un módulo de funciones que tenga la interfaz siguiente:

        FUNCTION ZAYUDA_MISDATOS.
        *"----------------------------------------------------------------------
        *"*"Interfase local
        *" TABLES
        *" RECORD_TAB STRUCTURE SEAHLPRES
        *" SHLP_TAB TYPE SHLP_DESCR_TAB_T
        *" CHANGING
        *" VALUE(CALLCONTROL) LIKE DDSHF4CTRL STRUCTURE DDSHF4CTRL
        *" VALUE(SHLP) TYPE SHLP_DESCR_T
        *"----------------------------------------------------------------------

        * Defines tu tabla interna en donde tendrás losa datos que quieres
        * tratar en el match-code
        data: begin of mis_datos occurs 0,
        campo1 like referencia,
        campo2 like referencia,
        campo3 like refrencia,
        end of mis_datos.

        * ESTE IF TIENE QUE IR NO LO BORRES.
        IF CALLCONTROL-STEP = 'SELECT'.

        * Puebla tu tabla interna, por ejemplo
        select * into corresponding fields of table mis_datos
        from <tu_tabla>
        where <tus_condiciones>.


        REFRESH RECORD_TAB.
        * ESTO PASA TUS DATOS A LA INTERFAZ DEL MATCH CODE
        * NO BORRAR.
        CALL FUNCTION 'F4UT_RESULTS_MAP'
        TABLES
        SHLP_TAB = SHLP_TAB
        RECORD_TAB = RECORD_TAB
        SOURCE_TAB = mis_datos
        CHANGING
        SHLP = SHLP
        CALLCONTROL = CALLCONTROL.
        CALLCONTROL-STEP = 'DISP'.
        ENDIF.
        ENDFUNCTION.

        2° vas a tu match code
        En la sección Obtención de Datos. No ingresas nada.
        En campo Exit Ayuda p.Búsq. Ingresas la Función que creaste anteriormente.
        Y con eso ya tienes disponible los campos de la tabla interna de la función para que crees el match code tal como si lo estuvieras tomando direcatamente de una tabla o vista (método de Selección).

        Saludos.

        Mauricio Hidalgo


        Y como haces para pasarle parametros a la funcion? yo tengo definida la ayuda con una serie de parametros en el import, y uno en el export pero cuando me llama a la funcion, estos parametros estan vacios.
        Se te ocurre algo?

        Un saludo.

        Comentario

        Trabajando...