REPORT ZHELLO5 . DATA: greeting(20) VALUE 'Hello World', sel_cont(20), "selected continent string1(21), "dummy string variable string2(72), "dummy string variable cfield(80), "field the cursor is on ret_button1(10) VALUE '++++++++++', "screen return button ret_button2(10) VALUE '+ RETURN +'. "screen return button DATA: BEGIN OF loc OCCURS 20, "locations itab with three fields continent(20), "continent name nat(20), "nation/country name cap(20), "capitol city of the nation/country END OF loc. START-OF-SELECTION. PERFORM build_loc. "populate loc with names PERFORM level0. AT LINE-SELECTION. GET CURSOR FIELD cfield. IF cfield CS 'ret_button'. SET USER-COMMAND 'BACK'. ELSE. CASE SY-LSIND. WHEN 1. PERFORM level1. WHEN 2. PERFORM level2. WHEN 3. PERFORM level3. ENDCASE. ENDIF. FORM build_loc. loc-continent = 'North America'. loc-nat = 'Canada'. loc-cap = 'Ottawa'. APPEND loc. loc-nat = 'United States'. loc-cap = 'Washington'. APPEND loc. loc-nat = 'Mexico'. loc-cap = 'Mexico'. APPEND loc. loc-continent = 'South America'. loc-nat = 'Venezuela'. loc-cap = 'Caracas'. APPEND loc. loc-nat = 'Colombia'. loc-cap = 'Bogota'. APPEND loc. loc-nat = 'Ecuador'. loc-cap = 'Quito'. APPEND loc. loc-nat = 'Peru'. loc-cap = 'Lima'. APPEND loc. loc-nat = 'Bolivia'. loc-cap = 'La Paz'. APPEND loc. loc-nat = 'Chile'. loc-cap = 'Santiago'. APPEND loc. loc-nat = 'Argentina'. loc-cap = 'Buenos Aires'. APPEND loc. loc-nat = 'Uruguay'. loc-cap = 'Montevideo'. APPEND loc. loc-nat = 'Paraguay'. loc-cap = 'Asuncion'. APPEND loc. loc-nat = 'Brazil'. loc-cap = 'Brasilia'. APPEND loc. loc-continent = 'Western Europe'. loc-nat = 'United Kingdom'. loc-cap = 'London'. APPEND loc. loc-nat = 'Ireland'. loc-cap = 'Dublin'. APPEND loc. loc-nat = 'Norway'. loc-cap = 'Oslo'. APPEND loc. loc-nat = 'Sweden'. loc-cap = 'Stockholm'. APPEND loc. loc-nat = 'Finland'. loc-cap = 'Helsinki'. APPEND loc. loc-nat = 'Denmark'. loc-cap = 'Copenhagen'. APPEND loc. loc-nat = 'Netherlands'. loc-cap = 'The Hague'. APPEND loc. loc-nat = 'Belgium'. loc-cap = 'Brussels'. APPEND loc. loc-nat = 'France'. loc-cap = 'Paris'. APPEND loc. loc-nat = 'Spain'. loc-cap = 'Madrid'. APPEND loc. loc-nat = 'Portugal'. loc-cap = 'Lisbon'. APPEND loc. loc-nat = 'Italy'. loc-cap = 'Rome'. APPEND loc. loc-nat = 'Austria'. loc-cap = 'Vienna'. APPEND loc. loc-nat = 'Switzerland'. loc-cap = 'Bern'. APPEND loc. loc-nat = 'Germany'. loc-cap = 'Bonn'. APPEND loc. ENDFORM. "build_loc FORM level0. WRITE greeting. PERFORM return_button. ENDFORM. "level0 FORM level1. CLEAR loc. LOOP AT loc. AT NEW continent. WRITE: /12 loc-continent. ENDAT. ENDLOOP. PERFORM return_button. ENDFORM. "level1 FORM level2. sel_cont = SY-LISEL+11. WRITE /12 sel_cont. LOOP AT loc WHERE continent = sel_cont. WRITE /15 loc-nat. HIDE loc-cap. ENDLOOP. PERFORM return_button. ENDFORM. "level2 FORM level3. CALL FUNCTION 'STRING_CONCATENATE' EXPORTING STRING1 = loc-cap STRING2 = '.' IMPORTING STRING = string1 EXCEPTIONS TOO_SMALL = 01. string2 = 'The capitol of '. string2+18 = SY-LISEL+14. string2+38 = ' is '. string2+42 = string1. CONDENSE string2. SKIP. WRITE string2. PERFORM return_button. ENDFORM. "level3 FORM return_button. SKIP TO LINE 3. WRITE: 52 ret_button1, /52 ret_button2, /52 ret_button1. ENDFORM. "return_button