abap materi

39
Abap materi 4.2.0. Belajar ABAP Bagian 03 Pada bagian ini kita akan membuat program yang menggunakan kriteria atau semacan filter sebelum menampilkan data, tujuannya supaya data yang kita inginkan tidak semuanya tampil hanya data tertentu saja berdasarkan kriteria yg kita masukkan. Seperti sebelumnya sebagai latihan kita akan menggunakan Table Sbook. Screen Kriteria Source unntuk membuat screen seperti diatas TABLES SBOOK. SELECTION-SCREEN BEGIN OF BLOCK ESI WITH FRAME TITLE TEXT- 010. *SELECTION-SCREEN SKIP 1. SELECT-OPTIONS: SO_CARR FOR SBOOK-CARRID. SELECT-OPTIONS: SO_FLDT FOR SBOOK-FLDATE. SELECT-OPTIONS: SO_CLSS FOR SBOOK-CLASS. *SELECTION-SCREEN SKIP 1. SELECTION-SCREEN END OF BLOCK ESI. Screen Hasil Akhir

Upload: subandi-wahyudi

Post on 02-Jan-2016

54 views

Category:

Documents


3 download

TRANSCRIPT

Abap materi

4.2.0. Belajar ABAP Bagian 03

Pada bagian ini kita akan membuat program yang menggunakan kriteria atau semacan filter sebelum menampilkan data, tujuannya supaya data yang kita inginkan tidak semuanya tampil hanya data tertentu saja berdasarkan kriteria yg kita masukkan.Seperti sebelumnya sebagai latihan kita akan menggunakan Table Sbook.Screen Kriteria

Source unntuk membuat screen seperti diatasTABLES SBOOK.SELECTION-SCREEN BEGIN OF BLOCK ESI WITH FRAME TITLE TEXT-010.*SELECTION-SCREEN SKIP 1.SELECT-OPTIONS: SO_CARR FOR SBOOK-CARRID.SELECT-OPTIONS: SO_FLDT FOR SBOOK-FLDATE.SELECT-OPTIONS: SO_CLSS FOR SBOOK-CLASS.*SELECTION-SCREEN SKIP 1.SELECTION-SCREEN END OF BLOCK ESI.

Screen Hasil Akhir

Source untuk menampilkanSELECT * FROM SBOOK WHERE CARRID IN SO_CARRAND FLDATE IN SO_FLDTAND CLASS IN SO_CLSS.WRITE :/2 SBOOK-BOOKID,16 SBOOK-CARRID,26 SBOOK-FLDATE,38 SBOOK-CUSTOMID,50 SBOOK-CLASS,59 SBOOK-ORDER_DATE,71 SBOOK-PASSNAME.ENDSELECT.

Pada hasil akhir, pada bagian atas ada semacam header. untuk header saja source codenya

*----------------------------------------------------------------------** FORM TOP-OF-PAGE **----------------------------------------------------------------------*FORM TOP-OF-PAGE.

WRITE:/1 'Report ID : ', SY-REPID,33 'LATIHAN ABAP 02',67 'Date: ', SY-DATUM.WRITE:/1 'User ID : ', SY-UNAME,33 'SBOOK LIST',67 'Page: ', SY-PAGNO LEFT-JUSTIFIED.

* SKIP 1.,PERFORM HEADER_DESC.ENDFORM. "top-of-page

*----------------------------------------------------------------------** FORM HEADER_DESC **----------------------------------------------------------------------*FORM HEADER_DESC.

ULINE /(86).WRITE: /1 SY-VLINE,

2 'BOOK ID', 14 SY-VLINE,16 'CARRID', 24 SY-VLINE,26 'FLDATE', 36 SY-VLINE,38 'CUSTOMID', 48 SY-VLINE,50 'CLASS', 57 SY-VLINE,59 'ORDER_DATE', 69 SY-VLINE,71 'PASSNAME', 86 SY-VLINE.

ULINE /(86).

ENDFORM. "header_desc

--------------Source gabungannya adalahREPORT ZABAP03LINE-COUNT 55(0).TABLES SBOOK.SELECTION-SCREEN BEGIN OF BLOCK ESI WITH FRAME TITLE TEXT-010.*SELECTION-SCREEN SKIP 1.SELECT-OPTIONS: SO_CARR FOR SBOOK-CARRID.SELECT-OPTIONS: SO_FLDT FOR SBOOK-FLDATE.SELECT-OPTIONS: SO_CLSS FOR SBOOK-CLASS.*SELECTION-SCREEN SKIP 1.SELECTION-SCREEN END OF BLOCK ESI.

SELECT * FROM SBOOK WHERE CARRID IN SO_CARRAND FLDATE IN SO_FLDTAND CLASS IN SO_CLSS.WRITE :/2 SBOOK-BOOKID,16 SBOOK-CARRID,26 SBOOK-FLDATE,38 SBOOK-CUSTOMID,50 SBOOK-CLASS,59 SBOOK-ORDER_DATE,71 SBOOK-PASSNAME.ENDSELECT.

TOP-OF-PAGE.PERFORM TOP-OF-PAGE.

END-OF-PAGE.

*----------------------------------------------------------------------** FORM TOP-OF-PAGE **----------------------------------------------------------------------*

FORM TOP-OF-PAGE.

WRITE:/1 'Report ID : ', SY-REPID,33 'LATIHAN ABAP 02',67 'Date: ', SY-DATUM.WRITE:/1 'User ID : ', SY-UNAME,33 'SBOOK LIST',67 'Page: ', SY-PAGNO LEFT-JUSTIFIED.

* SKIP 1.,PERFORM HEADER_DESC.ENDFORM. "top-of-page

*----------------------------------------------------------------------** FORM HEADER_DESC **----------------------------------------------------------------------*FORM HEADER_DESC.

ULINE /(86).WRITE: /1 SY-VLINE,2 'BOOK ID', 14 SY-VLINE,16 'CARRID', 24 SY-VLINE,26 'FLDATE', 36 SY-VLINE,38 'CUSTOMID', 48 SY-VLINE,50 'CLASS', 57 SY-VLINE,59 'ORDER_DATE', 69 SY-VLINE,71 'PASSNAME', 86 SY-VLINE.

ULINE /(86).

ENDFORM. "header_desc

4.1.1 Belajar ABAP Bagian 01

Bagaimana membuat tampilan sbb dengan ABAPREPORT ZABAP01.write: /, 'LAGI BELAJAR ABAP 01','LAGI BELAJAR ABAP 01','LAGI BELAJAR ABAP 01','LAGI BELAJAR ABAP 01','LAGI BELAJAR ABAP 01'.atauREPORT ZABAP01.write 'LAGI BELAJAR ABAP 01'.write 'LAGI BELAJAR ABAP 01'.write 'LAGI BELAJAR ABAP 01'.write 'LAGI BELAJAR ABAP 01'.write 'LAGI BELAJAR ABAP 01'.

4.1.2 Belajar ABAP Bagian 02

Bagaimana caranya kita membaca table sbook dan membuat tampilan sbb:

Source codenyaREPORT ZABAP02.TABLES SBOOK.SELECT * FROM SBOOK.WRITE :/2 SBOOK-BOOKID,16 SBOOK-CARRID,26 SBOOK-FLDATE,38 SBOOK-CUSTOMID,50 SBOOK-CLASS,59 SBOOK-ORDER_DATE,71 SBOOK-PASSNAME.ENDSELECT.

4.1.3 Create Abap Simple Report

1. Untuk membuat abap report masuk ke t-code se38. Pada kolom program isikan nama program, misal ZREPORT1. Untuk nama program harus berawalan dengan huruf Z atau Y. Lalu tekan Create.

2. Isi Title dengan "Latihan Report 1" dan Type dengan "1 Executable program" lalu Save.

3. Pilih Local object.

4. Ketikkan source code berikut:

  REPORT zreport1 no standard page heading.TABLES : zappmm_kecamatan, zappmm_kabupaten.DEFINE macro_data_possition.  if &1 = 'HEADER'.    write :  /'|' no-gap,(12)  &2 centered,              '|' no-gap,(30) &3 centered,              '|' no-gap,(12) &4 centered,              '|' no-gap,(30) &5 centered,              '|' no-gap,(10)  &6 centered,              '|' no-gap,(10) &7 centered,              '|' no-gap.  else.    write :  /'|' no-gap,(12)  &2 centered,              '|' no-gap,(30) &3 ,              '|' no-gap,(12) &4 centered,              '|' no-gap,(30) &5 ,              '|' no-gap,(10)  &6 centered,              '|' no-gap,(10) &7 ,              '|' no-gap.  endif.END-OF-DEFINITION.

TYPES : BEGIN OF ty_gab,        kd_kec LIKE zappmm_kecamatan-kd_kec,        nm_kec LIKE zappmm_kecamatan-nm_kec,        kd_kab LIKE zappmm_kecamatan-kd_kab,        nm_kab LIKE zappmm_kabupaten-nm_kab,        ersda LIKE zappmm_kecamatan-ersda,        ernam LIKE zappmm_kecamatan-ernam,        END OF ty_gab.

DATA : gi_kec LIKE STANDARD TABLE OF zappmm_kecamatan WITH HEADER LINE,

       gi_kab LIKE STANDARD TABLE OF zappmm_kabupaten WITH HEADER LINE,       gi_gab TYPE STANDARD TABLE OF ty_gab WITH HEADER LINE.

DATA: gv_width TYPE i.  " Width of list

SELECTION-SCREEN: BEGIN OF BLOCK head1 WITH FRAME TITLE text-101.SELECT-OPTIONS so_kab FOR zappmm_kabupaten-kd_kab.SELECT-OPTIONS so_kec FOR zappmm_kecamatan-kd_kec.SELECTION-SCREEN: END OF BLOCK head1.

START-OF-SELECTION.  gv_width = 117.  PERFORM fm_collect_data.  PERFORM fm_process_data.  PERFORM fm_display_data.END-OF-SELECTION.

FORM : fm_collect_data.  SELECT * INTO CORRESPONDING FIELDS OF TABLE gi_gab    FROM zappmm_kecamatan    WHERE kd_kec IN so_kec AND         kd_kab IN so_kab.

  IF gi_gab NE ''.    SELECT * INTO CORRESPONDING FIELDS OF TABLE gi_kab    FROM zappmm_kabupaten    FOR ALL ENTRIES IN gi_gab      WHERE kd_kab = gi_gab-kd_kab.  ENDIF.ENDFORM.

FORM: fm_process_data.  LOOP AT gi_gab.    READ TABLE gi_kab WITH KEY kd_kab = gi_gab-kd_kab.    IF sy-subrc = 0.      gi_gab-nm_kab = gi_kab-nm_kab.    ENDIF.  MODIFY gi_gab.  ENDLOOP.ENDFORM.

FORM : fm_display_data.  ULINE AT (gv_width).                    " Upper frame border  FORMAT COLOR COL_HEADING INTENSIFIED.   " Title color  macro_data_possition : 'HEADER' 'KD Kecamatan' 'Nama Kecamatan''KD Kabupaten' 'Nama Kabupaten' 'Creaed On' 'Created By'.

  WRITE: AT gv_width sy-vline.            " Right border  ULINE AT (gv_width).                    " Line below titles  FORMAT COLOR OFF.  LOOP AT gi_gab.    macro_data_possition : 'CONTENT'             gi_gab-kd_kec             gi_gab-nm_kec             gi_gab-kd_kab             gi_gab-nm_kab             gi_gab-ersda             gi_gab-ernam.  ENDLOOP.ULINE AT (gv_width).                    " Line below last dataENDFORM.

5. Aktifkan program dengan cara tekan shift + f3 atau lalu execute atau tekan f8 .

6. Execute sekali lagi atau tekan f8 .

4.1.4 Create Table

1. Buka t-code se112. Isi database table dengan nama ZAPPMM_KABUPATEN, lalu tekan Create

           

  3. Isi short description dan Delivery class

 

4. Pada tab Fields isikan field-field seperti berikut

 

5. Pada Menu Bar click Technical Setting dan isikan Data Class dan Size Category

6. Kembali ke menu Create Table lalu tekan Activate atau Ctrl + F3 untuk mengaktifkan, selanjutnya akan muncul seperti gambar berikut

2. Isi function group dan juga Short text lalu Save.

3. Pada tab Parameter name isi ZKD_KAB dan ZNM_KAB,  Type dengan TYPE dan centang Optional dan juga Value lalu tekan Enter.

4. Pada Tab Export isi Parameter name dengan Return, Type dengan TYPE, Reference Type dengan BAPIRET2 dan centang Pass value lalu tekan Enter.

5. Pada Tab Tables isi Parameter name dengan RETURN_DATA, Type dengan LIKE, Reference type dengan table ZAPPMM_KABUPATEN dan centang optional lalu tekan Enter.

 

6. Kemudian pada Tab Source code isikan kode berikut lalu activite:    FUNCTION Z_SEL_KAB.    *"----------------------------------------------------------------------    *"*"Local interface:

    *"  IMPORTING    *"     VALUE(ZKD_KAB) TYPE  ZKD_KAB OPTIONAL    *"     VALUE(ZNM_KAB) TYPE  ZNM_KAB OPTIONAL    *"  EXPORTING    *"     VALUE(RETURN) TYPE  BAPIRET2    *"  TABLES    *"      RETURN_DATA STRUCTURE  ZAPPMM_KABUPATEN OPTIONAL    *"----------------------------------------------------------------------

    ranges: lr_kd_kab for zappmm_kabupaten-kd_kab,               lr_nm_kab for zappmm_kabupaten-nm_kab.

     if zkd_kab ne ''.        clear lr_kd_kab.        lr_kd_kab-sign = 'I'.        lr_kd_kab-option = 'CP'.        lr_kd_kab-low = zkd_kab.        append lr_kd_kab.     endif.

     if znm_kab ne ''.        clear lr_nm_kab.        lr_nm_kab-sign = 'I'.        lr_nm_kab-option = 'CP'.        lr_nm_kab-low = znm_kab.        append lr_nm_kab.     endif.

     select * from zappmm_kabupaten        into corresponding fields of table return_data        where kd_kab in lr_kd_kab and                  nm_kab in lr_nm_kab.       sort return_data by kd_kab.     ENDFUNCTION.

7. Aktifkan program dengan cara tekan Ctrl+F3 .

Function modul display kabupaten telah berhasil dibuat. 

Untuk menjalankannya tekan tombol execute atau f8 .

Isi kode kabupaten lalu execute (f8) .

4.1.5 SAP Function Module ( RFC ) for Change Data

1. Buka t-code se37 lalu isi nama Function module dengan nama Z_CHG_KAB, tekan Create.

2. Isi Function Group dan juga Short textnya lalu Save. Jika belum buat Function group maka kita buat dulu Function groupnya dengan cara masuk menu bar Goto > Function groups > Create group.

3. Pada tab Import isikan Parameter name dengan X_PARAM, Type dengan Type Reference type dengan tabel ZAPPMM_KABUPATEN, centang Optional dan Pass value lalu Enter.

 4. Pada tab Export isikan Paremeter name dengan RETURN, Type dengan Type Reference type dengan BAPIRET2, centang pass value lalu Enter.

 

5. Pada tab Source code isikan code program seperti berikut lalu activate:    FUNCTION z_chg_kab.     *"----------------------------------------------------     *"*"Local interface:     *"  IMPORTING     *"     VALUE(X_PARAM) TYPE  ZAPPMM_KABUPATEN OPTIONAL     *"  EXPORTING     *"     VALUE(RETURN) TYPE  BAPIRET2     *"-----------------------------------------------------

     data: wa_data type zappmm_kabupaten,           xlaeda like zappmm_kabupaten-laeda,           xaenam like zappmm_kabupaten-aenam.

     select single * into wa_data     from zappmm_kabupaten        where kd_kab = x_param-kd_kab.       if sy-subrc ne 0.         return-type = 'E'.         return-message = 'Tidak Ada Data Yang Harus Di Update..'.        exit.       else.       xlaeda = sy-datum.       x_param-laeda = xlaeda.

       xaenam = sy-uname.       x_param-aenam = xaenam.

       if x_param-nm_kab ne ''.           wa_data-nm_kab = x_param-nm_kab.       endif.

       if x_param-laeda ne ''.          wa_data-laeda = x_param-laeda.        endif.

       if x_param-aenam ne ''.          wa_data-aenam = x_param-aenam.

       endif.

        update zappmm_kabupaten        from wa_data.         commit work and wait.

         if sy-subrc eq 0.          return-type = 'S'.          return-message = 'Data Kabupaten Berhasil Di Update'.        else.           return-type = 'E'.           return-message = 'Data Gagal Di Update ..'.        endif.      endif.      ENDFUNCTION.

4.1.6 SAP Function Module ( RFC ) for Insert Data

Untuk membuat function module Insert langkah-langkahnya adalah sebagai berikut:

1. Buka t-code se37. Untuk pertama kalinya kita membuat function module, kita harus membuat function group dulu. Caranya masuk ke menu bar Goto > Function Group > Create Group lalu isi Function Group dan  Shortextnya. Untuk nama Function group harus diawali dengan huruf Z atau Y. Kemudian Save.

2. Buat Function Module dengan cara mengisikan nama function module lalu klick create. Untuk nama Function modulu juga harus diawali dengan huruf Z atau Y.

 

3. Isi Function Group dengan nama function group yang telah kita buat tadi dan juga isi Short text lalu simpan.

 

4. Pada tab Import isikan Parameter name dengan X_PARAM, Type dengan Type Reference type dengan tabel ZAPPMM_KABUPATEN, centang Optional dan Pass value lalu Enter.

5. Pada tab Export isikan Paremeter name dengan RETURN, Type dengan Type Reference type dengan BAPIRET2, centang pass value lalu Enter.

6. Pada tab Source Code isikan code seperti berikut:

    FUNCTION Z_INS_KAB.    *"----------------------------------------------------------------------    *"*"Local interface:    *"  IMPORTING    *"     VALUE(X_PARAM) TYPE  ZAPPMM_KABUPATEN OPTIONAL    *"  EXPORTING    *"     VALUE(RETURN) TYPE  BAPIRET2    *"----------------------------------------------------------------------

    data: wa_head type zappmm_kabupaten,            xcrtdate like zappmm_kabupaten-ersda,            xusname like zappmm_kabupaten-ernam.      if x_param is initial.        return-type = 'E'.        return-message = 'Data harus harus diisi'.       exit.      endif.

       xcrtdate = sy-datum.       x_param-ersda = xcrtdate.

       xusname = sy-uname.       x_param-ernam = sy-uname.

      insert into zappmm_kabupaten values x_param.        if sy-subrc eq 0.          return-type = 'S'.

          return-message = 'Data  Berhasil Disimpan..'.       else.          return-type = 'E'.          return-message = 'Data Gagal Disimpan Oleh Sistem ..'.       endif.    ENDFUNCTION.

7. Pada menu bar klick Tree menu lalu activate pada ZKABUPATEN

8. Tekan Enter.

 

Function Module telah berhasil dibuat, tekan f8 untuk menjalankan program. Isi X_PARAM dengan mengklik tombol value.

 

Isi Kode kabupaten dan nama kabupaten lalu tekan tombol Back dan Execute atau f8.

Data telah berhasil disimpan.

4.1.7 Create Abap Simple Grouping Report

Kali ini kita akan membuat Grouping Abap Report. Langkah-langkahnya sebagai berikut:1. Buka t-code se38 dan beri nama ZREPORTGROUP lalu tekan create.

 

2.  Isi Titel dengan 'Latihan Grouping Report' dan pilih Type dengan '1 Executable program' lalu Save di Local object saja.

3. Ketikkan kode program seperti di bawah ini:

REPORT ZREPORTGROUP NO STANDARD PAGE HEADING.

TABLES : zappmm_kecamatan, zappmm_kabupaten.

TYPES : BEGIN OF ty_gab,        kd_kec LIKE zappmm_kecamatan-kd_kec,        nm_kec LIKE zappmm_kecamatan-nm_kec,

        kd_kab LIKE zappmm_kecamatan-kd_kab,        nm_kab LIKE zappmm_kabupaten-nm_kab,        ersda LIKE zappmm_kecamatan-ersda,        ernam LIKE zappmm_kecamatan-ernam,        END OF ty_gab.

DATA : gi_kec LIKE STANDARD TABLE OF zappmm_kecamatan WITH HEADER LINE,       gi_kab LIKE STANDARD TABLE OF zappmm_kabupaten WITH HEADER LINE,       gi_gab TYPE STANDARD TABLE OF ty_gab WITH HEADER LINE,       wa_gab TYPE STANDARD TABLE OF ty_gab WITH HEADER LINE,       kab(70) TYPE c,       counter TYPE i.DATA: gv_width TYPE i.  " Width of list

SELECTION-SCREEN: BEGIN OF BLOCK head1 WITH FRAME TITLE text-101.SELECT-OPTIONS so_kab FOR zappmm_kabupaten-kd_kab.SELECT-OPTIONS so_kec FOR zappmm_kecamatan-kd_kec.SELECTION-SCREEN: END OF BLOCK head1.

START-OF-SELECTION. gv_width = 117.  PERFORM fm_collect_data.  PERFORM fm_process_data.  PERFORM fm_display_data.END-OF-SELECTION.

FORM : fm_collect_data.  SELECT kd_kab nm_kab INTO CORRESPONDING FIELDS OF TABLE wa_gab    FROM zappmm_kabupaten    WHERE kd_kab IN so_kab.

  IF wa_gab NE ''.    SELECT * INTO CORRESPONDING FIELDS OF TABLE gi_gab      FROM zappmm_kecamatan      FOR ALL ENTRIES IN wa_gab      WHERE kd_kec IN so_kec AND            kd_kab = wa_gab-kd_kab.  ENDIF.

  IF gi_gab NE ''.    SELECT * INTO CORRESPONDING FIELDS OF TABLE gi_kab    FROM zappmm_kabupaten    FOR ALL ENTRIES IN gi_gab      WHERE kd_kab = gi_gab-kd_kab.  ENDIF.

ENDFORM.

FORM: fm_process_data.  LOOP AT wa_gab.    CONCATENATE 'KABUPATEN: ' wa_gab-kd_kab '-' wa_gab-nm_kab INTO kabSEPARATED BY ''.  ENDLOOP.

  LOOP AT gi_gab.    READ TABLE gi_kab WITH KEY kd_kab = gi_gab-kd_kab.    IF sy-subrc = 0.      gi_gab-nm_kab = gi_kab-nm_kab.    ENDIF.    MODIFY gi_gab.  ENDLOOP.ENDFORM.

FORM : fm_display_data.  LOOP AT wa_gab.    WRITE : / kab.    FORMAT COLOR COL_HEADING INTENSIFIED.    WRITE : / sy-uline(75).    WRITE: /'|', (12) 'KD Kecamatan' CENTERED,            '|', (30) 'Nama Kecamatan' CENTERED,            '|', (10) 'Created On' CENTERED,            '|', (10) 'Created By' CENTERED,            '|'.    WRITE : / sy-uline(75).    FORMAT COLOR OFF.    CLEAR counter.    LOOP AT gi_gab WHERE kd_kab = wa_gab-kd_kab.      ADD 1 TO counter.      WRITE : / '|' ,(12) gi_gab-kd_kec,                '|' ,(30) gi_gab-nm_kec,                '|' ,(10) gi_gab-ersda,                '|' ,(10) gi_gab-ernam,                '|'.    ENDLOOP.    FORMAT COLOR COL_TOTAL INTENSIFIED.    WRITE : / sy-uline(75).    WRITE : / '| Total : ', (62)counter LEFT-JUSTIFIED,'|'.    WRITE : / sy-uline(75).    format color off.    write: / .  ENDLOOP.ENDFORM.

4.1.8 Abap Select Options

parameters : so_bukrs like bkpf-bukrs default '6890' obligatory.select-options so_lifnr for bseg-lifnr obligatory. "'220065'.select-options so_budat for bkpf-budat.

selection-screen: begin of block head3 with frame title text-101.parameters: so_po radiobutton group rad1 modif id a user-command r default 'X',            so_npo radiobutton group rad1 modif id c.selection-screen: end of block head3.

selection-screen: begin of block groupbox2 with frame title text-201.

select-options so_mtart for ekpo-mtart no intervals modif id b.select-options so_hkont for bseg-hkont no intervals modif id d default '21211001'.parameters : so_spec as checkbox modif id e user-command r.select-options so_umskz for bseg-umskz modif id f.

selection-screen: end of block groupbox2.

at selection-screen output.

  if so_npo = ''.    loop at screen.      if screen-group1 = 'D' or screen-group1 = 'E' or screen-group1 = 'F'.        clear so_hkont[].        screen-invisible = '1'.        screen-input = '0'.        modify screen.      endif.    endloop.  endif.

  if so_po = ''.    loop at screen.      if screen-group1 = 'B'.        clear so_mtart[].        screen-invisible = '1'.        screen-input = '0'.        modify screen.      endif.    endloop.  endif.

  if so_spec = ''.    loop at screen.      if screen-group1 = 'F'.        clear so_umskz[].        screen-invisible = '1'.        screen-input = '0'.        modify screen.      endif.    endloop.  endif.

4.1.9 Tabstrips on the Selection Screen

Source Code :

  DATA flag(5) TYPE c.

* SUBSCREEN 1

SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.PARAMETERS: param1(20) TYPE c,            param2(20) TYPE c,            param3(20) TYPE c.SELECTION-SCREEN END OF BLOCK b1.SELECTION-SCREEN END OF SCREEN 100.

* SUBSCREEN 2

SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.

PARAMETERS: select1(20) TYPE c ,            select2(20) TYPE c ,            select3(20) TYPE c .SELECTION-SCREEN END OF BLOCK b2.SELECTION-SCREEN END OF SCREEN 200.

* STANDARD SELECTION SCREEN

SELECTION-SCREEN: BEGIN OF TABBED BLOCK tab FOR 10 LINES,                  TAB (20) button1 USER-COMMAND push1,                  TAB (20) button2 USER-COMMAND push2,                  END OF BLOCK tab.

INITIALIZATION.  button1 = 'TAB 1'.  button2 = 'TAB 2'.  tab-prog = sy-repid.  tab-dynnr = 100.  tab-activetab = 'BUTTON1'.

AT SELECTION-SCREEN.  CASE sy-dynnr.    WHEN 1000.      CASE sy-ucomm.        WHEN 'PUSH1'.          tab-dynnr = 100.          tab-activetab = 'BUTTON1'.        WHEN 'PUSH2'.          tab-dynnr = 200.          tab-activetab = 'BUTTON2'.      ENDCASE.    WHEN 100.      flag = '100'.      MESSAGE s888(sabapdocu) WITH text-101 sy-dynnr.    WHEN 200.      flag = '200'.      MESSAGE s888(sabapdocu) WITH text-102 sy-dynnr.  ENDCASE.

START-OF-SELECTION.  CASE flag.    WHEN '100'.      WRITE: / 'Parameter1:', param1,             / 'Parameter2:', param2,             / 'Parameter3:', param3.    WHEN '200'.

      WRITE: / 'Select1:', select1,             / 'Select2:', select2,             / 'Select3:', select3.    WHEN OTHERS.  ENDCASE.

4.1.10 Add a button beside execute button

 

*&---------------------------------------------------------------------**& Report  ZSBK_BUTTON_SAMPING_EXECUTE*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*

REPORT  zbutton_samping_execute.

TABLES : sscrfields, smp_dyntxt.

*----------------------------------------------------------------------**       SELECTION SCREEN                                               **----------------------------------------------------------------------*SELECTION-SCREEN FUNCTION KEY 1.SELECTION-SCREEN FUNCTION KEY 2.

PARAMETERS    : p_param TYPE t001l-werks.

AT SELECTION-SCREEN.  CASE sscrfields-ucomm.    WHEN 'FC01'.      MESSAGE 'Button 1' TYPE 'I'.    WHEN 'FC02'.      MESSAGE 'Button 2' TYPE 'I'.    WHEN OTHERS.

  ENDCASE.

INITIALIZATION.  smp_dyntxt-text = 'Button1'.  smp_dyntxt-icon_id = '@PO@'.

  smp_dyntxt-icon_text = 'Button1'.  smp_dyntxt-quickinfo = 'Button1'.  sscrfields-functxt_01 = smp_dyntxt.

  smp_dyntxt-text = 'Button2'.  smp_dyntxt-icon_id = '@PO@'.  smp_dyntxt-icon_text = 'Button2'.  smp_dyntxt-quickinfo = 'Button2'.  sscrfields-functxt_02 = smp_dyntxt.