Creación de un listado de clientes

Buenas,

Habria que debuguearlo un poco, pero lo que mas me llama la atencion es que no veo que estés agregando los registros a la tabla LISTADO.

Si esta tabla no tiene registros el ALV no tiene nada para mostrar. O sea, ir pasando los campos que vas obteniendo a LISTADO-STCD1, LISTADO-ORTO1, y APPEND LISTADO por cada vuelta del select.

Eso como para empezar, luego intentaria reemplazar la parte de select -end select for hacer selects INTO TABLE (guardar los datos en tablas internas) y luego hacer FOR ALL ENTRIES, pero esto ya no es obligatorio. Empezaria por lo que te dije arriba, ir debugueando y solucionando a prueba y error.

Saludos,
Sebastián

tu de pronto no sabes como hacer la consulta para que me muestre interlocutor vendedor

Si, estoy intentando orientarte para que lo puedas hacer.

Por otro lado tampoco estás completando los datos VBAK-VKBUR y VBAK-VKGRP, por eso ese select no te trae datos.

Por favor intenta modificar esas dos cosas que te comenté asi vemos si te trae datos ahora.

Gracias.

form datos.

  select name1 ort01 stcd1
           into (kna1-name1, kna1-ort01, kna1-stcd1)
           from kna1
           where kunnr = knvp-kunnr.

    select single pernr
             into knvp-pernr
             from knvp
            where kunnr = knvp-kunnr
             and parvw = 've'.


    if sy-subrc ne 0.
      clear knvp-pernr.
    endif.
    vkgrp = knvp-pernr.
    select single pernr
            into pa0001-pernr
            from pa0001
            where pernr = knvp-pernr.

    select vkbur vkgrp pltyp
           into (knvv-vkbur, knvv-vkgrp, knvv-pltyp)
           from knvv
           where vkbur eq knvv-vkbur
            and vkgrp eq knvv-vkgrp.
            listado-name1 = kna1-name1.
            listado-ort01 = kna1-ort01.
            listado-stcd1 = kna1-stcd1.
            listado-pernr = knvp-pernr.
            listado-parvw = 've'.
            listado-kunnr = knvp-kunnr.
            listado-vkbur = knvv-vkbur.
            listado-vkgrp = knvv-vkgrp.
            listado-pltyp = knvv-pltyp.
            append listado.
            clear listado.
         endselect.
        endselect.
  perform campos_alv.
  perform ordenar_alv.
  perform layout.
  perform alv_report.
endform.

Mira @sconoredhot intente arreglar y hacer el debugging y aun nada me trae datos

@luisa_aldana2, por favor lee cómo pegar códigos correctamente.

@SidV A disculpa ya lo leí y aprendí como hacerlo la próxima vez
gracias

El problema general de tu código, es que haces selects, con un filtro vacío.

Por ejemplo, en estos dos primeros selects, nunca estás llenando previamente el valor ‘knvp-kunnr’.

Cuando se hace un programa, generalmente el primer select que haces filtras por el valor que viene en la pantalla de seleccion, por lo que vi, creaste dos parametros.

PARAMETERS: VKBUR TYPE KNVV-VKBUR DEFAULT ‘008’ OBLIGATORY,
VKGRP TYPE KNVV-VKGRP DEFAULT ‘004’ OBLIGATORY.

El primer select deberia ser usando esos dos valores, quizas primero hacer el select a la KNVV, de ahi me traigo los KUNNR, y ya teniendo el valor de KUNNR puedes hacer el select a la KNA1.

Espero que te sirva!
Saludos.

Esto fueron las dos maneras cual de las dos maneras es mas adecuado gracias por la ayuda

    SELECT VKBUR PLTYP
           INTO (KNVV-VKBUR, KNVV-PLTYP)
           FROM KNVV
            WHERE KUNNR EQ KUNNR
             AND  VKGRP EQ VKGRP.
      
      
       SELECT VKBUR PLTYP VKGRP
           INTO (KNVV-VKBUR, KNVV-PLTYP)
           FROM KNVV
            WHERE VKBUR EQ VKGRP
             AND  KUNNR EQ KUNNR
             AND  VKGRP EQ VKGRP.

Hola,

Entiendo que la segunda es mejor porque contiene los dos parámetros que creaste.

De todas maneras, te falta un tercer parámetro, el KUNNR.

Consulta aparte, no te comentaron de la nomenclatura?

Generalmente un parámetro comienza con P_*. Claro que no es obligatorio.

Entonces, quedaría algo así_

PARAMETERS: P_VKBUR TYPE KNVV-VKBUR DEFAULT '008' OBLIGATORY,
                        P_KUNNR TYPE KNVV-KUNNR,
                        P_VKGRP TYPE KNVV-VKGRP DEFAULT '004' OBLIGATORY.

   SELECT VKBUR PLTYP VKGRP
       INTO (KNVV-VKBUR, KNVV-PLTYP)
       FROM KNVV
        WHERE VKBUR EQ P_VKGRP
         AND  KUNNR EQ P_KUNNR
         AND  VKGRP EQ P_VKGRP.

Espero que te sirva!
Saludos.

1 me gusta

ten en cuenta que haces el select a 3 campos y en into solo 2, supongo que es cosa del copy&paste

Si, yo copié el select de ella, y no me di cuenta de eso, es cierto, también hace falta el into para la tercer variable. Gracias :smiley:

VKBUR PLTYP VKGRP

Pero no necesito seleccionar por número de deudor(kunnr) solo por oficina de ventas y grupo de vendedor. por eso en los parámetros le puse solo esos dos datos.
O debo ponerlo obligatoriamente para llamarlo en el select

No, te lo puse porque vi que filtrabas por KUNNR en el select.

Entonces seria asi:

   SELECT VKBUR PLTYP VKGRP
       INTO (KNVV-VKBUR KNVV-PLTYP, KNVV-VKGRP)
       FROM KNVV
        WHERE VKBUR EQ VKGRP
         AND  VKGRP EQ VKGRP.

Saludos.

@sconoredhot ahí ya sigo con el select para que me traiga el kunnr o el siguiente select es para la tabla knvp

y, ya te convendria tener el KUNNR para poder hacer los selects a la KNA1 con el cliente.

De hecho, te lo puedes traer en el select que acabamos de hacer:

SELECT KUNNR VKBUR PLTYP VKGRP
INTO (KNVV-KUNNR, KNVV-VKBUR, KNVV-PLTYP, KNVV-VKGRP)
FROM KNVV
WHERE VKBUR EQ VKGRP
AND VKGRP EQ VKGRP.

Y luego con el KNVV-KUNNR puedes hacer el resto de los selects que necesites.

ME DICEN QUE PARA TRAER EL INTERLOCUTOR VENDEDOR debo ingresar primero a la tabla knvp de ahí traer el campo parvw (funcion interlocutor) de ahí hacer creo otro select con tabla pa0001(registro maestro personal)y de esa manera me trae el interlocutor vendedor pero no lo entiendo porfa necesito ayuda para realizar este proceso gracias

Hola,

No me cierra lo que comentas, y te muestro el motivo:

Si es así como dices, puedes hacer el select a la KNVP pero en lugar de traerte el campo PARVW, deberias traerte el campo PERNR. Por otro lado, la tabla KNVP no tiene los campos VKGRP y VKBUR, entonces vas a tener que ver con que campos filtrar (posiblemente VKORG y VTWEG).

Luego, con ese campo PERNR, si puedes hacer el select a la PA001, pero esta tabla, no veo que tenga un campo que diga interlocutor / Vendedor / etc. No se si despues de esta se debe acceder a otra tabla de HR.

Quizas deberias pedir que te den mas detalle de lo que necesitan.

Saludos,
Sebastián

2 Me gusta

Hola a todos amigos, luisa_aldana2 has intentado usar la SQVI, hace mucho tiempo deje de hacer reportes desde 0, ya todos los inicio desde allí, claro, luego edito el o los select.

@Dlanor20777 no he intentado al igual soy nueva en abap que no he tenido la oportunidad de usarlo pero si es una manera practica de desarrollar un reporte me encantaría aprender.
Gracias