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.

  • 🖥️ Temel Tanım: Tablo denetimi, masaüstü uygulama ızgarasının görünüm ve hissiyatıyla tablo verilerini gösteren geliştirilmiş bir adım döngüsüdür.
  • 🧰 Dahili Özellikler: Kaydırma, sütun boyutlandırma, sütun sıralaması değiştirme, satır seçimi ve kaydedilmiş görüntüleme ayarları şu şekilde yönetilir: SAPGUI ön yüzü.
  • 📜 Tek Çizgi Kuralı: Bir adım döngüsü satırı birden fazla ekran satırına yayılabilirken, bir tablo kontrol satırı her zaman tek bir satıra sığmalıdır.
  • ⌨️ beyanı: KONTROLLER EKRAN KULLANARAK TABLO GÖRÜNÜMÜ TİPİ Ekran öğesini ABAP programına bağlar.
  • 🎯 İmleç İşleme: SET CURSOR komutu imleci PBO konumuna getirirken, GET CURSOR komutu PAI'deki alanı ve satırı okur.
  • 🔁 Veri aktarımı: PBO'da LOOP AT … USING CONTROL komutu, PAI'de ise düz bir LOOP AT komutu çalışır ve bu döngüler içinde ekran ile dahili tablo arasında veri aktarımı gerçekleşir.
  • 🎨 Dinamik Nitelikler: SCREEN tablosu ve -cols yapısı, çalışma zamanında sütun görünürlüğünü ve biçimlendirmesini değiştirir.

SAP ABAP Masa Kontrolü

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)

SAP ABAP Masa Kontrolü

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

  1. Ekranınıza bir tablo kontrol öğesi ekleyin.
  2. Tablo denetimine bir isim verin. ABAP programında aynı isimle bir yapı tanımlayın (CONTROLS). TABLEVIEW'ı EKRAN KULLANARAK yazın )
  3. 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.

SSS

Ön uç yatay kaydırmayı yönetir, ancak dikey kaydırma PAI'de kodlanmıştır. Kaydırma fonksiyonu kodları için SY-UCOMM'u değerlendirin ve bir sonraki PBO çalıştırılmadan önce kontrol yapısının top_line alanını taşıyın.

An ALV ızgarası Ekstra kod gerektirmeden sıralama, filtreleme, toplam alma ve dışa aktarma işlemleri sağladığı için liste görüntüleme için uygundur. Ekranın özel giriş mantığına ve her hücre üzerinde tam kontrole ihtiyaç duyduğu durumlarda tablo denetimi tercih edilir.

SY-STEPL, ekran döngüsü içinde şu anda işlenen satırın indeksini, SY-LOOPC ise ekranda görünen satır sayısını tutar. Her ikisi de yalnızca kontrolün LOOP … ENDLOOP bloğu içinde doldurulur.

Evet. ABAP geliştirme araçlarındaki yapay zeka asistanları, dahili tablonun tanımından yola çıkarak CONTROLS bildirimini, her iki ekran döngüsünü ve kaydırma mantığını taslak haline getirir. Oluşturulan akış mantığının yine de ekranda test edilmesi gerekir. Painter.

Yapay zeka analiz araçları, bir dynpro'nun akış mantığını okur, alanları ve fonksiyon kodlarını listeler ve eşdeğer bir Fiori veya ALV tabanlı tasarım önerir. Bu öneri, modernizasyon projesinin analiz aşamasını kısaltır.

Bu yazıyı şu şekilde özetleyin: