SAP Örneklerle ABAP Tablo Kontrolü
Tablo kontrolleri ve adım döngüleri, Ekrandaki bir ekrana eklediğiniz ekran tablosu görüntüsüne yönelik nesnelerdir. Painter.
Programlama açısından bakıldığında tablo kontrolleri ve adım döngüleri neredeyse tamamen aynıdır. Tablo kontrolleri, verileri masaüstü uygulamalarındaki tablolarla ilişkili görünüm ve hisle görüntüleyen, basit bir şekilde geliştirilmiş adım döngüleridir.
ABAP Masa Kontrolünün Özellikleri
Tablo kontrolleriyle kullanıcı şunları yapabilir:
- Tabloyu dikey ve yatay olarak kaydırın
- Bir sütunun genişliğini yeniden boyutlandırma
- Bir alan içinde kaydırma (alan içerikleri alandan daha geniş olduğunda)
- Tablo satırlarını veya sütunlarını seçin
- Sütun sırasını yeniden sıralayın
- Mevcut ekran ayarlarını ileride kullanmak üzere kaydedin
Tablo kontrolleri ayrıca tablolara bakmayı ve kullanmayı kolaylaştıran özel biçimlendirme özellikleri de (bazıları otomatik, bazıları isteğe bağlı) sunar. Masa Kontrolü şunları sağlar:
- kullanıcı pencereyi yeniden boyutlandırdığında otomatik tablo yeniden boyutlandırma (dikey ve yatay)
- satırlar arasında ve sütunlar arasında ayırıcı çizgiler (dikey ve yatay)
- tüm sütunlar için sütun başlığı alanları
Adım döngülerinin bir özelliği, tablo satırlarının ekranda birden fazla satıra yayılabilmesidir. Öte yandan, tablo kontrolünün bir satırı her zaman tek bir satırda yer almalıdır (kaydırma mümkün olmasına rağmen).
Genel olarak, tablo kontrolü tarafından sağlanan özelliklerin çoğu, sisteminizin yerel olarak SAPgui ön ucu olduğundan bunları kendiniz programlamanıza gerek yoktur. Bunun tek dikkate değer istisnası dikey kaydırmadır.
Örnek (İşlem TZ60)
Sözdizimi
ABAP programlarında tablo denetimlerini işlemek için, programın bildirim kısmında her tablo denetimi için aşağıdaki ifadeyi kullanarak bir denetim bildirmeniz gerekir:
CONTROLS <ctrl> TYPE TABLEVIEW USING SCREEN <scr>
Neresi ABAP programında bir ekrandaki tablo kontrolünün adıdır. Kontrol ABAP programının tablo kontrolünün niteliklerini okumasını ve kontrolü etkilemesini sağlar. Burada, tablonun başlangıç değerlerinin yüklendiği ekran numarasıdır.
Bir tablo denetimi için İmleç Konumu aşağıdaki yollarla ayarlanabilir:
PBO'da imleci bir tablo kontrolünün belirli bir satırının belirli bir alanına ayarlayabilirsiniz.
SET CURSOR FIELD <f> LINE <lin> [OFFSET <off>]
İsteğe bağlı OFFSET eklentisini kullanarak, İmleç Konumunu Ayarlama altında açıklandığı gibi alana imlecin ofsetini girebilirsiniz.
PAI'de mevcut imleç konumunu okuyabilirsiniz.
GET CURSOR FIELD <f> LINE <lin> ...
İmleç Konumunu Bulma altında verilen bilgilere ek olarak, alan İmlecin o anda tablo kontrolünün hangi satırında olduğu hakkında bilgi içerir. Ayrıca kullanabilirsin
GET CURSOR LINE <lin>.
Tablo kontrolünün satırını belirlemek için. SY-SUBRC, imlecin tablo kontrolünün bir satırına yerleştirilip yerleştirilmediğini kontrol etmenizi sağlar.
İlgili satırı almak için iç masa:
GET CURSOR line <lin>. ind = <table_control>-top_line + <lin> - 1. Read table <itab> index ind.
Sistem değişkeni stepl – geçerli tablo satırı indeksini bir döngü … son döngüde içerir. Loopc – tabloda görünen satır sayısını içerir
Tablo kontrolü oluşturmak için
1.Ekranınıza bir tablo kontrol öğesi ekleyin
2.Tablo kontrolüne bir isim verin. ABAP programında aynı ( CONTROLS EKRANI KULLANARAK TABLO GÖRÜNÜMÜ yazın )
3.Alanlar oluşturmak için Dict./Program alanları işlevine gidin.
- Alanlarını istediğiniz yapının adını girin. (Programınızın sözlüğünden seçmesini istiyorsanız ilgili butona tıklayın).
- Alan listesinde istediğiniz alanları seçin ve tamam'ı seçin.
- Tablo kontrol alanına tıklayın
Bir seçim sütunu istiyorsanız, niteliklerde uygun onay kutusunu işaretleyin ve ona bir ad verin. Alanı şurada oluşturun: ABAP programı.
PBO'da şu ifadeye sahip olmalısınız:
LOOP at <itab> USING CONTROL <cntrl_name>. ENDLOOP.
PAI'de sahip olmanız gerekir.
LOOP at <itab>. ENDLOOP.
Ekran ile dahili tablo arasında veri aktarımı döngüler içerisinde gerçekleşir. Dahili tabloyu doldurduğunuzda DESCRIBE TABLE'ı kullanın. HATLAR -lines, kontroldeki toplam satır sayısını saklamak için. FIELD ifadesi veri aktarımının ne zaman gerçekleşeceğini kontrol etmek için kullanılabilir
Bireysel hücrelerin niteliklerini değiştirmek için PBO'daki SCREEN tablosunu geçici olarak değiştirin. CONTROLS deyimi tarafından oluşturulan yapının niteliklerini değiştirebilirsiniz.
<cntrl>-fixed_cols etc are the attributes of the control <cntrl>-cols-index etc are the attributes of the columns. <cntrl>-cols-screen-invisible etc are the screen attributes of each column.