‎2007 Oct 04 8:17 AM
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
‎2007 Oct 04 9:38 AM
<b>IF IS VAL NOT INITIAL.</b>
SELECT <b>SINGLE</b> MAKTX FROM MAKT INTO makt-maktx WHERE MATNR = VAL.
<b>ENDIF.</b>
‎2007 Oct 04 8:22 AM
Check the value of VAL and be sure it is formatted like the field matnr including the leading zeroes.
‎2007 Oct 04 8:23 AM
it is like that
even i tried
val like makt-matnr
but no output
‎2007 Oct 04 8:28 AM
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.
‎2007 Oct 04 8:24 AM
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>
‎2007 Oct 04 8:27 AM
i dont think so that we need to use an internal table
we can use the default work area
‎2007 Oct 04 2:19 PM
>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..
‎2007 Oct 05 5:09 AM
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
‎2007 Oct 04 8:28 AM
HI,
write tables:makt.
statement in ur program.
send ur full code if any further problems are coming.
rgds,
bharat.
‎2007 Oct 04 8:32 AM
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**********************************
‎2007 Oct 04 8:35 AM
‎2007 Oct 04 8:39 AM
HI,
it is giving proper output for me.
i am not facing any problem like u said.
rgds,
bharat.
‎2007 Oct 04 8:59 AM
‎2007 Oct 04 9:36 AM
‎2007 Oct 04 9:38 AM
<b>IF IS VAL NOT INITIAL.</b>
SELECT <b>SINGLE</b> MAKTX FROM MAKT INTO makt-maktx WHERE MATNR = VAL.
<b>ENDIF.</b>
‎2007 Oct 04 9:43 AM
‎2007 Oct 04 9:58 AM
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.
‎2007 Oct 04 10:10 AM
BUT WHY IT IS GIVING CORRECT OUTPUT FOR ITAB-MBLNR (mat doc number)
i hav not changed or converted it.
‎2007 Oct 04 9:54 AM
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.
‎2007 Oct 04 9:57 AM
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????
‎2007 Oct 04 10:41 AM
‎2007 Oct 04 10:46 AM
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>