SAP Örneklerle ABAP Tablo Kontrolü
⚡ Akıllı Özet
SAP ABAP Tablo Kontrolü, Screen sınıfına entegre edilmiş bir ekranda dahili bir tabloyu kaydırılabilir bir ızgara olarak görüntüler. PainterBu sayfa, özelliklerini, CONTROLS bildirimini, imleç kullanımını, PBO ve PAI döngülerini ve sütun özniteliklerini açıklamaktadır.

Tablo denetimi nedir? SAP ABAP mı?
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ı
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)
Yukarıdaki TZ60 işlemi, nihai sonucu göstermektedir: sütun başlıkları, ayırıcı çizgiler ve bir seçim sütunu içeren bir tablo. Eski adım döngüsünden farklılıklar aşağıda özetlenmiştir.
Tablo Kontrolü ve Adım Döngüsü Karşılaştırması
Adım döngülerinin bir özelliği, tablo satırlarının ekranda birden fazla satıra yayılabilmesidir. Öte yandan, bir tablo denetiminin bir satırı her zaman tek bir satırda yer almalıdır (kaydırma mümkün olsa da). Aşağıdaki tablo, iki ekran öğesini karşılaştırmaktadır.
| Kriterler | Masa Kontrolü | Adım Döngüsü |
|---|---|---|
| Satır düzeni | Bir satır her zaman bir ekran satırına eşittir. | Bir satır birden fazla ekran satırına yayılabilir. |
| Sütun işleme | Kullanıcı sütunların boyutunu değiştirebilir, sırasını düzenleyebilir ve gizleyebilir. | Ekranda tanımlanmış sabit sütun düzeni |
| kaydırma | Yatay kaydırma ön uç tarafından, dikey kaydırma ise PAI'de programlanmıştır. | Tamamen ABAP koduyla programlanmıştır. |
| Beyan | KONTROLLER … TABLEVIEW TİPİNİ EKRAN KULLANARAK OLUŞTURUN | Programda herhangi bir kontrol yapısı bulunmamaktadır. |
| Görüntü ayarları | Kullanıcı kişisel bir düzeni kaydedebilir. | Müsait değil |
Tablo kontrolü modern bir unsur olduğu için, bu sayfanın geri kalanı onu programlamaktadır.
Tablo Kontrolü Nasıl Oluşturulur ve Programlanır?
Bir tablo kontrolü, bir ekran öğesine, programda bir kontrol yapısına ve hem PBO hem de PAI'de bir döngüye ihtiyaç duyar. Aşağıdaki alt bölümler bu sırayı takip eder.
Kontrolün ilan edilmesi
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.
İmleç konumunu ayarlama ve okuma
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 denetiminin satırını belirlemek için. SY-SUBRC, imlecin bir tablo denetiminin satırında olup olmadığını kontrol etmenizi sağlar.
İlgili iç tablo satırını okuma
İ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
Ekranda kontrol oluşturma Painter
Tablo kontrolü oluşturmak için
- Ekranınıza bir tablo kontrol öğesi ekleyin.
- Tablo denetimine bir isim verin. ABAP programında aynı isimle bir yapı tanımlayın (CONTROLS). TABLEVIEW'ı EKRAN KULLANARAK yazın )
- Alan oluşturmak için Sözlük/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 ve PAI döngülerinin kodlanması
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.
Veri aktarımı, ekran ile dahili tablo arasında döngüler içinde gerçekleşir. Dahili tabloyu doldururken DESCRIBE TABLE komutunu kullanın. LINES -lines, kontroldeki toplam satır sayısını saklamak için kullanılır. FIELD ifadesi, veri aktarımının ne zaman gerçekleşeceğini kontrol etmek için kullanılabilir.
⚠️Uyarı: PBO döngüsünde kontrolün adı USING CONTROL ile belirtilmelidir. Aksi takdirde kontrol kaç satır olduğunu bilemez ve dikey kaydırma çalışmayı durdurur.
Çalışma zamanında sütun özelliklerini değiştirme
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.
💡 İpucu: Döngü üzerinden -PBO dosyasındaki `cols` parametresi, ikinci bir ekran oluşturmak yerine, belirli bir kullanıcı rolü için bir sütunu gizlemek veya korumak için kullanılır.

