Error en Select

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

    #1

    Error en Select

    Hola tengo el siguiente codigo y me trae este error, por favor si me pueden ayudar estoy nueva en esto gracias

    DATA: BEGIN OF T_DATA1 OCCURS 0,
    BUKRS LIKE ZTHR_USUA_EMPL-BUKRS,
    PERNR LIKE ZTHR_USUA_EMPL-PERNR,
    USUARIO LIKE ZTHR_USUA_EMPL-USUARIO,
    FEC_ING LIKE ZTHR_USUA_EMPL-FEC_ING,
    TIP_CTA LIKE ZTHR_USUA_EMPL-TIP_CTA,
    FECHA LIKE ZTHR_USUA_EMPL-FECHA,
    HORA LIKE ZTHR_USUA_EMPL-HORA,
    NACHN LIKE PA0002-NACHN,
    ORGEH LIKE PA0001-ORGEH,
    PERSNO LIKE PA0002-PERNR,
    END OF T_DATA1.


    FORM OBTENER_DATOS.

    SELECT BUKRS PERNR TIP_CTA
    INTO T_DATA1
    FROM ZTHR_USUA_EMPL
    WHERE BUKRS IN S_TSOC
    AND PERNR IN S_TEMPL
    AND TIP_CTA IN TIP_CTA.
    APPEND T_DATA1.
    ENDSELECT.


    LOOP AT T_DATA1.
    CONTADOR = SY-TABIX.


    MODIFY T_DATA1 INDEX CONTADOR.

    ENDLOOP.

    ENDFORM.

    Este es el error :
    The IN operator with "TIP_CTA" is followed neither by an internal table nor by a value list.

  • mysmb2
    Senior Member
    • ene
    • 406

    #2
    SELECT BUKRS PERNR TIP_CTA
    INTO T_DATA1
    FROM ZTHR_USUA_EMPL
    WHERE BUKRS IN S_TSOC
    AND PERNR IN S_TEMPL
    AND TIP_CTA IN TIP_CTA.<-- fijate aca cambiale el nombre al selec-option o
    APPEND T_DATA1. rango que estas usando
    ENDSELECT.
    Sebastián Chiavia
    http://www.programacionabap.com.ar

    Comentario

    • Attilio Travascio
      Member
      • jun
      • 54

      #3
      Buenos dias, si no me equivo por el codigo que muestras el proble es con el operador IN estas haciendo referencia en el select a:

      AND TIP_CTA IN TIP_CTA.

      el campo al cual estas haciendo el IN, tambien lo estas colocando en las toma de campos.

      Me explico mejor: el PARAMETRO que declaraste con el select option TIP_CTA, se llama igual al campo de la tabla ZTHR_USUA_EMPL, es posible que eso te este trayendo incovenientes. Intenta cambiando el nombre del parametro.

      S.L.
      ATTILIO TRAVASCIO

      Comentario

      • Irua
        Member
        • jun
        • 83

        #4
        YA LES CAMBIE EL NOMBRE Y ESTE ES EL ERROR QUE ME ARROJA

        The IN operator with "T_CTA" is followed neither by an internal table nor by a value list.

        ESTO ME TIENE LA VIDA TRISTE

        Comentario

        • Mike
          Senior Member
          • mar
          • 144

          #5
          El error que te esta dando es que TIP_CTA LIKE ZTHR_USUA_EMPL-TIP_CTA,
          no debe ser de la estructura que aceptan el operador IN (es decir select-option o ranges, o una tabla con la estructura --> sign, option, low y high)

          Saludos.

          Comentario

          • mysmb2
            Senior Member
            • ene
            • 406

            #6
            tal cual dice nuestro compañero, cambiale el nombre del parametro por ejemplo so_T_CTA asi no te queda igual al campo de la tabla z.
            Sebastián Chiavia
            http://www.programacionabap.com.ar

            Comentario

            • Irua
              Member
              • jun
              • 83

              #7
              Le cambio el nombre y me arroja el mismo error, lo que quiero hacer, es llamar este campo y se refleje en el reporte

              The IN operator with "SO_T_CTA" is followed neither by an internal
              table nor by a value list.


              Aqui les mando todo el codigo a ver si que en otro lugar del programa


              TABLES: ZTHR_USUA_EMPL,PA0001,PA0002.

              ******* TABLA INTERNA******************
              DATA: BEGIN OF T_DATA1 OCCURS 0,
              BUKRS LIKE ZTHR_USUA_EMPL-BUKRS,
              PERNR LIKE ZTHR_USUA_EMPL-PERNR,
              USUARIO LIKE ZTHR_USUA_EMPL-USUARIO,
              FEC_ING LIKE ZTHR_USUA_EMPL-FEC_ING,
              TIP_CTA LIKE ZTHR_USUA_EMPL-TIP_CTA,
              FECHA LIKE ZTHR_USUA_EMPL-FECHA,
              HORA LIKE ZTHR_USUA_EMPL-HORA,
              NACHN LIKE PA0002-NACHN,
              ORGEH LIKE PA0001-ORGEH,
              PERSNO LIKE PA0002-PERNR,
              END OF T_DATA1.

              ******* VARIABLE**********************

              DATA: CONTADOR TYPE I.



              SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.

              SELECTION-SCREEN BEGIN OF LINE.
              SELECTION-SCREEN COMMENT 3(15) TEXT-003.
              SELECT-OPTIONS: s_tsoc FOR ZTHR_USUA_EMPL-BUKRS.
              SELECTION-SCREEN END OF LINE.

              SELECTION-SCREEN BEGIN OF LINE.
              SELECTION-SCREEN COMMENT 3(15) TEXT-004.
              SELECT-OPTIONS: s_templ FOR ZTHR_USUA_EMPL-PERNR.

              SELECTION-SCREEN END OF LINE.

              SELECTION-SCREEN END OF BLOCK b1.


              SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-002.

              SELECTION-SCREEN BEGIN OF LINE.
              SELECTION-SCREEN COMMENT 3(16) TEXT-005.
              PARAMETERS p_red AS CHECKBOX.
              SELECTION-SCREEN END OF LINE.

              SELECTION-SCREEN BEGIN OF LINE.
              SELECTION-SCREEN COMMENT 3(16) TEXT-006.
              PARAMETERS p_correo AS CHECKBOX.
              SELECTION-SCREEN END OF LINE.

              SELECTION-SCREEN END OF BLOCK b2.


              START-OF-SELECTION.
              PERFORM OBTENER_DATOS.
              PERFORM IMPRIMIR_DATOS.



              FORM OBTENER_DATOS.

              SELECT BUKRS PERNR TIP_CTA
              INTO T_DATA1
              FROM ZTHR_USUA_EMPL
              WHERE BUKRS IN S_TSOC
              AND PERNR IN S_TEMPL
              AND TIP_CTA IN so_T_CTA.
              APPEND T_DATA1.
              ENDSELECT.


              LOOP AT T_DATA1.
              CONTADOR = SY-TABIX.


              MODIFY T_DATA1 INDEX CONTADOR.

              ENDLOOP.

              ENDFORM.


              FORM IMPRIMIR_DATOS.

              WRITE:/1'SOCIEDAD', 15'NUM_EMPL',40 'NOMBRE', 60 'TIP0'.

              LOOP AT T_DATA1.
              WRITE:/1 T_DATA1-BUKRS,15 T_DATA1-PERNR, 40 T_DATA1-NACHN, 60 T_DATA1-TIP_CTA .
              ENDLOOP.

              ENDFORM.

              gracias

              Comentario

              • huanguelen
                Member
                • ago
                • 32

                #8
                y el SELECT-OPTIONS so_T_CTA donde está???
                La sociedad está rápida en reacción, lenta en reflexión...

                Comentario

                • Marco
                  Senior Member
                  • abr
                  • 141

                  #9
                  A verrr ....

                  holas...
                  Bueno el Operador "IN" se utiliza para una lista (ya sea un rango, un select-option o algo parecido)... Si tu comparas dentro de tu SELECT con IN y el campo a comparar no es una lista pues te puede dar error.
                  Si el campo SO_T_CTA o el T_CTA no son lista (rangos o select-option) no lo pongas en la seleccion como "IN" solo pon un "EQ" (solo iguala al campo).

                  Prueba con eso..

                  Sld,
                  Marcko

                  Comentario

                  Trabajando...