Hallo!
Ich habe derzeit ein (wahrscheinlich) kleines Problem mit den hier im Forum schon oft erwähnten Table Controls.
Zum besseren Verständnis hier erstmal meine Grundsituation:
Ich habe ein Dynpro (#100) auf dem ein Table Control sowie ein Button angezeigt werden.
In dem Table Control werden Einträge aus deiner DB-Tabelle angezeigt. Allerdings werden zunächst nicht alle Attribute der Einträge angezeigt, sondern nur eine Artikelnummer und eine Beschreibung.
In dem Table Control gibt es außerdem eine Markierspalte TMARK.
Wenn ich jetzt in dem Table Control eine Zeile markiere und dann auf den darunterstehenden Button ("Details", Funktionscode "SHOW") klicke, soll zunächst über eine SELECT-Anweisung die gesamten Attribute des Eintrags aus der DB geholt werden. Anschließend wird ein neuer Screen (Dynpro #200) angezeigt, auf dem dann die gesamten Attribute des ausgewählten Eintrags in einfachen Textfeldern ausgegeben werden sollen (Preis, Lagerbestand etc.).
Der PAI-Bereich des ersten Dypros (#100) sieht dabei so aus:
Code: Alles auswählen.
MODULE GET_OK_CODE.
LOOP AT TC_ITAB.
MODULE READ_LINE.
ENDLOOP.
Das Modul "GET_OK_CODE":
Code: Alles auswählen.
MODULE GET_OK_CODE INPUT.
SAVE_OK = OK_CODE.
CLEAR OK_CODE.
ENDMODULE.
Und das Modul "READ_LINE" dann dazu:
Code: Alles auswählen.
MODULE READ_LINE INPUT.
IF TMARK = 'X'.
CASE SAVE_OK.
WHEN 'SHOW'.
MESSAGE S004 WITH TC_WA-ARTIKELNR.
SELECT SINGLE * FROM SPORTARTIKEL
WHERE ARTIKELNR = TC_WA-ARTIKELNR.
IF SY-SUBRC EQ 0.
SET SCREEN 200.
ELSE.
MESSAGE S005.
ENDIF.
ENDCASE.
ENDIF.
ENDMODULE.
Das CASE habe ich verwendet, weil noch einige Buttons mehr dazu kommen sollen.
TC_ITAB ist die interne Tabelle zu dem Table Control und TC_WA der Arbeitsbereich (work area).
So, und nun zu meinem Problem:
In der CASE-Anweisung bei WHEN 'SHOW' erhalte ich, wenn ich zunächst eine Testnachricht ausgebe (S004) und die Artikelnummer als Parameter mit angebe, zunächst die richtige Artikelnummer des gewählten Artikels.
Wenn dann allerdings der nächste Dynpro angezeigt wird, enthält dieser nicht die Details des gewählten Artikels sondern immer den
letzten Eintrag aus dem Table Control.
Irgendwie scheint also bei der SELECT-Anweisung ein Fehler drin zu sein, den ich leider nicht ganz nachvollziehen kann, da ich ja eine Zeile vorher die Artikelnummer, nach der gesucht werden soll, ausgebe und diese auch stimmt.
So, jetzt hab ich viel geschrieben und hoffe, dass jemand von Euch hier mein Problem nachvollziehen kann und vielleicht sogar eine Lösung parat.
Sollte ich jetzt noch irgendwelche wichtigen Angaben vergessen haben, dann ergänze ich die natürlich gern noch.
Viel Dank schonmal vorab.
Hendrik Alrutz