Crear un matchcodes o ayuda de busquedas

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Irua
    Member
    • jun
    • 83

    #1

    Crear un matchcodes o ayuda de busquedas

    Hola quisiera crear un matchcodes con dos campos de una tabla Z, y se visualice de la forma anexa

    gracias


    Archivos Adjuntos
  • DavidXD_XD
    Moderator
    • ago
    • 1255

    #2
    Hola, esa ayuda de busqyeda la puedes crear en la SE11, si pertenecen ambos campos a una misma tabla es mucho mas sencillo y crearias una ayuda de busqueda elemental, espero te ayude
    David Carballido Córdova

    Comentario

    • isratol
      Member
      • jul
      • 63

      #3
      tambien puedes revisar en el elemento de datos, la pestaña de "Ambito de valores" ahi puedes agregar la tabla, o los valores que necesites... eso es mas simple...

      ya si necesitas un matchcode mas complicado, si crealo desde la se11 como dice david..

      Saludos..
      Israel Toledo

      Comentario

      • Sil12
        Junior Member
        • feb
        • 14

        #4
        Ayuda para búsqueda (Matchcode) por código

        Hi!

        Les pongo un ejemplo para crear una ayuda de búsqueda para un reporte.
        *******DECLARACIÓN DE VARIABLES*********
        DATA: BEGIN OF t_values OCCURS 0,
        value(60) TYPE c.
        DATA: END OF t_values.

        DATA: BEGIN OF t_fields OCCURS 0.
        INCLUDE STRUCTURE help_value.
        DATA END OF t_fields.
        DATA: valor(20) TYPE C.
        DATA: BEGIN OF t_match OCCURS 0,
        secre LIKE ZAC_CG_SEC-SECRE,
        END OF t_match.

        DATA: BEGIN OF S_CG,
        FICTR LIKE ZAC_CG_SEC-FICTR.
        DATA: END OF S_CG.
        DATA: IT_CG LIKE S_CG OCCURS 0 WITH HEADER LINE.

        *****EVENTO PARA QUE SE MUESTRE LA AYUDA *********
        AT SELECTION-SCREEN ON VALUE-REQUEST FOR Secre-LOW.

        REFRESH: t_values, t_fields.
        CLEAR : t_values, t_fields.

        t_fields-fieldname = 'SECRE'.
        t_fields-tabname = 'ZAC_CG_SEC'.
        t_fields-selectflag = 'X'.
        APPEND t_fields. CLEAR t_fields.

        SELECT *
        INTO CORRESPONDING FIELDS OF TABLE t_match
        FROM ZAC_CG_SEC.

        SORT t_match by secre.
        DELETE ADJACENT DUPLICATES FROM t_match.

        LOOP AT t_match.
        t_values-value = t_match-SECRE.
        APPEND t_values.
        ENDLOOP.

        CALL FUNCTION 'HELP_VALUES_GET_WITH_TABLE'
        EXPORTING
        * cucol = 20
        * curow = 4
        tabname = 'T_MATCH'
        fieldname = 'secre'
        IMPORTING
        select_value = SECRE
        TABLES
        fields = t_fields
        valuetab = t_values.


        Y si lo necesitan para una dynpro pueden ponerlo todo en un FORM, como en el ejemplo.
        ******* EVENTO DEL DYNPRO DONDE SE ANEXA AL CAMPO.*******
        PROCESS ON VALUE-REQUEST.
        FIELD: R_ZACSC-MCKEY MODULE MATCH_CODE.

        ********MODULO DE DONDE SE LLAMA AL FORM.***************
        MODULE MATCH_CODE INPUT.
        PERFORM f4_for_mckey USING R_ZACSC-MCKEY.
        ENDMODULE. " MATCH_CODE INPUT

        ********FORM DONDE SE CONSTRUYE LA AYUDA **************
        FORM f4_for_mckey USING P_R_ZACSC_MCKEY.

        DATA: BEGIN OF t_values OCCURS 0,
        value(60) TYPE c.
        DATA: END OF t_values.

        DATA: BEGIN OF t_fields OCCURS 0.
        INCLUDE STRUCTURE help_value.
        DATA END OF t_fields.
        DATA: valor(20) TYPE C.
        DATA: BEGIN OF t_match OCCURS 0,
        mckey LIKE ZACMC-MCKEY,
        mcdmc LIKE ZACMC-MCDMC,
        mcfal LIKE ZACMC-MCFAL,
        mcfbj LIKE ZACMC-MCFBJ,
        END OF t_match.

        REFRESH: t_values, t_fields.
        CLEAR : t_values, t_fields.

        t_fields-fieldname = 'MCKEY'.
        t_fields-tabname = 'ZACMC'.
        t_fields-selectflag = 'X'.
        APPEND t_fields. CLEAR t_fields.

        t_fields-fieldname = 'MCDMC'.
        t_fields-tabname = 'ZACMC'.
        t_fields-selectflag = ''.
        APPEND t_fields. CLEAR t_fields.

        t_fields-fieldname = 'MCFAL'.
        t_fields-tabname = 'ZACMC'.
        t_fields-selectflag = ''.
        APPEND t_fields. CLEAR t_fields.

        t_fields-fieldname = 'MCFBJ'.
        t_fields-tabname = 'ZACMC'.
        t_fields-selectflag = ''.
        APPEND t_fields. CLEAR t_fields.

        SELECT *
        INTO CORRESPONDING FIELDS OF TABLE t_match
        FROM ZACMC
        where MCSAC = 'APRM' OR MCSMO = 'MODM' AND MCFBJ >= sy-datum.

        LOOP AT t_match.
        t_values-value = t_match-MCKEY.
        APPEND t_values.
        t_values-value = t_match-MCDMC.
        APPEND t_values.
        t_values-value = t_match-MCFAL.
        APPEND t_values.
        t_values-value = t_match-MCFBJ.
        APPEND t_values.
        ENDLOOP.

        CALL FUNCTION 'HELP_VALUES_GET_WITH_TABLE'
        EXPORTING
        cucol = 20
        curow = 4
        tabname = 'T_MATCH'
        fieldname = 'MCKEY'
        IMPORTING
        select_value = P_R_ZACSC_MCKEY
        TABLES
        fields = t_fields
        valuetab = t_values.


        ENDFORM. " f4_for_mckey
        ---

        Comentario

        • cvargas
          Junior Member
          • jun
          • 7

          #5
          Agrupamiento en reporte

          Saludos

          Necesito ayuda, tengo un ALV al cual tengo que colocarle un quiebre o agrupamiento. De que manera puedo hacer para realizar dicho reporte.
          Alguien podria brindar un ejemplo.

          Carlos

          Comentario

          • DavidXD_XD
            Moderator
            • ago
            • 1255

            #6
            Hola, te refieres a mostrar subtotales???
            David Carballido Córdova

            Comentario

            • cvargas
              Junior Member
              • jun
              • 7

              #7
              Originalmente publicado por DavidXD_XD
              Hola, te refieres a mostrar subtotales???
              Claro, por ejemplo a agrupar las facturas por cliente

              juan perez
              factura 001-00000010 $ 1000.00
              factura 001-00000011 $ 1000.00
              total cliente 2000.00
              pedro perez
              factura 001-00000020 $ 2000.00
              factura 001-00000021 $ 4000.00
              total ciente $ 6000.00

              Este diseño es algo similar a lo que me piden


              Carlos

              Comentario

              • nachosds
                Member
                • dic
                • 48

                #8
                Originalmente publicado por cvargas
                Claro, por ejemplo a agrupar las facturas por cliente

                juan perez
                factura 001-00000010 $ 1000.00
                factura 001-00000011 $ 1000.00
                total cliente 2000.00
                pedro perez
                factura 001-00000020 $ 2000.00
                factura 001-00000021 $ 4000.00
                total ciente $ 6000.00

                Este diseño es algo similar a lo que me piden


                Carlos

                Muy buenas Carlos,
                Para mostrar ese listado no seria necesario utilizar un ALV. Con Write podriamos mostrar ese listado de la siguiente manera:


                sort it_tabla by nombre
                LOOP AT it_tabla.

                AT NEW nombre.
                write:/ it_tabla-nombre.
                write:/ 'factura' it_tabla-factura, '$' it_tabla-importe.

                d_total = it_tabla-importe.

                ENDAT.

                write:/ 'factura' it_tabla-factura, '$' it_tabla-importe.

                d_total = d_total + it_tabla-importe.

                AT END OF nombre.
                d_end = c_x.
                ENDAT.

                IF d_end = c_x.
                write:/ 'total cliente' d_total.
                uline.
                ENDIF.

                ENDLOOP.

                Este codigo no he podido probarlo porque no tenemos la maquina operativa.
                Si tienes alguna duda o ves algun error en el codigo, no dudes en preguntar.

                Saludos!
                http://www.mnsystem.com/

                Comentario

                Trabajando...