Search Help en Table Control

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • zonanet
    Senior Member
    • mar
    • 195

    #1

    Search Help en Table Control

    Saludos!!

    Tengo un problema con un search help en un columna de un table control, la cosa es que tengo que filtrar el contenido del search help de una columna según el dato que contenga la columna anterior, logro hacerlo para la primera fila pero para la segunda y siguientes me filtra según el valor de la primer fila.

    Alguién tendrá una solución a mi problema.

    gracias a todos.
  • DavidXD_XD
    Moderator
    • ago
    • 1255

    #2
    Hola ... hasle un READ TABLE a la tabla interna segun la linea en la que se encuentra tu table control ... tctrl-current_line y ahi aplicas el search help
    David Carballido Córdova

    Comentario

    • zonanet
      Senior Member
      • mar
      • 195

      #3
      Hola David!!

      así lo estoy haciendo pero me toma el primer registro de la tabla interna, te paso el código por si le puedes echar un ojo y orientarme en lo que tengo mal


      Flow Logic:

      Código:
      PROCESS BEFORE OUTPUT.
      
        MODULE STATUS_0200.
      
        MODULE INIT_200.
        LOOP AT IT_PRINTER2 INTO WA_PRINTERS2 WITH CONTROL TC200
                CURSOR TC200-CURRENT_LINE.
      
          MODULE TC200_MOVE.
        ENDLOOP.
      
      PROCESS AFTER INPUT.
      
        MODULE EXIT2 AT EXIT-COMMAND.
      
        LOOP AT IT_PRINTER2.
          CHAIN.
            FIELD: ZPRINTERS-BUKRS MODULE BUKRS_CHK,
                      ZPRINTERS-VKORG MODULE VKORG_CHK,
                      ZPRINTERS-VSTEL MODULE VSTEL_CHK,
                      ZPRINTERS-PTYPE MODULE PTYPE_CHK,
                      ZPRINTERS-KSCHL MODULE KSCHL_CHK.
      
            MODULE PRINTERS_MODIFY ON CHAIN-REQUEST.
          ENDCHAIN.
      
          MODULE DELETE200.
        ENDLOOP.
      
        MODULE USER_COMMAND_0200.
      
      PROCESS ON VALUE-REQUEST.
        FIELD ZVENTAS_PRINTERS-VSTEL MODULE VSTEL_HELP.
        FIELD ZVENTAS_PRINTERS-PTYPE MODULE PTYPE_HELP.
        FIELD ZVENTAS_PRINTERS-KSCHL MODULE KSCHL_HELP.
        FIELD ZVENTAS_PRINTERS-PARVW MODULE PARVW_HELP.
      MODULE KSCHL_HELP.
      Código:
      *&---------------------------------------------------------------------*
      *&      Module  KSCHL_HELP  INPUT
      *&---------------------------------------------------------------------*
      MODULE KSCHL_HELP INPUT.
      
        CLEAR:   I_RETURN_TAB, IT_T685T, IT_PRINTER2.
        REFRESH: I_RETURN_TAB, IT_T685T.
      
        FIELD_VALUE-FIELDNAME = 'ZPRINTERS-KSCHL'.
        APPEND FIELD_VALUE TO DYNPRO_VALUES.
      
        CALL FUNCTION 'DYNP_VALUES_READ'
             EXPORTING
                  DYNAME             = PROGNAME
                  DYNUMB             = DYNNUM
                  TRANSLATE_TO_UPPER = 'X'
             TABLES
                  DYNPFIELDS         = DYNPRO_VALUES.
      
        READ TABLE DYNPRO_VALUES INDEX 1 INTO FIELD_VALUE.
        READ TABLE IT_PRINTER2 INDEX TC200-CURRENT_LINE.
      
        SELECT
            VTEXT
            KAPPL
            KSCHL
          INTO CORRESPONDING FIELDS OF WA_T685T
          FROM T685T
          WHERE SPRAS = 'EN'
            AND KAPPL = IT_PRINTER2-PTYPE.
          APPEND WA_T685T TO IT_T685T.
        ENDSELECT.
      
        CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
             EXPORTING
                  RETFIELD    = 'ZPRINTERS-KSCHL'
                  DYNPPROG    = SY-REPID
                  DYNPNR      = SY-DYNNR
                  DYNPROFIELD = 'CONDITION TYPE'
                  VALUE_ORG   = 'S'
             TABLES
                  VALUE_TAB   = IT_T685T
                  RETURN_TAB  = I_RETURN_TAB.
      
        READ TABLE I_RETURN_TAB INDEX 1.
        ZPRINTERS-KSCHL = I_RETURN_TAB = I_RETURN_TAB-FIELDVAL.
      
      ENDMODULE.                 " KSCHL_HELP  INPUT
      Saludos y gracias por la ayuda!

      Comentario

      • DavidXD_XD
        Moderator
        • ago
        • 1255

        #4
        Hola ... la primera recomendacion es con esta sentencia

        Código:
        SELECT
              VTEXT
              KAPPL
              KSCHL
            INTO CORRESPONDING FIELDS OF TABLE IT_T685T
            FROM T685T
            WHERE SPRAS = 'EN'
              AND KAPPL = IT_PRINTER2-PTYPE.
        La segunda es: has logrado debugear el codigo??? ... como tu mencionas siempre agarra la primer campo en toda fila y columna, la idea es hacerle un debugg y ver xq no agarra si estas realizando el READ TABLE con el current_line, como te digo .... tal vez el current_line no esta haciendo bien su trabajo, el caso extremo es agregar dentro de la tabla interna crear un campo que sirva de contador: 1 2 3 4 5 6 ... n, y asi leer el READ TABLE itab INDEX cont., me comentas como te fue sino para realizar un programa que realize esa aplicacion y pasartela
        David Carballido Córdova

        Comentario

        • zonanet
          Senior Member
          • mar
          • 195

          #5
          Qué tal David!

          Te comento que debuggeando el Search Help en la parte del READ TABLE me obtiene el primer registro de la tabla interna usando el TC-Current_line, lo que más extraño me parece es que si me pone el resultado en el registro en el presiono el search help (2do. 3ero, etc.).


          Si tienes tiempo y me puedes ayudar con la parte para generar la tabla interna con el index para posicionarme an base a eso te agradeceré mucho.


          Saludos.

          Comentario

          • DavidXD_XD
            Moderator
            • ago
            • 1255

            #6
            Listo ... voy a realizarlo en la noche aver como me va y t paso el codigo ^^
            David Carballido Córdova

            Comentario

            • zonanet
              Senior Member
              • mar
              • 195

              #7
              David!!

              Se me pasó comentarte que ya solucioné el problema del Search Help, lo logré usando la sentencia GET CURSOR LINE vl_line, y se la agregué al read table de esta manera: READ TABLE ti_tabla INDEX vl_line y funciona correctamente.


              De nuevo gracias por el tiempo e interés por ayudar!!!

              Comentario

              • DavidXD_XD
                Moderator
                • ago
                • 1255

                #8
                Pucha Zonanet ... taba a medio codigo por la disponibilidad q tengo en el horario, pero q bueno q solucionaste el problema ... un saludo
                David Carballido Córdova

                Comentario

                Trabajando...