Basically:
- Call screen..... calls a screen.
If you leave this screen with set screen 0, you return to the first
statement after the call screen statement. So this Dynpro is called on top
of the calling screen.
- set screen sets the number of the following dynpro.
- Leave screen: leave the Dynpro directly and start the PBO of the next
Dynpro. This next Dynpro can be set by SET SCREEN.
- Leave to screen nnnn: leaves current Dynpro and starts screen nnnn. You
must consider this as the next Dynpro in a chain of dynpro's.

With SET SCREEN, the current screen simply specifies the next screen in the chain. control branches to this next screen as soon as the current screen has been processed. Return from next screen to current screen is not automatic. It does not interrupt processing of the current screen. If we want to branch to the next screen without finishing the current one, use LEAVE SCREEN.

With CALL SCREEN, the current (calling) chain is suspended, and a next screen (or screen chain) is called in. The called screen can then return to the suspended chain with the statement LEAVE SCREEN TO SCREEN 0.

Set screen and Leave Screen is nothing but, Whenever we call a screen with Set Screen keyword control is immediately goes to the new screen for which you called and after finishing of the work the control is back to the previous screen.

In case of Call screen and Leave Screen the control is passed immediately to the calling screen by suspending the current screen finishes the work and control, does not come to the previous screen.