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 ??
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
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.