‎2007 Jul 24 12:49 PM
hi,
in my selection screen i have 5 fields
ie matnr mtart matkl erdsa from table mara and
werks from table marc
o/p
if i input any one of the 5 fields in the selection screen i need the output for all the 5 fields which matches the selection condition.
Thanks in advance.
‎2007 Jul 24 1:07 PM
Hello,
Check this code :
[code]TABLES: mara,marc.
SELECT-OPTIONS: s_matnr FOR mara-matnr NO INTERVALS,
s_mtart FOR mara-mtart NO INTERVALS,
s_matkl FOR mara-matkl NO INTERVALS,
s_ersda FOR mara-ersda NO INTERVALS,
s_werks FOR marc-werks NO INTERVALS.
DATA: BEGIN OF itab OCCURS 0,
matnr TYPE matnr,
mtart TYPE mtart,
matkl TYPE matkl,
ersda TYPE ersda,
werks TYPE werks_d,
END OF itab.
DATA: wa_tab LIKE LINE OF itab.
SELECT amatnr amtart amatkl aersda
b~werks
FROM mara AS a JOIN marc AS b
ON bmatnr = amatnr
INTO TABLE itab
WHERE a~matnr IN s_matnr
AND a~mtart IN s_mtart
AND a~matkl IN s_matkl
AND a~ersda IN s_ersda
AND b~werks IN s_werks.
IF sy-subrc <> 0.
ENDIF.[code]
Regards,
Deepu.K
,
,
‎2007 Jul 24 12:52 PM
hi..
You can use <b>AT SELECTION SCREEN ON FIELD (field)</b> and then u can write the <b>SELECT QUERY</b> matching the condition..
<b>Reward points if useful</b>
Regards
Ashu
‎2007 Jul 24 12:54 PM
hi,
you can build your condition in the query dynamically,
if a parameter is initial, or a star replace the value by %
....
first condition
...
IF matnr IS INITIAL.
matnr = '%'.
ELSE.
REPLACE ALL OCCURRENCES OF '*'
IN matnr WITH '%'.
REPLACE ALL OCCURRENCES OF '+'
IN matnr WITH '_'.
ENDIF.
CONCATENATE lv_condition
'AND MATNR LIKE MATNR'
INTO lv_condition
SEPARATED BY space.
....
select * from mara into lt_mara where (lv_condition).
grtz,
Koen
‎2007 Jul 24 1:09 PM
hi i make myself clear,
in my selection screen i have 5 fields
ie matnr mtart matkl erdsa from table mara and
werks from table marc
o/p
if i input atleast one of the 5 fields in the selection screen
note:not neccesarily only one ie atleast one
i need the output for all the 5 fields which matches the selection condition ie based on the values in selection screen.
eg:
if i i/p 1 for matnr in selection screen
it should display the records for mtart matkl werks erdsa for matnr = 1.
Thanks in advance.
‎2007 Jul 24 12:58 PM
hi selva
your question is not so clear
but as per my understanding
select maramatnr maramtart maramatkl maraerdsa marc~werks from table mara
innerjoins marc on (use the condition here) where matnr in s_matnr and mrart in s_mtart and so on
‎2007 Jul 24 1:07 PM
Hello,
Check this code :
[code]TABLES: mara,marc.
SELECT-OPTIONS: s_matnr FOR mara-matnr NO INTERVALS,
s_mtart FOR mara-mtart NO INTERVALS,
s_matkl FOR mara-matkl NO INTERVALS,
s_ersda FOR mara-ersda NO INTERVALS,
s_werks FOR marc-werks NO INTERVALS.
DATA: BEGIN OF itab OCCURS 0,
matnr TYPE matnr,
mtart TYPE mtart,
matkl TYPE matkl,
ersda TYPE ersda,
werks TYPE werks_d,
END OF itab.
DATA: wa_tab LIKE LINE OF itab.
SELECT amatnr amtart amatkl aersda
b~werks
FROM mara AS a JOIN marc AS b
ON bmatnr = amatnr
INTO TABLE itab
WHERE a~matnr IN s_matnr
AND a~mtart IN s_mtart
AND a~matkl IN s_matkl
AND a~ersda IN s_ersda
AND b~werks IN s_werks.
IF sy-subrc <> 0.
ENDIF.[code]
Regards,
Deepu.K
,
,
‎2007 Jul 24 1:21 PM
HI DEEPU..
THANK U VERY MUCH..
NOW ITS WORKING.
I AM USING THE SAME LOGIC BUT WITH PARAMETERS
‎2007 Jul 24 1:11 PM
Hello,
Check this code :
TABLES: mara,marc.
SELECT-OPTIONS: s_matnr FOR mara-matnr NO INTERVALS,
s_mtart FOR mara-mtart NO INTERVALS,
s_matkl FOR mara-matkl NO INTERVALS,
s_ersda FOR mara-ersda NO INTERVALS,
s_werks FOR marc-werks NO INTERVALS.
DATA: BEGIN OF itab OCCURS 0,
matnr TYPE matnr,
mtart TYPE mtart,
matkl TYPE matkl,
ersda TYPE ersda,
werks TYPE werks_d,
END OF itab.
DATA: wa_tab LIKE LINE OF itab.
SELECT a~matnr a~mtart a~matkl a~ersda
b~werks
FROM mara AS a JOIN marc AS b
ON b~matnr = a~matnr
INTO TABLE itab
WHERE a~matnr IN s_matnr
AND a~mtart IN s_mtart
AND a~matkl IN s_matkl
AND a~ersda IN s_ersda
AND b~werks IN s_werks.
IF sy-subrc <> 0.
ENDIF.Regards,
Deepu.K