<HTML
><HEAD
><TITLE
> ABAP User Dialogs
</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.56"><LINK
REL="HOME"
TITLE=" ABAP PROGRAMMING EXAMPLES
"
HREF="Starting_Page.html"><LINK
REL="PREVIOUS"
TITLE=" Special Techniques
"
HREF="Starting_Page-chap-2-sect1-5.html"><LINK
REL="NEXT"
TITLE=" Selection Screens
"
HREF="Starting_Page-chap-3-sect1-2.html"></HEAD
><BODY
CLASS="CHAPTER"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>ABAP PROGRAMMING EXAMPLES: -------------- AN EASY WAY
</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="Starting_Page-chap-2-sect1-5.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="Starting_Page-chap-3-sect1-2.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="AEN510"
>Chapter 3. ABAP User Dialogs
</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>3.1. <A
HREF="Starting_Page-chap-3.html#AEN512"
>Screens</A
></DT
><DT
>3.2. <A
HREF="Starting_Page-chap-3-sect1-2.html"
>Selection Screens</A
></DT
><DT
>3.3. <A
HREF="Starting_Page-chap-3-sect1-3.html"
>Lists</A
></DT
><DT
>3.4. <A
HREF="Starting_Page-chap-3-sect1-4.html"
>Messages</A
></DT
></DL
></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="AEN512"
>3.1. Screens</A
></H1
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN514"
>3.1.1. Processing Screens</A
></H2
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="AEN516"
>3.1.1.1. Input and Output Fields on Screens</A
></H3
><PRE
CLASS="PROGRAMLISTING"
>PROGRAM demo_dynpro_input_output .
DATA: input TYPE i,
output TYPE i,
radio1(1) TYPE c, radio2(1) TYPE c, radio3(1) TYPE c,
box1(1) TYPE c, box2(1) TYPE c, box3(1) TYPE c, exit(1) TYPE c.
CALL SCREEN 100.
MODULE init_screen_100 OUTPUT.
CLEAR input.
radio1 = 'X'.
CLEAR: radio2, radio3.
ENDMODULE.
MODULE user_command_0100 INPUT.
output = input.
box1 = radio1.
box2 = radio2.
box3 = radio3.
IF exit NE space.
LEAVE PROGRAM.
ENDIF.
ENDMODULE.
</PRE
></DIV
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="AEN519"
>3.1.1.2. Connecting strings to screen fields</A
></H3
><PRE
CLASS="PROGRAMLISTING"
>REPORT demo_dynpro_strings.
DATA: string1 TYPE string,
string2 TYPE string,
char1(10) TYPE c,
char2(100) TYPE c.
DATA len TYPE i.
string1 = '123 X'.
string1 = string1(10).
char1 = string1.
string2 = '12345678901234567890'.
char2 = string2.
len = strlen( string1 ).
WRITE: 'PBO:',
/ 'Length of STRING1:', len.
len = strlen( char1 ).
WRITE: / 'Length of CHAR1: ', len.
len = strlen( string2 ).
WRITE: / 'Length of STRING2:', len.
len = strlen( char2 ).
WRITE: / 'Length of CHAR2: ', len.
ULINE.
CALL SCREEN 100.
len = strlen( string1 ).
WRITE: 'PAI:',
/ 'Length of STRING1:', len.
len = strlen( char1 ).
WRITE: / 'Length of CHAR1: ', len.
len = strlen( string2 ).
WRITE: / 'Length of STRING2:', len.
len = strlen( char2 ).
WRITE: / 'Length of CHAR2: ', len.
ULINE.
</PRE
></DIV
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="AEN522"
>3.1.1.3. Screen Fields with Dictionary Reference</A
></H3
><PRE
CLASS="PROGRAMLISTING"
>PROGRAM demo_dynpro_dictionary .
TABLES demo_conn.
DATA wa_spfli TYPE spfli.
CALL SCREEN 100.
MODULE init_screen_100 OUTPUT.
CLEAR demo_conn-mark.
MOVE-CORRESPONDING wa_spfli TO demo_conn.
CLEAR wa_spfli.
ENDMODULE.
MODULE user_command_0100 INPUT.
IF demo_conn-mark = 'X'.
LEAVE PROGRAM.
ENDIF.
MOVE-CORRESPONDING demo_conn TO wa_spfli.
SELECT SINGLE cityfrom airpfrom cityto airpto fltime deptime arrtime
INTO CORRESPONDING FIELDS OF wa_spfli
FROM spfli
WHERE carrid = wa_spfli-carrid AND connid = wa_spfli-connid.
ENDMODULE.
</PRE
></DIV
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="AEN525"
>3.1.1.4. Pushbuttons on Screens</A
></H3
><PRE
CLASS="PROGRAMLISTING"
>PROGRAM demo_dynpro_push_button .
DATA: ok_code TYPE sy-ucomm,
save_ok LIKE ok_code,
output(8) TYPE c.
CALL SCREEN 100.
MODULE user_command_0100 INPUT.
save_ok = ok_code.
CLEAR ok_code.
CASE save_ok.
WHEN 'BUTTON_EXIT'.
LEAVE PROGRAM.
WHEN 'BUTTON_1'.
output = 'Button 1'(001).
WHEN 'BUTTON_2'.
output = 'Button 2'(002).
WHEN 'BUTTON_3'.
output = 'Button 3'(003).
WHEN 'BUTTON_4'.
output = 'Button 4'(004).
WHEN OTHERS.
output = save_ok.
ENDCASE.
ENDMODULE.
</PRE
></DIV
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="AEN528"
>3.1.1.5. Checkboxes and radio buttons</A
></H3
><PRE
CLASS="PROGRAMLISTING"
>PROGRAM demo_dynpro_check_radio .
DATA: radio1(1) TYPE c, radio2(1) TYPE c, radio3(1) TYPE c,
field1(10) TYPE c, field2(10) TYPE c, field3(10) TYPE c,
box TYPE c.
DATA: ok_code TYPE sy-ucomm,
save_ok TYPE sy-ucomm.
CALL SCREEN 100.
MODULE user_command_0100 INPUT.
save_ok = ok_code.
CLEAR ok_code.
CASE save_ok.
WHEN 'RADIO'.
IF radio1 = 'X'.
field1 = 'Selected!'.
CLEAR: field2, field3.
ELSEIF radio2 = 'X'.
field2 = 'Selected!'.
CLEAR: field1, field3.
ELSEIF radio3 = 'X'.
field3 = 'Selected!'.
CLEAR: field1, field2.
ENDIF.
WHEN 'CANCEL'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE.
</PRE
></DIV
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="AEN531"
>3.1.1.6. GUI Status on Screens</A
></H3
><PRE
CLASS="PROGRAMLISTING"
>PROGRAM demo_dynpro_gui_status.
DATA: ok_code TYPE sy-ucomm,
save_ok LIKE ok_code,
output LIKE ok_code.
CALL SCREEN 100.
MODULE init_screen_0100 OUTPUT.
SET PF-STATUS 'STATUS_100'.
SET TITLEBAR '100'.
ENDMODULE.
MODULE user_command_0100 INPUT.
save_ok = ok_code.
CLEAR ok_code.
CASE save_ok.
WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.
LEAVE PROGRAM.
WHEN OTHERS.
output = save_ok.
ENDCASE.
ENDMODULE.
</PRE
></DIV
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="AEN534"
>3.1.1.7. GET CURSOR on Screens</A
></H3
><PRE
CLASS="PROGRAMLISTING"
>PROGRAM demo_dynpro_get_cursor .
DATA: ok_code TYPE sy-ucomm,
save_ok LIKE ok_code.
DATA: input_output(20) TYPE c,
fld(20) TYPE c,
off TYPE i,
val(20) TYPE c,
len TYPE i.
CALL SCREEN 100.
MODULE init_screen_0100 OUTPUT.
SET PF-STATUS 'STATUS_100'.
ENDMODULE.
MODULE user_command_0100 INPUT.
save_ok = ok_code.
CLEAR ok_code.
CASE save_ok.
WHEN 'CANCEL'.
LEAVE PROGRAM.
WHEN 'SELE'.
GET CURSOR FIELD fld OFFSET off VALUE val LENGTH len.
ENDCASE.
ENDMODULE.
</PRE
></DIV
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="AEN537"
>3.1.1.8. Simple Module Call</A
></H3
><PRE
CLASS="PROGRAMLISTING"
>PROGRAM demo_dynpro_module.
TABLES demo_conn.
DATA: ok_code TYPE sy-ucomm,
save_ok LIKE ok_code,
wa_spfli TYPE spfli.
CALL SCREEN 100.
MODULE init_screen_100 OUTPUT.
MOVE-CORRESPONDING wa_spfli TO demo_conn.
ENDMODULE.
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STATUS_100'.
SET TITLEBAR '100'.
ENDMODULE.
MODULE clear_ok_code INPUT.
save_ok = ok_code.
CLEAR ok_code.
EN