Select a tabla por 4 campos

Mi gente, no sabia como ponerle al titulo.

Tengo una duda…como pudiese hacer un solo select a una tabla Z en el diccionario, donde tengo 4 parametros posibles, los cuales pueden llenar 1 y dejar los otros en blancos o llenos,se que eso tiene un nombre pero no me acuerd (creo que es producto cartesiano)…y lo estoy buscando es evitar 16 select (que serian las 16 combinaciones posibles que hay con los 4 campos), si me explico ??? lo cuartos campos son:

PARAMETERS: p_fecha TYPE sy-datum,
            p_nroce TYPE zhr_solici_certi-nroce AS LISTBOX VISIBLE LENGTH 15,
            p_codig TYPE zhr_solici_certi-codig.

SELECT-OPTIONS: so_pernr FOR pa0001-pernr NO INTERVALS.

esos 4 campos son parametros de seleccion y como dije, se puede dar las 16 combinaciones…no quiero hacer eso, alguien conoce una forma en abap ???

por lo muy poco que recuerdo en java, se puede hacer algo pero medio lo intento y no me deja…alguien ha hecho algo parecido ??

@abapers que dicen ???

Canuto no entiendo tu pregunta, sorry!

Si hablas de cuatro parametros posibles, hazlo con select options.
El select funcionaria perfectamente.

Si quieres usar esos parametros, utilizar ranges y pasa los parametros al range, luego haz el select con los ragnes, y asi al igual que un select option, si no esta initial no sera tomado en cuenta para la seleccion.

Osea no se si a eso te refieres, quise responder con alternativas porque si me imagino que estas preguntando por lo que te acabo de responder, entonces ya con eso solucionas y no hacemos larto el post jejeje

2 Me gusta

tu eres de otro nivel @smota …gracias !!!

Lo unico, es que necesito sean algunos parametros…voy a ver que me invento, pero eso que tu comentas funciona bien !! por lo menos para el select.

mil gracias viejo !!!

2 Me gusta

Pero por qué? Necesitas que sean parametros y no select Options?

Al select option le puedes poner NO-INTERVALS NO EXTENSION y se parecerá a un parametro. No sé yo diciendo.

1 me gusta

es uno solo que necesitaba dejar parameters, porque quieren que aparezca como una listica ps…y eso mi pana @Haden_Yasser_ tal cual asi lo hice ps !!

al final el codigo quedo asi.


SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-000.

PARAMETERS: p_nroce TYPE zhr_solici_certi-nroce AS LISTBOX VISIBLE LENGTH 15.

SELECT-OPTIONS: so_pernr FOR pa0001-pernr NO INTERVALS,
                so_fecha FOR sy-datum NO INTERVALS NO-EXTENSION,
                so_codig FOR zhr_solici_certi-codig NO INTERVALS NO-EXTENSION.
SELECTION-SCREEN END OF BLOCK b1.

y el select

DATA: lr_nroce TYPE RANGE OF zhr_solici_certi-nroce,
        ls_nroce LIKE LINE OF lr_nroce.

  IF p_nroce IS NOT INITIAL.

    ls_nroce-sign = 'I'.
    ls_nroce-option = 'EQ'.
    ls_nroce-low = p_nroce.

    APPEND ls_nroce TO lr_nroce.
  ENDIF.

  SELECT * INTO TABLE gt_solici_certi FROM zhr_solici_certi
  WHERE pernr IN so_pernr AND
        datum IN so_fecha AND
        nroce IN lr_nroce AND
        codig IN so_codig.

@smota estas en otro nivel viejo !!!

3 Me gusta

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.