TAB CONTROL / Module Pool

Abap ile ekran geliştirmelerinde ( Module Pool ) bir çok senaryoda ihtiyacınız olan TAB CONTROL yapısı ile ilgili hazırladığım küçük demonun size yardımcı olacaktır.

Bilindiği gibi Tab Control yapısı birden fazla ekranın tek bir alanda toplanarak seçimlere göre ekranın değişmesini sağlar. Sekmeler üzerinden seçtiğiniz ekranı size sunarak ekran alanından tasarruf etmenize yardımcı olur.

Abap ile tab control geliştirmesinde ana ekran içerisine ekleyeceğimiz tab control’üne bağlı olan sekmelere subscreen ekleyerek bu ekranları oluşturuyoruz.

ilk olarak ana ekranımızı oluşturuyoruz.


Ana ekranı oluşturduktan sonra ekran alanı içerisine tab control yapısını ekliyoruz sonrasında ise control’e ait tanımlamaları belirliyoruz.

TAB_CONTROL adını verdiğimiz yapı içerisinde Tab1 ve Tab2 alanları için tanımlamaları yaptıktan sonra her ikisi içinde ayrı ayrı Subscreen ekliyoruz. Tab1 ve Tab2 alaları içerisine eklediğimiz subscreen’ler için isim veriyoruz ve bu isimleri tab’lar içerisine tanımlıyoruz.

Tab Control yapısını hazırladıktan sonra artık tab’lar içerisine çağıracağımız subscreen yapılarını ve içeriğini oluşturabiliriz. Aynı ekran oluşturur gibi yeni bir ekran oluşturduktan sonra SUBSCREEN seçeneğini işaretliyoruz.

Her iki subscreen içeriğini oluşturduktan sonra bu ekranları Ana Ekran üzerinde tanımlamamız ve SUB1 / SUB2 ismiyle çağıracağımızı belirtmemiz gerekiyor. Bunu sebebi Tab Control yapısı içerisinde her tab’da yer alan screen tanımlamasında belirttiğimiz isim ile çağırılması gerekliliğinden kaynaklanmasıdır.

Oluşturduğumuz ana ekrana ait BEFORE OUTPUT ve AFTER INPUT alanlarında bu tanımlamaları yapıyoruz.

PROCESS BEFORE OUTPUT.

  MODULE STATUS_0001.

  CALL SUBSCREEN SUB1 INCLUDING SY-REPID '0100'.
  CALL SUBSCREEN SUB2 INCLUDING SY-REPID '0200'.


PROCESS AFTER INPUT.

  MODULE USER_COMMAND_0001.

  CALL SUBSCREEN SUB1.
  CALL SUBSCREEN SUB2.

Ana ekrana ait User Command alanında hangi tab seçildiyse ona ait subscreen aktif olmas için gerekli düzenlemeyi yapıyoruz. Ancak ilk olarak programda tab control’e ait isimle aynı isimde controls tanımlamasını oluşturmayı unutmuyoruz.

REPORT ZLRNG_P_DEMO1.

CONTROLS : TAB_CONTROL TYPE TABSTRIP.


CALL SCREEN '0001'.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0001  INPUT
*&---------------------------------------------------------------------*
MODULE USER_COMMAND_0001 INPUT.

  IF SY-UCOMM EQ 'TAB1'.
    TAB_CONTROL-ACTIVETAB = 'TAB1'.
  ELSEIF SY-UCOMM EQ 'TAB2'.
    TAB_CONTROL-ACTIVETAB = 'TAB2'.
  ENDIF.
ENDMODULE.

Sonuç olarak programı çalıştırdığınızda aşağıdaki gibi bir sonuç elde edeceksiniz.


Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s