ich habe ein hauptdynpro und darauf zwei subscreens.
auf dem hauptdynpro ist eine tabelle mit währungsfeldern.
nun wird auf dem ersten subscreen ein feld geändert, das darstellungsänderungen auf dem hauptdynpro zur folge haben muss (WAERS).
im PAI des hauptdynpros wird zu beginn auf die PAI der subscreens verzweigt und danach der loop über die tabelle des hauptdynpros prozessiert..
hier bricht mir das programm ab, da die aufbereitung der währungsfelder nicht mehr zu der eingegebenen währung passen.
daraufhin habe ich den ablauf geändert:
ich erkenne im PAI vom subscreen, dass das feld geändert wurde und müsste nun einen kompletten neuaufbau (refresh) der gesamten anzeige auslösen.
ein LEAVE funktioniert ja im subscreen nicht.
daher setze ich mir im subscreen nur einen schalter.
zurück auf dem hauptdynpro prüfe ich gleich nach 'call subscreen...' diesen schalter und setze eventuell ein 'leave to screen sy-synnr' ab.
der ablauf funktioniert soweit, jedoch werden beim subscreen immer alle PAI-module durchlaufen.
d.h. obwohl ich die eingabe in dem feld gleich zu beginn des PAI im subscreen prüfe, fehlt mir hier die möglichkeit den PAI des subscreens ggfs. sofort zu verlassen.
Und wenn du nun den LOOP auf dem Hauptdynpro VOR dem Aufruf der Subscreens machst?
Sprich die Daten vom Hauptdynpro wurden bereits verarbeitet. Dann kommt der Subscreen und verändert die (internen) Daten der zum Hauptdynpro gehörenden Tabelle, also beide Teile des Währungsfelds gleichzeitig. Damit braucht man nicht irgendwelche Verrenkungen mit LEAVE SCREEN usw.
lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.