Code: Alles auswählen.
LOOP AT itable INTO zeile.
IF flag EQ 'X'.
IF zeile-text NE '</SEGMENT>'.
liste1-inr = zeile-nr.
liste1-notiz = zeile-text.
LOOP AT itable INTO zeile2 WHERE textid = '00001'.
liste1-unr = zeile2-text+50(8).
CREATE OBJECT expertref
EXPORTING
nr = zeile-nr.
CLEAR: wa_expert.
LOOP AT expertref->expertlist INTO wa_expert WHERE pernr = liste1-unr.
liste1-unr = wa_expert-pernr.
liste1-name = wa_expert-name.
liste1-mstbr = wa_expert-mstbr.
ENDLOOP.
IF sy-subrc EQ '4'.
liste1-inr = ''.
liste1-notiz = ''.
liste1-unr = ''.
liste1-name = ''.
liste1-mstbr = ''.
ENDIF.
ENDLOOP.
LOOP AT itable INTO zeiledate WHERE textid = '00001' AND nr = zeile-nr AND text+17(1) = '9'.
liste1-date = zeiledate-text+24(8).
ENDLOOP.
APPEND liste1.
ENDIF.
ENDIF.
IF zeile-text CS '<SEGMENT'.
flag = 'X'.
ELSEIF zeile-text = '</SEGMENT>'.
CLEAR flag.
ENDIF.
ENDLOOP.
Code: Alles auswählen.
LOOP AT itable INTO zeile.
l_index = sy-tabix.
LOOP AT itable INTO zeile2 WHERE textid = '00001' from l_index.
...
EXIT.
ENDLOOP.
Es hat funkioniert. Ich hab noch ein flag eingebaut, der gesetzt wird, wenn die textid=00001 ist. Nur wenn flag gesetzt ist, wird auch tabix gespeichert.ostpower hat geschrieben:Also ich wollte das jetzt mit dem tabix machen. Nur das problem ist, dass er l_index ja bei jedem durchlauf ändert, also im 2.durchlauf hat er l_index=2, das wäre auch die zeile in der beim 2.loop gehn soll, aber bis ich in den 2.loop komme, macht er noch zwei weitere durchläufe des ersten loops. l_index steht dann schon auf 4.
Es müsste also nochmal geprüft werden ob textid=00001 und dann soll er l_index einfrieren, also nicht beim nächsten durchlauf ändern. Wie könnte ich das machen? Vielleicht über eine flag?