TABLE CONTROL :confused:

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • romario2
    Senior Member
    • abr
    • 233

    #1

    TABLE CONTROL :confused:

    Hola Foro,

    tengo un table control que muestra datos, pero el problema es que muestra
    el mismo registro muchas veces repetidas.He debugado y veo que la tabla interna que lo alimenta está correcta.
    Quizás influye que los campos del TC sean definidos como campos solos y no tablainterna-campo?

    Gracias de antemano
  • DavidXD_XD
    Moderator
    • ago
    • 1255

    #2
    Holas, pues debe aver algúna variable en memoria guardada ahi, prueba colocandole en el PBO un REFRESH al TABLE CONTROL, algo asi:

    Código:
    REFRESH CONTROL 'TCTRL_VIEW' FROM SCREEN '0xxx'.
    Donde TCRTL_VIEW es la tabla de control y 0xxx es el dynpro al que pertenece el table control, espero te pueda ayudar
    David Carballido Córdova

    Comentario

    • romario2
      Senior Member
      • abr
      • 233

      #3
      Informa Muchos Registros En Lugar De 1 Solo

      Hola Foro,

      gracias David, pero persiste el error. Yo solo quiero informar un registro del Table control y me informa un montón con el mismo valor.

      He metido EXITS i añadí CLEARS sin resultado.

      Publico el código:


      LOGICA PROCESO Dynpro
      *******************************************
      LOOP AT TAB_ZPS_TC with control TABLA CURSOR TABLA-CURRENT_LINE.

      MODULE inserir_taula.

      ENDLOOP.


      PROCESS AFTER INPUT.

      *Primer es fal un LOOP a TAB_ZPS_TC que degut a que està associada a
      *TABLE_CONTROL equival a recorre el table control de la pantalla
      *recuperant les dades introduides.


      LOOP AT TAB_ZPS_TC.
      CHAIN.
      FIELD: TAB_ZPS_TC-POSID,
      TAB_ZPS_TC-POST1,
      TAB_ZPS_TC-TXT30.

      *La opció ON CHAIN-REQUEST ens determina que només s’executatarà el
      *modul si hem modificat un registre.
      MODULE validacions ON CHAIN-REQUEST.
      ENDCHAIN.

      MODULE informar_camps.

      ENDLOOP.

      ************************************************** *****


      MODULE inserir_taula OUTPUT.

      REFRESH CONTROL 'TABLA' FROM SCREEN '9001'.
      CLEAR tab_zps_tc.
      REFRESH tab_zps_tc.
      CLEAR: posid, post1, txt30.


      tab_zps_tc-posid = p_posid2.
      tab_zps_tc-post1 = p_post12.
      tab_zps_tc-txt30 = p_txt302.


      posid = tab_zps_tc-posid.
      post1 = tab_zps_tc-post1.
      txt30 = tab_zps_tc-txt30.


      LOOP AT SCREEN.
      IF screen-name = 'POSID'.
      screen-input = space.
      MODIFY SCREEN.
      EXIT.
      ENDIF.

      ENDLOOP.



      ENDMODULE.



      MODULE informar_camps INPUT.

      DATA l_zps_tc TYPE est_zps_tc.
      CLEAR l_zps_tc.
      CLEAR tab_zps_tc.
      REFRESH tab_zps_tc.


      tab_zps_tc-posid = posid.
      tab_zps_tc-post1 = post1.
      tab_zps_tc-txt30 = txt30.

      READ TABLE tab_zps_tc INTO l_zps_tc
      INDEX tabla-current_line.
      IF sy-subrc <> 0.

      INSERT table tab_zps_tc.

      ELSE.
      MODIFY tab_zps_tc INDEX tabla-current_line.

      ENDIF.

      ENDMODULE. " INFORMAR_CAMPS INPUT

      Comentario

      • DavidXD_XD
        Moderator
        • ago
        • 1255

        #4
        Holas, como te comente intenta hacerle el REFRESH pero al final de la rutina MODULE del PBO, ahhh y x cierto la tabla que tienes que indicarle es de la tabla de control, algo asi:

        Código:
        REFRESH CONTROL 'TABLA' FROM SCREEN '9001'.
        David Carballido Córdova

        Comentario

        • romario2
          Senior Member
          • abr
          • 233

          #5
          La incidencia persiste

          Gracias por tu ayuda, lo puse al final, hay que poner nombre de la Table control. Sigue sin funcionar.

          Tengo los datos correctos en una tabla interna, no logro traspasarlos a la Table control

          Comentario

          • DavidXD_XD
            Moderator
            • ago
            • 1255

            #6
            Waaaa me confundi , la tabla de control era TABLA, voy a ver el codigo aver si sacamos algun error

            PD: veo q no estas llenando la tabla interna en el PBO, pues no veo ningun INSERT y tampoco APPEND, esa pantalla 9001 a la que llamas debe tener una pantalla anterior donde seguramente llenas la tabla interna, pero cuando entras al MODULE inserir_taula en el primer LOOP blanqueas la tabla interna

            CLEAR tab_zps_tc.
            REFRESH tab_zps_tc.
            David Carballido Córdova

            Comentario

            • romario2
              Senior Member
              • abr
              • 233

              #7
              ERROR persiste

              Hola David,

              agradezco mucho tu ayuda!

              Tendrías un código completo de un table control senzillo que funcione?
              Le tengo que pasar datos que vienen de una tabla interna.

              Los campos del Table control manual los puedo definir como it_tabla-campo?
              (campo de tabla interna)

              Saludos abaperos!

              Comentario

              • zonanet
                Senior Member
                • mar
                • 195

                #8
                Originalmente publicado por romario2
                Hola David,

                agradezco mucho tu ayuda!

                Tendrías un código completo de un table control senzillo que funcione?
                Le tengo que pasar datos que vienen de una tabla interna.

                Los campos del Table control manual los puedo definir como it_tabla-campo?
                (campo de tabla interna)

                Saludos abaperos!

                Prueba con este manual, está en la sección de descargas:



                Saludos

                Comentario

                Trabajando...