If the main criteria were not continuously defined in Customizing or did not begin with '01', the navigation within the detail screens did not function correctly
Cause and prerequisitesIndexes for reading internal tables were not set correctly.
SolutionABAP MM06LTOP:
-------------
...
...
DATA : BEGIN OF WINTAB OCCURS 20,
HKR01 LIKE RM06L-HKR01,
INDI LIKE SY-TABIX, "INDEX ZUM AUFBAU D120 <===== NEW
END OF WINTAB.
...
...
ABAP MM06LF0B:
-------------
...
...
FORM BLAETTERN_NAECHSTES_HKRIT.
DESCRIBE TABLE WINTAB LINES ZEILE.
IF ZEILE = 0.
IND1 = IND1 + 1.
...
...
ELSE.
...
READ TABLE WINTAB INDEX LESEZEILE.
IND1 = WINTAB-INDI. <===== changed
PERFORM D120.
...
...
FORM BLAETTERN_NAECHSTES_HKRIT.
...
...
ELSE.
...
READ TABLE WINTAB INDEX LESEZEILE.
IND1 = WINTAB-INDI. <===== changed
PERFORM D120.
...
...
FORM BLAETTERN_VORHERIGES_HKRIT.
...
...
ELSE.
...
READ TABLE WINTAB INDEX LESEZEILE.
IND1 = WINTAB-INDI. <===== changed
PERFORM D120.
...
...
FORM BLAETTERN_ERSTES_HKRIT.
DESCRIBE TABLE WINTAB LINES ZEILE.
IF ZEILE = 0.
READ TABLE HKR INDEX 1.
IND1 = SY-TABIX. <===== changed
SET SCREEN 120.
PERFORM D120.
ELSE.
LESEZEILE = 1.
READ TABLE WINTAB INDEX LESEZEILE.
IND1 = WINTAB-INDI. <===== changed
SET SCREEN 120.
PERFORM D120.
ENDIF.
ENDFORM.
ABAP MM06LI0O:
-------------
...
...
MODULE OK-CODE.
CASE OK-CODE.
...
...
WHEN 'PICK'.
*... Detailbild zu einem bestimmten Hauptkriterium ansteu
CLEAR OK-CODE.
READ TABLE WINTAB INDEX 1.
IF SY-SUBRC EQ 0. "Selektion durch 'X' e
IF SY-DYNNR EQ 110.
CLEAR LESEZEILE.
IND1 = WINTAB-INDI. <====== changed
PERFORM D120.
...
...
WHEN 'MARK'.
...
...
ELSE.
READ TABLE HKR WITH KEY HKR-HKRIT BINARY SEARCH. <==NEW
WINTAB-HKR01 = HKR-HKRIT.
WINTAB-INDI = SY-TABIX. <==NEW
APPEND WINTAB SORTED BY HKR01.
RM06L-XFLD = 'X'.
ENDIF.
ELSEIF SY-DYNNR EQ 150. "Textbild
T_IND = T_AAKD + ZEIL - 1.
...
...
WHEN 'MINT'.
...
...
*... Alle Positionen markieren, die zwischen dem Intervall liegen ...
CLEAR IND1. <==== NEW
LOOP AT HKR WHERE HKRIT BETWEEN MINT-HKRIV
AND MINT-HKRIB.
IND1 = IND1 + 1. <==== NEW
READ TABLE WINTAB WITH KEY HKR-HKRIT.
IF SY-SUBRC NE 0.
WINTAB-HKR01 = HKR-HKRIT.
WINTAB-INDI = IND1. <==== NEW
APPEND WINTAB SORTED BY HKR01.
...
...
WHEN 'ALAN'.
IF SY-DYNNR EQ 110.
*.... alle Hauptkriterien im Window D130 ankreuzen...
CLEAR IND1. <==== NEW
LOOP AT HKR.
IND1 = IND1 + 1. <==== NEW
READ TABLE WINTAB WITH KEY HKR-HKRIT.
IF SY-SUBRC NE 0.
MOVE HKR-HKRIT TO WINTAB-HKR01.
MOVE IND1 TO WINTAB-INDI. <==== NEW
APPEND WINTAB SORTED BY HKR01.
...
...
ABAP MM06LI0P:
-------------
...
...
MODULE PRF_SEL_HKRIT.
READ TABLE HKR WITH KEY RM06L-HKR02 BINARY SEARCH.
IF SY-SUBRC EQ 0 AND
HKR-HKRIT EQ RM06L-HKR02.
IND1 = SY-TABIX. <==== NEW
ELSE.
MESSAGE E014. "Hauptkriterium ... nicht vorhanden !
ENDIF.
ENDMODULE.
ABAP MM06LF0F:
-------------
...
...
FORM FUELLEN_WINTAB.
IF RM06L-XFLD NE SPACE.
READ TABLE WINTAB WITH KEY RM06L-HKR01.
IF SY-SUBRC NE 0.
READ TABLE HKR WITH KEY RM06L-HKR01 BINARY SEARCH. <==== NEW
MOVE RM06L-HKR01 TO WINTAB-HKR01. "füllen der int. Tab.
MOVE SY-TABIX TO WINTAB-INDI. "Index merken <==== NEW
APPEND WINTAB.
...
...
No comments:
Post a Comment