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

SIMPLE PROBLEM

Former Member
0 Likes
2,132

data fld(30).

data val(30).

at line-selection.

get cursor field fld value val.

WRITE: VAL.

if fld = 'ITAB-MATNR'.

WRITE 'IF'.

SELECT MAKTX FROM MAKT INTO MAKT-MAKTX WHERE MATNR = VAL.

WRITE: MAKT-MAKTX.

ENDSELECT.

write: sy-subrc.

WRITE: MAKT-MAKTX.

WRITE: VAL.

endif.

when i run this code i got no out put at secondary list for maktx.

but if i change the code like this

SELECT MAKTX FROM MAKT.

then it shows all the records of makt table.

my output shows the right value of val variable

plz explaint

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
2,086

<b>IF IS VAL NOT INITIAL.</b>

SELECT <b>SINGLE</b> MAKTX FROM MAKT INTO makt-maktx WHERE MATNR = VAL.

<b>ENDIF.</b>

21 REPLIES 21
Read only

Former Member
0 Likes
2,086

Check the value of VAL and be sure it is formatted like the field matnr including the leading zeroes.

Read only

0 Likes
2,086

it is like that

even i tried

val like makt-matnr

but no output

Read only

0 Likes
2,086

Did you include the table MAKT in your TABLE?

TABLES: MAKT.

If it still not working, create a variable then use it in your into clause.

...INTO var...

clear var.

Read only

Former Member
0 Likes
2,086

hI

YOU CAN'T PUT INTO LIKE THAT

YOU NEED TO STORE THAT VALUES INA INTERNAL TABLE

CREAT A INTERNAL TABLE TO STORE THAT SECONDARY LIST VALUES

THEN WRITE SELECT QUERY LIKE THIS

SELET MAKTX FROM MAKT INTO ITAB1 WHERE CONDITION

data fld(30).

data val(30).

at line-selection.

get cursor field fld value val.

WRITE: VAL.

if fld = 'ITAB-MATNR'.

WRITE 'IF'.

SELECT MAKTX FROM MAKT <b>INTO MAKT-MAKTX</b> WHERE MATNR = VAL.

WRITE: MAKT-MAKTX.

ENDSELECT.

write: sy-subrc.

WRITE: MAKT-MAKTX.

WRITE: VAL.

endif.

<b>REWARD IF USEFULL</b>

Read only

0 Likes
2,086

i dont think so that we need to use an internal table

we can use the default work area

Read only

0 Likes
2,086

>YOU CAN'T PUT INTO LIKE THAT

>YOU NEED TO STORE THAT VALUES INA INTERNAL TABLE

Totally irrelevant - you should maybe read up on interactive reports.

Shame on you for posting incorrect answers in the hope of getting points..

Read only

0 Likes
2,086

i hav also tried internal table for this

but didnt get desired output

so ur answers is also wrong

are you also feeling ashamed???

so mind ur language

they all are giving me the suggessions

and its upto me to give points

Read only

Former Member
0 Likes
2,086

HI,

write tables:makt.

statement in ur program.

send ur full code if any further problems are coming.

rgds,

bharat.

Read only

0 Likes
2,086

REPORT zmftes no standard page heading.

tables: mseg, qamb, mkpf, makt.

data : begin of itab occurs 0,

MBLNR LIKE MSEG-MBLNR,

ZEILE LIKE MSEG-ZEILE,

UOM LIKE MSEG-MEINS,

MATNR LIKE MSEG-MATNR,

RECQTY LIKE MSEG-MENGE,

QCINS like mseg-insmk,

EBELN LIKE MSEG-EBELN,

ACCQTY LIKE MSEG-MENGE,

REJQTY LIKE MSEG-MENGE,

END OF ITAB.

DATA : BEGIN OF ITAB1 OCCURS 0,

MBLNR LIKE MSEG-MBLNR,

ZEILE LIKE MSEG-ZEILE,

MJAHR LIKE MSEG-MJAHR,

END OF ITAB1.

PARAMETERS : PLANT LIKE MSEG-WERKS DEFAULT 'MFPLDJJJREA'.

SELECT-OPTIONS : GRNO FOR MSEG-MBLNR.

PARAMETERS: YEAR LIKE MSEG-MJAHR.

SELECT AMBLNR ZEILE MEINS MATNR MENGE INSMK AEBELN

FROM MSEG as A INNER JOIN MKPF AS B ON AMBLNR = BMBLNR AND AMJAHR = BMJAHR

INTO TABLE ITAB

WHERE AWERKS = PLANT AND AMBLNR IN GRNO AND BWART = '101' AND A~MJAHR = YEAR

AND B~TCODE2 = 'MIGO_GR'.

IF SY-SUBRC <> 0.

WRITE: 'NO RECORD FOUND'.

ENDIF.

DATA : V_QCIDOC LIKE QAMB-PRUEFLOS,

V_QCDOC LIKE MSEG-MBLNR,

V_QCDOC1 LIKE MSEG-ZEILE,

V_QTY LIKE MSEG-MENGE,

V_BWART LIKE MSEG-BWART,

AA TYPE C.

LOOP AT ITAB.

IF ITAB-QCINS = 'X'.

IF ITAB-MBLNR = '5000000002'.

AA = 0.

ENDIF.

v_qcidoc = ''.

SELECT SINGLE PRUEFLOS

FROM QAMB INTO V_QCIDOC

WHERE MBLNR = ITAB-MBLNR AND ZEILE = ITAB-ZEILE.

CLEAR ITAB1.

REFRESH ITAB1.

SELECT MBLNR ZEILE MJAHR

FROM QAMB

INTO TABLE ITAB1

WHERE PRUEFLOS = V_QCIDOC AND MBLNR <> ITAB-MBLNR.

LOOP AT ITAB1.

V_QTY = 0.

SELECT BWART MENGE

INTO (V_BWART, V_QTY)

  • FROM MSEG WHERE MBLNR = ITAB1-MBLNR AND ZEILE = ITAB1-ZEILE AND XAUTO <> 'X'. " LINE COMMENTED FOR THE YEAR PROBLEM

FROM MSEG WHERE MBLNR = ITAB1-MBLNR AND ZEILE = ITAB1-ZEILE AND XAUTO <> 'X' AND MJAHR = ITAB1-MJAHR.

ENDSELECT.

IF V_BWART = '321'.

ITAB-ACCQTY = V_QTY.

ELSEIF V_BWART = '122'.

ITAB-REJQTY = V_QTY.

ENDIF.

MODIFY ITAB.

ENDLOOP.

ENDIF.

ENDLOOP.

write: / 'MAT DOC NO ZEILE UOM ITEM ID INSPECTION TOTAL QTY ACCPT QTY REJCT QTY PO No'.

LOOP AT ITAB.

WRITE : / ITAB-MBLNR, ' ' , ITAB-ZEILE, ' ', ITAB-UOM, ' ', ITAB-MATNR, ' ', ITAB-QCINS,' ', ITAB-RECQTY, ' ', ITAB-ACCQTY, ' ', ITAB-REJQTY, ' ', ITAB-EBELN.

ENDLOOP.

***************************new code for interactive list*************************

data fld(30).

data val(30).

at line-selection.

clear val.

get cursor field fld value val.

WRITE: VAL.

if fld = 'ITAB-MATNR'.

WRITE 'IF'.

SELECT MAKTX FROM MAKT INTO makt-maktx WHERE MATNR = VAL.

WRITE: makt-MAKTX.

ENDSELECT.

write: sy-subrc.

WRITE: MAKT-MAKTX.

WRITE: VAL.

endif.

*******************************interactive code ends here**********************************

Read only

0 Likes
2,086

this is my code

Read only

0 Likes
2,086

HI,

it is giving proper output for me.

i am not facing any problem like u said.

rgds,

bharat.

Read only

0 Likes
2,086

hey wat is the value of sy-subrc??

Read only

0 Likes
2,086

ITS URGENT PLZ HELP

Read only

Former Member
0 Likes
2,087

<b>IF IS VAL NOT INITIAL.</b>

SELECT <b>SINGLE</b> MAKTX FROM MAKT INTO makt-maktx WHERE MATNR = VAL.

<b>ENDIF.</b>

Read only

0 Likes
2,086

I HAVE TRIED THIS

BUT IT IS NOT GIVING OUTPUT

Read only

0 Likes
2,086

Hi..

It may be the Probelm with the Conversion.

So Try this code:

data fld(30).

data val(30).

at line-selection.

clear val.

get cursor field fld value val.

WRITE:/ VAL.

**We have to Convert the Material No (Val) into internal Format

<b>CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'

EXPORTING

INPUT = VAL

IMPORTING

OUTPUT = VAL

.

</b>

WRITE:/ VAL.

if fld = 'ITAB-MATNR'.

WRITE 'IF'.

SELECT MAKTX FROM MAKT INTO makt-maktx WHERE MATNR = VAL.

WRITE: makt-MAKTX.

ENDSELECT.

write: sy-subrc.

WRITE: MAKT-MAKTX.

WRITE: VAL.

endif.

REWARD IF HELPFUL.

Read only

0 Likes
2,086

BUT WHY IT IS GIVING CORRECT OUTPUT FOR ITAB-MBLNR (mat doc number)

i hav not changed or converted it.

Read only

MarkusRest
Participant
0 Likes
2,086

How about not using 'get field'?

I had many problems with that one.

Instead I prefer the 'HIDE' - Option.

You have to write

[code]hide $yourfield[/code]

in your LOOP with the WRITE section.

then you can just take matnr = $yourfield as Where-option.

If matnr is your primary-key you should take the select single statement.

Read only

0 Likes
2,086

NO DEAR

OK PPL

I PUT SOME OTHER CODE

IF FLD = 'ITAB-MBLNR'

SELECT SINGLE MBLNR FROM MSEG INTO MSEG-MBLNR WHERE MBLRN = VAL.

WRITE MSEG-MBLNR.

NOW THIS CODE IS WORKING FINE

BUT WHY IT IS NOT WORKING FOR MAKT????

Read only

0 Likes
2,086

somebody got idea???

Read only

0 Likes
2,086

Hi..

If the ITAB-MBLNR is the Same in both internal and External format then it will work without calling any CONVERSION_EXIT . But in case of MATNR the Internal format is different . So we must call the CONVERSION_EXIT .

<b>reward if Helpful.</b>