Parametro tipo ranges para call function

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • minerva0112
    Senior Member
    • nov
    • 116

    #1

    Parametro tipo ranges para call function

    Necesito pasarle a un call fucntion parametros de entrada que se obtiene de un select option para luego dentro del funcion realizar un select haciendo un where IN , que tipo de variable se tendria que utilizar para lograr esto

    mil gracias
  • mysmb2
    Senior Member
    • ene
    • 406

    #2
    Hola,
    Si pasas una tabla como parametro y la definis con una estructura igual a un rango(con campos sing, low, higth, option...) te va a servir.

    Saludos
    Sebastián Chiavia
    http://www.programacionabap.com.ar

    Comentario

    • minerva0112
      Senior Member
      • nov
      • 116

      #3
      Originalmente publicado por mysmb2
      Hola,
      Si pasas una tabla como parametro y la definis con una estructura igual a un rango(con campos sing, low, higth, option...) te va a servir.

      Saludos
      gracias pero me da error cuando le voy hacer un loop al parametro

      Comentario

      • mysmb2
        Senior Member
        • ene
        • 406

        #4
        Supongo que el loop al que te referis es en el momento de armar el rango con el que comparas el campo en el select.

        Podrias especificar que error te arroja y copiar el bloque de codigo?
        Sebastián Chiavia
        http://www.programacionabap.com.ar

        Comentario

        • Mauricio Hidalgo
          Senior Member
          • may
          • 481

          #5
          Dame un correo para enviarte un instructivo.

          Comentario

          • minerva0112
            Senior Member
            • nov
            • 116

            #6
            hola es irua.alca@gmail.com

            Comentario

            • minerva0112
              Senior Member
              • nov
              • 116

              #7
              Originalmente publicado por mysmb2
              Supongo que el loop al que te referis es en el momento de armar el rango con el que comparas el campo en el select.

              Podrias especificar que error te arroja y copiar el bloque de codigo?


              SELECT * INTO CORRESPONDING FIELDS OF TABLE it_data_proj FROM zvps_data_proy
              WHERE pspid IN pi_proj.

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

              Comentario

              • Mauricio Hidalgo
                Senior Member
                • may
                • 481

                #8
                Me rebotó el correo.

                Pero bueno yo cacho que te falta tipificar (asignar un tipo de datos a tus tabla) en la interfaz.

                Podrías mostrar los comentarios que están al principio de la función.

                Comentario

                • minerva0112
                  Senior Member
                  • nov
                  • 116

                  #9
                  Originalmente publicado por Mauricio Hidalgo
                  Me rebotó el correo.

                  Pero bueno yo cacho que te falta tipificar (asignar un tipo de datos a tus tabla) en la interfaz.

                  Podrías mostrar los comentarios que están al principio de la función.
                  disculpa rectifico el correo irua.alcala@gmail.com

                  *"----------------------------------------------------------------------
                  *"*"Interfase local
                  *" IMPORTING
                  *" REFERENCE(PI_FECHA) TYPE SY-DATUM
                  *" REFERENCE(PI_DIV) TYPE ZEPS_DIV
                  *" REFERENCE(PI_PRCTR) TYPE ZEPS_PRCTR
                  *" REFERENCE(PI_PROJ) TYPE ZEPS_PROJ
                  *" TABLES
                  *" IT_DATA_PROJ STRUCTURE ZEPS_DATA_PROYECTO
                  *" IT_DATA_CUENTAS STRUCTURE ZEFI_CUENTAS OPTIONAL
                  *"----------------------------------------------------------------------

                  Comentario

                  • mysmb2
                    Senior Member
                    • ene
                    • 406

                    #10
                    proba crear un rango con los valores de la tabla parametro y comprara ese rango en el select.

                    Originalmente publicado por minerva0112
                    SELECT * INTO CORRESPONDING FIELDS OF TABLE it_data_proj FROM zvps_data_proy
                    WHERE pspid IN pi_proj.

                    The IN operator with "PI_PROJ" is followed neither by an internal table nor by a value list.
                    Sebastián Chiavia
                    http://www.programacionabap.com.ar

                    Comentario

                    • Mauricio Hidalgo
                      Senior Member
                      • may
                      • 481

                      #11
                      Pi_proj Lo Tienes En Los Parametros Import. Si Lo Vas A Pasar Por Import El Tipo De Datos "zeps_proj" Tiene Que Ser Un Elemento De Datos Del Tipo "tipo Tabla"..


                      Sino Pi_proj Lo Debes Cambiar A Ala Pestaña Tables.


                      Se Entiende?

                      Comentario

                      • minerva0112
                        Senior Member
                        • nov
                        • 116

                        #12
                        Originalmente publicado por Mauricio Hidalgo
                        Pi_proj Lo Tienes En Los Parametros Import. Si Lo Vas A Pasar Por Import El Tipo De Datos "zeps_proj" Tiene Que Ser Un Elemento De Datos Del Tipo "tipo Tabla"..


                        Sino Pi_proj Lo Debes Cambiar A Ala Pestaña Tables.


                        Se Entiende?

                        A ver en el codigo donde estoy realizando el reporte estoy utlizando esta funcion


                        SORT p_proy.
                        DELETE ADJACENT DUPLICATES FROM p_proy.
                        LOOP AT p_proy.
                        it_proj-low = p_proy-low.
                        it_proj-high = p_proy-high.
                        APPEND it_proj.
                        ENDLOOP.

                        SORT p_div.
                        DELETE ADJACENT DUPLICATES FROM p_div.
                        LOOP AT p_div.
                        it_div-low = p_div-low.
                        it_div-high = p_div-high.
                        APPEND it_div.
                        ENDLOOP.

                        SORT p_prctr.
                        DELETE ADJACENT DUPLICATES FROM p_prctr.
                        LOOP AT p_prctr.
                        it_prctr-low = p_prctr-low.
                        it_prctr-high = p_prctr-high.
                        APPEND it_prctr.
                        ENDLOOP.


                        CALL FUNCTION 'ZPS_STATUS_PROYECTO'
                        EXPORTING
                        pi_fecha = p_fecha
                        pi_div = it_div
                        pi_prctr = it_prctr
                        pi_proj = it_proj
                        tables
                        it_data_proj = it_data_proyecto.



                        Luego dentro de la funcion
                        se quiere esto

                        SELECT * INTO CORRESPONDING FIELDS OF TABLE it_data_proj FROM zvps_data_proy WHERE pspid IN pi_proj.

                        donde pi_proj esta declarado en la pestaña de import con el tipo de estructura ya que no me toma otro tipo de dato.

                        gracias

                        Comentario

                        • Mauricio Hidalgo
                          Senior Member
                          • may
                          • 481

                          #13
                          Mueve PI_PROJ a TABLES en la función.

                          Comentario

                          • minerva0112
                            Senior Member
                            • nov
                            • 116

                            #14
                            Originalmente publicado por Mauricio Hidalgo
                            Mueve PI_PROJ a TABLES en la función.

                            listo gracias

                            Comentario

                            Trabajando...