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: 
Read only

How to alter Select Query while altering selectionscreen for same output?

Former Member
0 Likes
528

Hi,

i have to change the selection screen fields with some new fields , but i dont know how to change the selection query accordingly, because i need the same output with the same fields but with a different set of fields in the selection screen.

The original code is

TYPES: BEGIN OF ty_output,

mblnr TYPE mseg-mblnr,

mjahr TYPE mseg-mjahr,

zeile TYPE mseg-zeile,

bwart TYPE mseg-bwart,

werks TYPE mseg-werks,

lgort TYPE mseg-lgort,

ebeln TYPE mseg-ebeln,

ebelp TYPE mseg-ebelp,

lfbnr TYPE mseg-lfbnr,

lfpos TYPE mseg-lfpos,

sjahr TYPE mseg-sjahr,

dmbtr TYPE mseg-dmbtr,

menge TYPE mseg-menge,

matnr TYPE mseg-matnr,

mtart TYPE mara-mtart,

matkl TYPE mara-matkl,

bismt TYPE mara-bismt,

meins TYPE mara-meins,

bedat TYPE ekko-bedat,

waers TYPE ekko-waers,

wkurs TYPE ekko-wkurs,

verkf TYPE ekko-verkf,

  • EFFWR TYPE EKPO-EFFWR,

tax TYPE ekpo-effwr,

maktx TYPE makt-maktx,

budat TYPE mkpf-budat,

usnam TYPE mkpf-usnam,

m_menge TYPE ekpo-menge,

ablad TYPE mseg-ablad,

wempf TYPE mseg-wempf,

END OF ty_output.

TYPES: BEGIN OF ty_mseg_103,

mblnr TYPE mseg-mblnr,

mjahr TYPE mseg-mjahr,

zeile TYPE mseg-zeile,

bwart TYPE mseg-bwart,

werks TYPE mseg-werks,

lgort TYPE mseg-lgort,

ebeln TYPE mseg-ebeln,

ebelp TYPE mseg-ebelp,

lfbnr TYPE mseg-lfbnr,

lfpos TYPE mseg-lfpos,

sjahr TYPE mseg-sjahr,

dmbtr TYPE mseg-dmbtr,

menge TYPE mseg-menge,

matnr TYPE mseg-matnr,

mtart TYPE mara-mtart,

matkl TYPE mara-matkl,

bismt TYPE mara-bismt,

meins TYPE mara-meins,

bedat TYPE ekko-bedat,

waers TYPE ekko-waers,

wkurs TYPE ekko-wkurs,

verkf TYPE ekko-verkf,

  • EFFWR TYPE EKPO-EFFWR,

tax TYPE ekpo-effwr,

maktx TYPE makt-maktx,

budat TYPE mkpf-budat,

usnam TYPE mkpf-usnam,

m_menge TYPE ekpo-menge,

ablad TYPE mseg-ablad,

wempf TYPE mseg-wempf,

END OF ty_mseg_103.

TYPES: BEGIN OF ty_mseg_105,

mblnr TYPE mseg-mblnr,

mjahr TYPE mseg-mjahr,

zeile TYPE mseg-zeile,

bwart TYPE mseg-bwart,

werks TYPE mseg-werks,

lgort TYPE mseg-lgort,

ebeln TYPE mseg-ebeln,

ebelp TYPE mseg-ebelp,

lfbnr TYPE mseg-lfbnr,

lfpos TYPE mseg-lfpos,

sjahr TYPE mseg-sjahr,

dmbtr TYPE mseg-dmbtr,

menge TYPE mseg-menge,

matnr TYPE mseg-matnr,

mtart TYPE mara-mtart,

matkl TYPE mara-matkl,

bismt TYPE mara-bismt,

meins TYPE mara-meins,

bedat TYPE ekko-bedat,

waers TYPE ekko-waers,

wkurs TYPE ekko-wkurs,

verkf TYPE ekko-verkf,

effwr TYPE ekpo-effwr,

tax TYPE ekpo-effwr,

maktx TYPE makt-maktx,

budat TYPE mkpf-budat,

ablad TYPE mseg-ablad,

wempf TYPE mseg-wempf,

END OF ty_mseg_105.

----


  • DATA: Begin with W_ *

----


DATA : it_fcat TYPE slis_t_fieldcat_alv. " alv field catalog

DATA : listhead TYPE slis_t_listheader WITH HEADER LINE.

DATA: event TYPE slis_t_event WITH HEADER LINE.

----


  • INTERNAL TABLES: Begin with IT_ *

----


DATA : it_output TYPE STANDARD TABLE OF ty_output WITH KEY mblnr mjahr,

it_mseg_103 TYPE STANDARD TABLE OF ty_mseg_103,

it_mseg_105 TYPE STANDARD TABLE OF ty_mseg_103,

it_mseg_106 TYPE STANDARD TABLE OF ty_mseg_103, " LNTDEV1 ADDED

it_mara TYPE STANDARD TABLE OF ty_mara,

it_ekko TYPE STANDARD TABLE OF ty_ekko,

it_ekpo TYPE STANDARD TABLE OF ty_ekpo,

it_makt TYPE STANDARD TABLE OF ty_makt,

it_mkpf TYPE STANDARD TABLE OF ty_mkpf WITH KEY mblnr.

----


  • WORKAREAS: Begin with WA_ *

----


DATA : wa_fcat LIKE LINE OF it_fcat.

DATA : wa_output LIKE LINE OF it_output,

wa_mara LIKE LINE OF it_mara,

wa_ekko LIKE LINE OF it_ekko,

wa_ekpo LIKE LINE OF it_ekpo,

wa_makt LIKE LINE OF it_makt,

wa_mkpf LIKE LINE OF it_mkpf,

wa_mseg_103 LIKE LINE OF it_mseg_103,

wa_mseg_105 LIKE LINE OF it_mseg_105,

wa_mseg_106 LIKE LINE OF it_mseg_106. " LNTDEV1 ADDED

DATA : w_menge LIKE ekpo-menge.

----


  • FIELD-SYMBOLS: Begin with FS_ *

----


----


  • PARAMETERS: Begin with PR_ *

----


SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.

PARAMETERS : pr_werks LIKE mseg-werks OBLIGATORY.

SELECT-OPTIONS : so_budat FOR mkpf-budat.

SELECTION-SCREEN END OF BLOCK b1.

----


  • SELECT-OPTIONS: Begin with SO_ *

----


SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.

SELECT-OPTIONS : so_mtart FOR mara-mtart.

SELECT-OPTIONS : so_matkl FOR mara-matkl.

SELECT-OPTIONS : so_matnr FOR mara-matnr.

SELECT-OPTIONS : so_bismt FOR mara-bismt.

SELECT-OPTIONS : so_ebeln FOR mseg-ebeln.

SELECT-OPTIONS : so_verkf FOR ekko-verkf.

SELECT-OPTIONS : so_bedat FOR ekko-bedat.

SELECT-OPTIONS : so_mblnr FOR mseg-mblnr.

SELECTION-SCREEN END OF BLOCK b2.

*AT SELECTION-SCREEN.

*

*SO_BUDAT-HIGH = SO_BUDAT-HIGH + 1.

----


  • Query for getting all the Document Segment: Material data from MSEG *

  • Table which having Movement Types 103 and put into it_mseg table, *

  • Filtering by reference document and material document number *

  • Filtering by selection criteria (Material Docu No, Purchase order *

  • and Plant) *

----


----


START-OF-SELECTION.

----


SELECT pmblnr smblnr p~mjahr zeile bwart lfbnr werks lgort ebeln

ebelp lfpos sjahr dmbtr usnam menge sbudat pmatnr q~mtart

pablad pwempf

FROM mseg AS p INNER JOIN mara AS q

ON pmatnr = qmatnr

JOIN mkpf AS s ON smblnr EQ pmblnr

INTO CORRESPONDING FIELDS OF

TABLE it_mseg_103

WHERE bwart EQ 103

AND p~matnr IN so_matnr

AND werks EQ pr_werks

AND ebeln IN so_ebeln

AND q~mtart IN so_mtart

AND p~mblnr IN so_mblnr

AND s~budat IN so_budat.

**

IF sy-subrc = 0.

ENDIF.

SELECT pmblnr smblnr p~mjahr zeile bwart lfbnr werks lgort ebeln

ebelp lfpos sjahr dmbtr usnam menge sbudat pmatnr q~mtart

pablad pwempf

FROM mseg AS p INNER JOIN mara AS q

ON pmatnr = qmatnr

JOIN mkpf AS s ON smblnr EQ pmblnr

INTO CORRESPONDING FIELDS OF

TABLE it_mseg_105

WHERE bwart EQ 105 OR bwart EQ 104 OR bwart EQ 124 OR bwart EQ 124

AND p~matnr IN so_matnr

AND werks EQ pr_werks

AND ebeln IN so_ebeln

AND q~mtart IN so_mtart

AND p~mblnr IN so_mblnr

AND s~budat IN so_budat.

IF sy-subrc = 0.

ENDIF.

LOOP AT IT_MSEG_103 INTO WA_MSEG_103.

READ TABLE IT_MSEG_105 INTO WA_MSEG_105 WITH KEY LFBNR =

WA_MSEG_103-MBLNR.

IF SY-SUBRC <> 0.

APPEND WA_MSEG_103 TO IT_OUTPUT.

ENDIF.

ENDLOOP.

SELECT pmblnr smblnr p~mjahr zeile bwart lfbnr werks lgort ebeln

ebelp lfpos sjahr dmbtr usnam menge sbudat pmatnr q~mtart

pablad pwempf

FROM mseg AS p INNER JOIN mara AS q

ON pmatnr = qmatnr

JOIN mkpf AS s ON smblnr EQ pmblnr

INTO CORRESPONDING FIELDS OF

TABLE it_mseg_106

WHERE bwart EQ 106

AND p~matnr IN so_matnr

AND werks EQ pr_werks

AND ebeln IN so_ebeln

AND q~mtart IN so_mtart

AND p~mblnr IN so_mblnr

AND s~budat IN so_budat.

LOOP AT it_mseg_103 INTO wa_mseg_103.

READ TABLE it_mseg_106 INTO wa_mseg_106 WITH KEY

lfbnr = wa_mseg_103-mblnr.

IF sy-subrc = 0.

APPEND wa_mseg_106 TO it_output.

clear wa_mseg_106.

ENDIF.

ENDLOOP.

Present selection criteria is

1. Plant

2. Posting Date

3. Material Type

4. Material Group

5. Material No.

6. Old Material No.

7. PO Order No.

8. Old PO No.

9. PO Date

10. Material Document No.

New selection criteria is

1. PO no.

2. PO date

3. PO value (Ex: >=10000 <=50000)

4. Purch org

5. Doc type

6. Vendor

7. Material

8. Account assignment category

9. Order

3 REPLIES 3
Read only

Former Member
0 Likes
480

Please use (check right side markup windo) to paste your code. Without it, it is difficult to read your code.

If you want select query based on selection screen parameters, you can use IF - ENDIF.

Say for example, if selection parameter material number is given, then write select query based on material number into i_tab

else if selection parameter document number is input then select query based on doc number into i_tab

Read only

0 Likes
480

Hi,

i have to change the selection screen fields with some new fields , but i dont know how to change the selection query accordingly, because i need the same output with the same fields but with a different set of fields in the selection screen.

The original code is


TYPES: BEGIN OF ty_output, mblnr TYPE mseg-mblnr, mjahr TYPE mseg-mjahr, zeile TYPE mseg-zeile, bwart TYPE mseg-bwart, werks TYPE mseg-werks, lgort TYPE mseg-lgort, ebeln TYPE mseg-ebeln, ebelp TYPE mseg-ebelp, lfbnr TYPE mseg-lfbnr, lfpos TYPE mseg-lfpos, sjahr TYPE mseg-sjahr, dmbtr TYPE mseg-dmbtr, menge TYPE mseg-menge, matnr TYPE mseg-matnr, mtart TYPE mara-mtart, matkl TYPE mara-matkl, bismt TYPE mara-bismt, meins TYPE mara-meins, bedat TYPE ekko-bedat, waers TYPE ekko-waers, wkurs TYPE ekko-wkurs, verkf TYPE ekko-verkf, * EFFWR TYPE EKPO-EFFWR, tax TYPE ekpo-effwr, maktx TYPE makt-maktx, budat TYPE mkpf-budat, usnam TYPE mkpf-usnam, m_menge TYPE ekpo-menge, ablad TYPE mseg-ablad, wempf TYPE mseg-wempf, END OF ty_output. TYPES: BEGIN OF ty_mseg_103, mblnr TYPE mseg-mblnr, mjahr TYPE mseg-mjahr, zeile TYPE mseg-zeile, bwart TYPE mseg-bwart, werks TYPE mseg-werks, lgort TYPE mseg-lgort, ebeln TYPE mseg-ebeln, ebelp TYPE mseg-ebelp, lfbnr TYPE mseg-lfbnr, lfpos TYPE mseg-lfpos, sjahr TYPE mseg-sjahr, dmbtr TYPE mseg-dmbtr, menge TYPE mseg-menge, matnr TYPE mseg-matnr, mtart TYPE mara-mtart, matkl TYPE mara-matkl, bismt TYPE mara-bismt, meins TYPE mara-meins, bedat TYPE ekko-bedat, waers TYPE ekko-waers, wkurs TYPE ekko-wkurs, verkf TYPE ekko-verkf, * EFFWR TYPE EKPO-EFFWR, tax TYPE ekpo-effwr, maktx TYPE makt-maktx, budat TYPE mkpf-budat, usnam TYPE mkpf-usnam, m_menge TYPE ekpo-menge, ablad TYPE mseg-ablad, wempf TYPE mseg-wempf, END OF ty_mseg_103. TYPES: BEGIN OF ty_mseg_105, mblnr TYPE mseg-mblnr, mjahr TYPE mseg-mjahr, zeile TYPE mseg-zeile, bwart TYPE mseg-bwart, werks TYPE mseg-werks, lgort TYPE mseg-lgort, ebeln TYPE mseg-ebeln, ebelp TYPE mseg-ebelp, lfbnr TYPE mseg-lfbnr, lfpos TYPE mseg-lfpos, sjahr TYPE mseg-sjahr, dmbtr TYPE mseg-dmbtr, menge TYPE mseg-menge, matnr TYPE mseg-matnr, mtart TYPE mara-mtart, matkl TYPE mara-matkl, bismt TYPE mara-bismt, meins TYPE mara-meins, bedat TYPE ekko-bedat, waers TYPE ekko-waers, wkurs TYPE ekko-wkurs, verkf TYPE ekko-verkf, effwr TYPE ekpo-effwr, tax TYPE ekpo-effwr, maktx TYPE makt-maktx, budat TYPE mkpf-budat, ablad TYPE mseg-ablad, wempf TYPE mseg-wempf, END OF ty_mseg_105. *----------------------------------------------------------------------* * DATA: Begin with W_ * *----------------------------------------------------------------------* DATA : it_fcat TYPE slis_t_fieldcat_alv. " alv field catalog DATA : listhead TYPE slis_t_listheader WITH HEADER LINE. DATA: event TYPE slis_t_event WITH HEADER LINE. *----------------------------------------------------------------------* * INTERNAL TABLES: Begin with IT_ * *----------------------------------------------------------------------* DATA : it_output TYPE STANDARD TABLE OF ty_output WITH KEY mblnr mjahr, it_mseg_103 TYPE STANDARD TABLE OF ty_mseg_103, it_mseg_105 TYPE STANDARD TABLE OF ty_mseg_103, it_mseg_106 TYPE STANDARD TABLE OF ty_mseg_103, " LNTDEV1 ADDED it_mara TYPE STANDARD TABLE OF ty_mara, it_ekko TYPE STANDARD TABLE OF ty_ekko, it_ekpo TYPE STANDARD TABLE OF ty_ekpo, it_makt TYPE STANDARD TABLE OF ty_makt, it_mkpf TYPE STANDARD TABLE OF ty_mkpf WITH KEY mblnr. *----------------------------------------------------------------------* * WORKAREAS: Begin with WA_ * *----------------------------------------------------------------------* DATA : wa_fcat LIKE LINE OF it_fcat. DATA : wa_output LIKE LINE OF it_output, wa_mara LIKE LINE OF it_mara, wa_ekko LIKE LINE OF it_ekko, wa_ekpo LIKE LINE OF it_ekpo, wa_makt LIKE LINE OF it_makt, wa_mkpf LIKE LINE OF it_mkpf, wa_mseg_103 LIKE LINE OF it_mseg_103, wa_mseg_105 LIKE LINE OF it_mseg_105, wa_mseg_106 LIKE LINE OF it_mseg_106. " LNTDEV1 ADDED DATA : w_menge LIKE ekpo-menge. *----------------------------------------------------------------------* * FIELD-SYMBOLS: Begin with FS_ * *----------------------------------------------------------------------* *----------------------------------------------------------------------* * PARAMETERS: Begin with PR_ * *----------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME. PARAMETERS : pr_werks LIKE mseg-werks OBLIGATORY. SELECT-OPTIONS : so_budat FOR mkpf-budat. SELECTION-SCREEN END OF BLOCK b1. *----------------------------------------------------------------------* * SELECT-OPTIONS: Begin with SO_ * *----------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME. SELECT-OPTIONS : so_mtart FOR mara-mtart. SELECT-OPTIONS : so_matkl FOR mara-matkl. SELECT-OPTIONS : so_matnr FOR mara-matnr. SELECT-OPTIONS : so_bismt FOR mara-bismt. SELECT-OPTIONS : so_ebeln FOR mseg-ebeln. SELECT-OPTIONS : so_verkf FOR ekko-verkf. SELECT-OPTIONS : so_bedat FOR ekko-bedat. SELECT-OPTIONS : so_mblnr FOR mseg-mblnr. SELECTION-SCREEN END OF BLOCK b2. *AT SELECTION-SCREEN. * *SO_BUDAT-HIGH = SO_BUDAT-HIGH + 1. *---------------------------------------------------------------------* * Query for getting all the Document Segment: Material data from MSEG * * Table which having Movement Types 103 and put into it_mseg table, * * Filtering by reference document and material document number * * Filtering by selection criteria (Material Docu No, Purchase order * * and Plant) * *---------------------------------------------------------------------* *---------------------------------------------------------------------* START-OF-SELECTION. *---------------------------------------------------------------------* SELECT p~mblnr s~mblnr p~mjahr zeile bwart lfbnr werks lgort ebeln ebelp lfpos sjahr dmbtr usnam menge s~budat p~matnr q~mtart p~ablad p~wempf FROM mseg AS p INNER JOIN mara AS q ON p~matnr = q~matnr JOIN mkpf AS s ON s~mblnr EQ p~mblnr INTO CORRESPONDING FIELDS OF TABLE it_mseg_103 WHERE bwart EQ 103 AND p~matnr IN so_matnr AND werks EQ pr_werks AND ebeln IN so_ebeln AND q~mtart IN so_mtart AND p~mblnr IN so_mblnr AND s~budat IN so_budat. ** IF sy-subrc = 0. ENDIF. SELECT p~mblnr s~mblnr p~mjahr zeile bwart lfbnr werks lgort ebeln ebelp lfpos sjahr dmbtr usnam menge s~budat p~matnr q~mtart p~ablad p~wempf FROM mseg AS p INNER JOIN mara AS q ON p~matnr = q~matnr JOIN mkpf AS s ON s~mblnr EQ p~mblnr INTO CORRESPONDING FIELDS OF TABLE it_mseg_105 WHERE bwart EQ 105 OR bwart EQ 104 OR bwart EQ 124 OR bwart EQ 124 AND p~matnr IN so_matnr AND werks EQ pr_werks AND ebeln IN so_ebeln AND q~mtart IN so_mtart AND p~mblnr IN so_mblnr AND s~budat IN so_budat. IF sy-subrc = 0. ENDIF. LOOP AT IT_MSEG_103 INTO WA_MSEG_103. READ TABLE IT_MSEG_105 INTO WA_MSEG_105 WITH KEY LFBNR = WA_MSEG_103-MBLNR. IF SY-SUBRC 0. APPEND WA_MSEG_103 TO IT_OUTPUT. ENDIF. ENDLOOP. SELECT p~mblnr s~mblnr p~mjahr zeile bwart lfbnr werks lgort ebeln ebelp lfpos sjahr dmbtr usnam menge s~budat p~matnr q~mtart p~ablad p~wempf FROM mseg AS p INNER JOIN mara AS q ON p~matnr = q~matnr JOIN mkpf AS s ON s~mblnr EQ p~mblnr INTO CORRESPONDING FIELDS OF TABLE it_mseg_106 WHERE bwart EQ 106 AND p~matnr IN so_matnr AND werks EQ pr_werks AND ebeln IN so_ebeln AND q~mtart IN so_mtart AND p~mblnr IN so_mblnr AND s~budat IN so_budat. LOOP AT it_mseg_103 INTO wa_mseg_103. READ TABLE it_mseg_106 INTO wa_mseg_106 WITH KEY lfbnr = wa_mseg_103-mblnr. IF sy-subrc = 0. APPEND wa_mseg_106 TO it_output. clear wa_mseg_106. ENDIF. ENDLOOP.

Present selection criteria is 1. Plant 2. Posting Date 3. Material Type 4. Material Group 5. Material No. 6. Old Material No. 7. PO Order No. 8. Old PO No. 9. PO Date 10. Material Document No. New selection criteria is 1. PO no. 2. PO date 3. PO value (Ex: >=10000 <=50000) 4. Purch org 5. Doc type 6. Vendor 7. Material 8. Account assignment category 9. Order

I hope the code is readable now.

Thanks in advance.

Read only

Former Member
0 Likes
480

Hi,

You can compare the current selection criteria with the required selection criteria,to get the same output result.