SAP Řízení tabulky ABAP s příklady

⚡ Chytré shrnutí

SAP Řízení tabulek ABAP zobrazuje interní tabulku jako posouvatelnou mřížku na obrazovce zabudované v Screen. PainterTato stránka vysvětluje jeho funkce, deklaraci CONTROLS, práci s kurzorem, smyčky PBO a PAI a atributy sloupců.

  • 🖥️ Základní definice: Ovládací prvek tabulky je vylepšená smyčka kroků, která zobrazuje data tabulky s vzhledem a dojmem mřížky desktopové aplikace.
  • 🧰 Vestavěné funkce: Posouvání, změna velikosti sloupců, změna pořadí sloupců, výběr řádků a uložení nastavení zobrazení jsou řízeny SAPgrafické rozhraní frontendu.
  • 📜 Pravidlo jednoho řádku: Řádek krokové smyčky může zabírat několik řádků obrazovky, zatímco řádek ovládacího prvku tabulky se musí vždy vejít na jeden řádek.
  • ⌨️ Prohlášení: OVLÁDÁNÍ TYP TABLEVIEW POUŽITÍM SCREEN propojuje prvek obrazovky s programem ABAP.
  • 🎯 Ovládání kurzoru: Příkaz SET CURSOR umístí kurzor na PBO a příkaz GET CURSOR přečte pole a řádek na PAI.
  • 🔁 Přenos dat: LOOP AT … USING CONTROL probíhá na PBO a obyčejná LOOP AT probíhá na PAI a data se uvnitř těchto smyček přesouvají mezi obrazovkou a interní tabulkou.
  • 🎨 Dynamické atributy: Tabulka SCREEN a Struktura -cols mění viditelnost a formátování sloupců za běhu.

SAP Ovládání tabulky ABAP

Co je ovládací prvek tabulky v SAP ABAP?

Ovládací prvky tabulky a smyčky kroků jsou objekty pro zobrazení tabulky na obrazovce, které přidáte na obrazovku na obrazovce Painter.

Z hlediska programování jsou ovládací prvky stolu a krokové smyčky téměř úplně stejné. Ovládací prvky tabulky jsou jednoduše vylepšené smyčky kroků, které zobrazují data se vzhledem a chováním souvisejícím s tabulkami v aplikacích pro stolní počítače.

Vlastnosti ABAP Table Control

Pomocí ovládacích prvků tabulky může uživatel:

  • Procházejte tabulkou svisle a vodorovně
  • Změňte velikost šířky sloupce
  • Posouvání v poli (když je obsah pole širší než pole)
  • Vyberte řádky nebo sloupce tabulky
  • Změňte pořadí sloupců
  • Uložte aktuální nastavení zobrazení pro budoucí použití

Ovládací prvky tabulky také nabízejí speciální funkce formátování (některé automatické, některé volitelné), které usnadňují prohlížení a používání tabulek. Table Control poskytuje –

  • automatická změna velikosti tabulky (vertikální a horizontální), když uživatel změní velikost okna
  • oddělovací čáry mezi řádky a mezi sloupci (vertikální a horizontální)
  • pole záhlaví sloupců pro všechny sloupce

Obecně platí, že mnoho funkcí poskytovaných ovládacím prvkem tabulky je zpracováno lokálně vaším systémem SAPgui frontend, takže je nemusíte programovat sami. Jedinou významnou výjimkou je vertikální rolování.

Příklad (transakce TZ60)

SAP Ovládání tabulky ABAP

Transakce TZ60 výše ukazuje konečný výsledek: mřížku se záhlavími sloupců, oddělovacími čarami a sloupcem pro výběr. Rozdíly oproti starší smyčce kroků jsou shrnuty dále.

Ovládání tabulky vs. kroková smyčka

Jednou z vlastností krokových smyček je, že řádky jejich tabulky mohou na obrazovce zabírat více než jeden řádek. Řádek ovládacího prvku tabulky musí být naproti tomu vždy obsažen v jednom řádku (i když je možné posouvání). Níže uvedená tabulka porovnává oba prvky obrazovky.

Kritéria Ovládací prvek tabulky Kroková smyčka
Rozložení řádků Jeden řádek je vždy jeden řádek obrazovky Jeden řádek může zabírat několik řádků obrazovky
Manipulace se sloupci Uživatel může změnit velikost, pořadí a skrytí sloupců Pevné rozvržení sloupců definované na obrazovce
Posouvání Horizontální rolování frontendem, vertikální rolování naprogramované v PAI Naprogramováno kompletně v kódu ABAP
Prohlášení OVLÁDACÍ PRVKY … TYP TABLEVIEW POUŽITÍM SCREEN Žádná řídicí struktura v programu
Nastavení obrazovky Uživatel si může uložit vlastní rozvržení Není k dispozici

Protože ovládací prvek tabulky je moderním prvkem, zbytek této stránky jej programuje.

Jak vytvořit a naprogramovat ovládací prvek tabulky

Ovládací prvek tabulky potřebuje prvek obrazovky, strukturu ovládacího prvku v programu a smyčku v PBO i PAI. Následující podkapitoly se řídí tímto pořadím.

Deklarace kontroly

Chcete-li ovládat ovládací prvky tabulky v programech ABAP, musíte ovládací prvek deklarovat v deklarační části programu pro každý ovládací prvek tabulky pomocí následujícího příkazu:

CONTROLS <ctrl> TYPE TABLEVIEW USING SCREEN <scr>

kde je název ovládacího prvku tabulky na obrazovce v programu ABAP. Ovládací prvek umožňuje programu ABAP číst atributy ovládacího prvku tabulky a ovlivňovat ovládací prvek. je číslo obrazovky, kde jsou načteny počáteční hodnoty tabulky.

Nastavení a čtení pozice kurzoru

Pozici kurzoru pro ovládací prvek tabulky lze nastavit následujícími způsoby:

U PBO můžete nastavit kurzor na určité pole určitého řádku ovládacího prvku tabulky.

SET CURSOR FIELD <f> LINE <lin> [OFFSET <off>]

Pomocí volitelného přídavku OFFSET můžete zadat offset kurzoru do pole, jak je popsáno v části Nastavení pozice kurzoru.

Na PAI si můžete přečíst aktuální pozici kurzoru.

GET CURSOR FIELD <f> LINE <lin> ...

Kromě informací uvedených v poli Zjištění pozice kurzoru obsahuje informaci, na kterém řádku ovládacího prvku tabulky je aktuálně kurzor. Můžete také použít

GET CURSOR LINE <lin>.

pro určení řádku ovládacího prvku tabulky. SY-SUBRC umožňuje zkontrolovat, zda je kurzor umístěn v řádku ovládacího prvku tabulky.

Čtení odpovídajícího řádku interní tabulky

Pro získání odpovídajícího řádku vnitřní stůl:

GET CURSOR line <lin>.

ind = <table_control>-top_line + <lin> - 1.

Read table <itab> index ind.

Systémová proměnná stepl – obsahuje aktuální index řádku tabulky ve smyčce … endloop. Loopc – obsahuje počet řádků viditelných v tabulce

Vytvoření ovládacího prvku na obrazovce Painter

Chcete-li vytvořit ovládací prvek tabulky

  1. Přidání prvku ovládání tabulky na obrazovku
  2. Pojmenujte ovládací prvek tabulky. V programu ABAP deklarujte strukturu se stejným (CONTROLS typ TABLEVIEW pomocí obrazovky )
  3. Pro vytvoření polí přejděte k funkci Pole Dict./Program.
    • Zadejte název struktury, jejíž pole chcete. (Pokud chcete, aby to vybral ze slovníku vašeho programu, klikněte na příslušné tlačítko).
    • V seznamu polí vyberte požadovaná pole a zvolte OK.
    • Klikněte do oblasti ovládání tabulky

Pokud chcete sloupec výběru, zaškrtněte příslušné políčko v atributech a pojmenujte jej. Vytvořte pole v program ABAP.

Kódování smyček PBO a PAI

V PBO byste měli mít výpis

LOOP at <itab> USING CONTROL <cntrl_name>.

ENDLOOP.

V PAI byste měli mít.

LOOP at <itab>.

ENDLOOP.

Právě v rámci smyček dochází k přenosu dat mezi obrazovkou a interní tabulkou. Při naplňování interní tabulky použijte DESCRIBE TABLE. LINES -lines, pro uložení celkového počtu řádků v ovládacím prvku. Příkaz FIELD lze použít k řízení, kdy dochází k přenosu dat.

Warning️ Varování: Smyčka PBO musí pojmenovat ovládací prvek pomocí příkazu USING CONTROL. Bez něj ovládací prvek neví, kolik řádků existuje, a vertikální rolování přestane fungovat.

Změna atributů sloupců za běhu

Pro změnu atributů jednotlivých buněk dočasně změňte tabulku SCREEN v PBO. Můžete změnit atributy struktury vytvořené příkazem CONTROLS

<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.

💡 Tip: Smyčka přes -cols v PBO pro skrytí nebo ochranu sloupce pro danou uživatelskou roli, spíše než pro vytvoření druhé obrazovky.

Nejčastější dotazy

Frontend zvládá horizontální rolování, ale vertikální rolování je kódováno v PAI. Vyhodnoťte SY-UCOMM pro kódy funkcí rolování a před spuštěním dalšího PBO přesuňte pole top_line řídicí struktury.

An Mřížka ALV nabízí řazení, filtrování, součty a export bez nutnosti dalšího kódu, takže je vhodný pro zobrazení seznamů. Ovládací prvek tabulky je vhodnější, když obrazovka vyžaduje vlastní vstupní logiku a plnou kontrolu nad každou buňkou.

SY-STEPL obsahuje index řádku aktuálně zpracovávaného uvnitř smyčky obrazovky a SY-LOOPC obsahuje počet řádků viditelných na obrazovce. Oba jsou vyplněny pouze uvnitř smyček LOOP … ENDLOOP ovládacího prvku.

Ano. Asistenti umělé inteligence ve vývojových nástrojích ABAP navrhují deklaraci CONTROLS, obě smyčky obrazovky a logiku rolování z popisu interní tabulky. Vygenerovaná logika toku je stále třeba otestovat v tabulce Screen. Painter.

Nástroje pro analýzu s využitím umělé inteligence čtou logiku toku dynpro, vypisují pole a funkční kódy a navrhují ekvivalentní návrh založený na Fiori nebo ALV. Návrh zkracuje fázi analýzy modernizačního projektu.

Shrňte tento příspěvek takto: