Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

reg: select-options

Former Member
0 Kudos
416

hi all, please let me know this issue. I have this select options on my report and i have to select the open purchase orders on combination of any of this select-option, But i like to know how to write the combination for this select-option.

SELECT-OPTIONS : so_matnr FOR marc-matnr,

so_werks FOR marc-werks,

so_ebeln FOR ekpo-ebeln,

so_lifnr FOR ekko-lifnr,

so_ekgrp FOR ekko-ekgrp,

so_eindt FOR ekes-eindt.

example : i can select any of this combination, that is i can select only lifnr or material or werks or ebeln or ekgrp or eindt or ( matnr and lifnr ) or ( matnr and ebeln) like this all the combination, So i dont know how to fetch this combination on my select query.......

please let me know,

regards

krish

5 REPLIES 5

Former Member
0 Kudos
258

Hi Krishna,

Krishna wrote :+

+SELECT-OPTIONS : so_matnr FOR marc-matnr,+
+so_werks FOR marc-werks,+
+so_ebeln FOR ekpo-ebeln,+
+so_lifnr FOR ekko-lifnr,+
+so_ekgrp FOR ekko-ekgrp,+
+so_eindt FOR ekes-eindt.

In your select query write like this :

select  <fields you want>
    from <db table name>
    into  <int table name>
  where matnr in so_matnr
      and werks in so_werks
      and ebeln in so_ebeln
      and lifnr in so_lifnr
      and ekgrp in so_ekgrp
      and eindt in so_eindt .

It will select according to the input given irrespective of whether you have entered any values or not. Like if you dont enter any values it will fetch all records

Regards,

Swapna.

0 Kudos
258

hi swapna plzzzz check this and let me know

TABLES : marc, " Plant Data for Material

ekko, " Purchasing Document Header

ekpo, " Purchasing Document Item

ekes, " Vendor Confirmations

t458a, " Exception Messages in Material Requirements Planning

t458b. " Description of exception messages

*----


  • Types Declaration

*----


TYPES : BEGIN OF ty_marc,

matnr TYPE marc-matnr, " Material Number

werks TYPE marc-werks, " Plant

lvorm TYPE marc-lvorm,

END OF ty_marc.

TYPES : BEGIN OF ty_ekko,

ebeln TYPE ekko-ebeln, " Purchasing Document Number

loekz TYPE ekko-loekz,

lifnr TYPE ekko-lifnr, " Account Number of the Vendor

ekgrp TYPE ekko-ekgrp, " Purchasing group

END OF ty_ekko.

TYPES : BEGIN OF ty_ekpo,

ebeln TYPE ekpo-ebeln, " Purchasing Document Number

ebelp TYPE ekpo-ebelp, " Item Number of Purchasing Document

loekz TYPE ekpo-loekz,

matnr TYPE ekpo-matnr, " Material Number

werks TYPE ekpo-werks, " Plant

menge TYPE ekpo-menge, " Purchase order quantity

elikz TYPE ekpo-elikz,

END OF ty_ekpo.

TYPES : BEGIN OF ty_eket,

ebeln TYPE eket-ebeln,

ebelp TYPE eket-ebelp,

etenr TYPE eket-etenr,

eindt TYPE eket-eindt,

menge TYPE eket-menge,

wemng TYPE eket-wemng,

dabmg TYPE eket-dabmg,

END OF ty_eket.

TYPES : BEGIN OF ty_ekes,

ebeln TYPE ekes-ebeln, " Purchasing Document Number

ebelp TYPE ekes-ebelp, " Item Number of Purchasing Document

etens TYPE ekes-etens, " Sequential Number of Vendor Confirmation

ebtyp TYPE ekes-ebtyp, " Confirmation category

eindt TYPE ekes-eindt, " Delivery date of vendor confirmation

menge TYPE ekes-menge,

dabmg TYPE ekes-dabmg,

loekz TYPE ekes-loekz, " Vendor confirmation deletion indicator

END OF ty_ekes.

TYPES : BEGIN OF ty_t458a,

aussl TYPE t458a-aussl, " Exception message key

auskt TYPE t458a-auskt, " Exception message number

END OF ty_t458a.

TYPES : BEGIN OF ty_t458b,

aussl TYPE t458b-aussl, " Exception message key

auslt TYPE t458b-auslt, " Exception message text

END OF ty_t458b.

*----


  • Internal Table Declaration

*----


DATA : it_marc TYPE TABLE OF ty_marc,

it_ekko TYPE TABLE OF ty_ekko,

it_ekpo TYPE TABLE OF ty_ekpo,

it_eket TYPE TABLE OF ty_eket ,

it_ekes TYPE TABLE OF ty_ekes,

it_t458a TYPE TABLE OF ty_t458a,

it_t458b TYPE TABLE OF ty_t458b.

*----


  • Work Area Declaration

*----


DATA : wa_marc TYPE ty_marc,

wa_ekko TYPE ty_ekko,

wa_ekpo TYPE ty_ekpo,

wa_eket TYPE ty_eket ,

wa_ekes TYPE ty_ekes,

wa_t458a TYPE ty_t458a,

wa_t458b TYPE ty_t458b.

*----


  • Selection Screen

*----


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

SELECT-OPTIONS : so_matnr FOR marc-matnr,

so_werks FOR marc-werks,

so_ebeln FOR ekpo-ebeln,

so_lifnr FOR ekko-lifnr,

so_ekgrp FOR ekko-ekgrp,

so_eindt FOR ekes-eindt.

SELECTION-SCREEN END OF BLOCK b1.

START-OF-SELECTION .

IF ( so_matnr IS NOT INITIAL OR so_werks IS NOT INITIAL OR so_ebeln IS NOT INITIAL OR so_lifnr IS INITIAL OR so_ekgrp IS INITIAL ) AND so_eindt IS INITIAL .

IF so_matnr IS INITIAL AND so_werks IS INITIAL .

SELECT ebeln

ebelp

loekz

matnr

werks

menge

elikz

FROM ekpo

INTO TABLE it_ekpo

WHERE ebeln IN so_ebeln

AND loekz <> 'X'

AND elikz <> 'X' .

IF sy-subrc = 0 .

SORT it_ekpo[] BY ebeln ebelp .

SELECT matnr

werks

lvorm

FROM marc

INTO TABLE it_marc

FOR ALL ENTRIES IN it_ekpo

WHERE matnr = it_ekpo-matnr

AND werks = it_ekpo-werks .

IF sy-subrc = 0 .

SORT it_marc[] BY matnr werks .

DELETE ADJACENT DUPLICATES FROM it_marc COMPARING matnr werks .

ENDIF .

PERFORM eee_data_retrival.

ENDIF .

ELSE .

SELECT matnr

werks

lvorm

FROM marc

INTO TABLE it_marc

WHERE matnr IN so_matnr

AND werks IN so_werks.

IF sy-subrc = 0.

SORT it_marc[] BY matnr werks .

SELECT ebeln

ebelp

loekz

matnr

werks

menge

elikz

FROM ekpo

INTO TABLE it_ekpo

FOR ALL ENTRIES IN it_marc

WHERE matnr = it_marc-matnr

AND werks = it_marc-werks

AND ebeln = so_ebeln

AND loekz <> 'X'

AND elikz <> 'X' .

IF sy-subrc = 0.

SORT it_ekpo[] BY ebeln ebelp matnr werks .

PERFORM eee_data_retrival.

ENDIF.

ENDIF.

ENDIF .

ELSE .

ENDIF .

&----


*& Form EEE_DATA_RETRIVAL

&----


  • DATA RETRIVAL FORM EKET EKKO EKES

----


FORM eee_data_retrival .

SELECT ebeln

ebelp

etenr

eindt

menge

wemng

dabmg

FROM eket

INTO TABLE it_eket

FOR ALL ENTRIES IN it_ekpo

WHERE ebeln = it_ekpo-ebeln

AND ebelp = it_ekpo-ebelp .

IF sy-subrc = 0 .

SORT it_eket[] BY ebeln ebelp .

ENDIF .

SELECT ebeln

loekz

lifnr

ekgrp

FROM ekko

INTO TABLE it_ekko

FOR ALL ENTRIES IN it_ekpo

WHERE ebeln = it_ekpo-ebeln

AND EKGRP IN SO_EKGRP

AND LIFNR IN SO_LIFNR

AND loekz <> 'X' .

IF sy-subrc = 0.

SORT it_ekko[] BY ebeln .

ENDIF .

SELECT ebeln

ebelp

etens

ebtyp

eindt

menge

dabmg

loekz

FROM ekes

INTO TABLE it_ekes

FOR ALL ENTRIES IN it_ekpo

WHERE ebeln = it_ekpo-ebeln

AND ebelp = it_ekpo-ebelp

AND loekz <> 'X' .

IF sy-subrc = 0.

SORT it_ekes[] BY ebeln ebelp .

ENDIF.

ENDFORM. " EEE_DATA_RETRIVAL

Former Member
0 Kudos
258

for this you need to prepare a custom search help....

Former Member
0 Kudos
258

Hi!

Check out this sample code


REPORT z_sdn.

TABLES:
  marc,
  ekpo,
  ekko,
  ekes.

SELECT-OPTIONS : so_matnr FOR marc-matnr,
so_werks FOR marc-werks,
so_ebeln FOR ekpo-ebeln,
so_lifnr FOR ekko-lifnr,
so_ekgrp FOR ekko-ekgrp,
so_eindt FOR ekes-eindt.


DATA:
  BEGIN OF fs_tab,
    werks TYPE marc-werks,
    ebeln TYPE ekpo-ebeln,
    lifnr TYPE ekko-lifnr,
    ekgrp TYPE ekko-ekgrp,
    eindt TYPE ekes-eindt,
  END OF fs_tab.

DATA:
  t_tab LIKE
  TABLE OF
        fs_tab.


START-OF-SELECTION.

SELECT m~werks
       p~ebeln
       k~lifnr
       k~ekgrp
       s~eindt
  FROM ( ( ( marc AS m
           INNER JOIN ekpo AS p ON m~werks = p~werks )
           INNER JOIN ekko AS k ON p~ebeln = k~ebeln )
           INNER JOIN ekes AS s ON k~ebeln = s~ebeln )

  INTO TABLE t_tab
 WHERE m~werks IN so_werks
   AND p~ebeln IN so_ebeln
   AND k~lifnr IN so_lifnr
   AND k~ekgrp IN so_ekgrp
   AND s~eindt IN so_eindt.

Regards

Abhijeet

Former Member
0 Kudos
258

you can go for joins and then in where condition give your select criteria.

select field
  from  marc inner join.....
on........................
where 
werks in s_werks 
and lifnr in so_lifnr 
anf ekgrp in so_ekgrp 
.................

and also u can go for " for all entries' that will be better performance wise.

with luck,

pritam.