SAP Programowanie raportów ABAP

⚡ Inteligentne podsumowanie

Programowanie raportów ABAP tworzy programy wykonywalne, które wybierają, przetwarzają i wyświetlają duże ilości danych. SAP Dane. Ta strona wyjaśnia dodatki do nagłówka raportu, ekran wyboru, sekwencję zdarzeń, polecenia formatowania, listy interaktywne i logiczne bazy danych.

  • 📊 Główny cel: Program do tworzenia raportów odczytuje dane z kilku tabel, przetwarza je i prezentuje w postaci listy, którą można sformatować, pobrać lub wysłać pocztą elektroniczną.
  • 🧾 Rodzaj programu: Każdy raport jest wykonywalnym programem typu 1, powiązanym z obszarem aplikacji i sterowanym wyłącznie przez zdarzenia.
  • 🏁 Dodatki do nagłówka: BRAK STANDARDOWEGO NAGŁÓWKA STRONY, LINE-ROZMIAR, LINE-COUNT i MESSAGE-ID należą do pierwszego polecenia REPORT.
  • ⌨️. Ekran wyboru: PARAMETERS akceptuje pojedynczą wartość, natomiast SELECT-OPTIONS akceptuje zakres lub zestaw wartości.
  • ⏱️. Sekwencja zdarzeń: ŁADOWANIE PROGRAMU, INICJALIZACJA, NA EKRANIE WYBORU, POCZĄTEK WYBORU i KONIEC WYBORU są wykonywane w ustalonej kolejności.
  • 🖱️. Listy interaktywne: HIDE przechowuje wartości pól wybranego wiersza, a HOTSPOT zamienia pole listy w klikalny element listy drugorzędnej.
  • 🗄️ Logiczne bazy danych: Stworzone w SE36, zastępują polecenia SELECT zdarzeniem GET i dodają centralne sprawdzanie autoryzacji.

SAP Programowanie raportów ABAP

Czym jest programowanie raportów ABAP?

SAP-ABAP obsługuje dwa typy programów – programy raportowe i programy dialogowe. Programy raportowe są używane, gdy konieczne jest wyświetlenie dużej ilości danych.

Cel/wykorzystanie programów raportujących

  • Stosuje się je, gdy dane z wielu tabel muszą zostać wybrane i przetworzone przed ich prezentacją.
  • Używane, gdy raporty wymagają specjalnego formatu
  • Używane, gdy raport ma zostać pobrany z SAP do arkusza programu Excel w celu rozmieszczenia.
  • Używane, gdy raport musi zostać wysłany do konkretnej osoby.

Ważne uwagi dotyczące programu raportów

  • Programy raportujące są zawsze programami wykonywalnymi. Typ programu to zawsze 1.
  • Każdy program raportujący odpowiada konkretnemu typowi aplikacji, tj. sprzedaży i dystrybucji, FI – CO itp. Może to być również aplikacja krzyżowa, tj. typ „*”.
  • Programowanie raportów to programowanie sterowane zdarzeniami.
  • Pierwszą linią programu raportującego jest zawsze Raport .
  • Aby pominąć nagłówek listy lub nazwę programu, należy dodać Brak standardowego nagłówka strony Jest używane.
  • Rozmiar linii dla konkretnego raportu można ustawić za pomocą dodatku Rozmiar linii .
  • Liczbę wierszy dla konkretnej strony można ustawić za pomocą dodatku liczba linii n(n1). N to liczba wierszy strony, a N1 to liczba wierszy zarezerwowanych na stopkę strony.
  • Aby wyświetlić jakąkolwiek informację lub komunikat o błędzie dodajemy do programu klasę komunikatu za pomocą dodatku: ID wiadomości . Klasy komunikatów są utrzymywane w SE91.

Dlatego idealny program raportowania powinien zaczynać się od:

Report <report name> no standard page heading

line-size <size>

line-count <n(n1)>

message-id <message class>.

Program raportowy kontra program dialogowy

Oba typy programów działają w tym samym systemie, ale rozwiązują przeciwstawne problemy. Raport odczytuje i wyświetla dane, podczas gdy program dialogowy pozwala użytkownikowi zarządzać nimi za pośrednictwem ekranów.

kryteria Program raportów Program Dialogowy
Rodzaj programu Typ 1, wykonywalny Typ M, pula modułów
Zaczęty przez Nazwa programu lub kod transakcji Tylko kod transakcji
Kontrola przepływu Wydarzenia takie jak INICJALIZACJA i ROZPOCZĘCIE WYBORU Logika przepływu ekranu z modułami PBO i PAI
Wprowadzane przez użytkownika Wygenerowany ekran wyboru Ekrany zaprojektowane w Screen Painter
Typowe zastosowanie Wyświetlanie i pobieranie dużych ilości danych Tworzenie i zmiana danych biznesowych

Ekran wyboru to miejsce, w którym raport zbiera dane wejściowe, dlatego zostanie on opisany poniżej.

Ekran wyboru

„Ekran wyboru” to ekran, na którym określa się wartości wejściowe, dla których powinien zostać uruchomiony program.

Ekran wyboru jest zwykle generowany na podstawie pliku

  1. Parametry
  2. Wybierz opcje

Składnia

Selection-screen begin of screen <screen #>
selection-screen begin of block <#>  with frame title <text>
.........
.........
selection-screen end of block <#>
selection-screen end of screen <screen #>

Parametry

Parametry pomagają w dokonaniu dynamicznego wyboru. Mogą pomieścić tylko jedną wartość na jeden cykl wykonania programu.

Składnia

Definiowanie parametrów jako typu danych

Parameters p_id(30) type c.

Definiowanie parametrów, takich jak pole tabeli.

Parameter p_id like <table name>-<field name>.

Parametrami mogą być zarówno pola wyboru, jak i przyciski radiowe.

Parameters p_id as checkbox.Parameters p_id1 radiobutton group <group name>.
Parameters p_id2  radiobutton group <group name>.

Parametry mogą być listami pól.

Parameter p_id like <table name>-<field name> as listbox

Wybierz opcje

Opcja wyboru służy do wprowadzania zakresu wartości lub zestawu wartości do programu

Składnia

select-options s_vbeln for vbak-vbeln.

Ekran wyboru

Zrzut ekranu pokazuje pola wprowadzania danych dolne i górne generowane przez opcję wyboru, wraz z przyciskiem wielokrotnego wyboru.

Można także zdefiniować opcję wyboru, taką jak zmienna

select-options s_vbeln for vbak-vbeln no intervals no-extension

Po zebraniu danych wejściowych program reaguje na ustaloną sekwencję zdarzeń.

Zdarzenia w programie raportów ABAP

Programy raportujące ABAP są programy sterowane zdarzeniami. Różne zdarzenia w programie raportu to:

Ładowanie programu

  • Wyzwala powiązane zdarzenie w sesji wewnętrznej po załadowaniu programu typu 1, M, F lub S.
  • Uruchamia również powiązany blok przetwarzania raz i tylko raz dla każdego programu i sesji wewnętrznej.
  • Blok przetwarzający LOAD-OF-PROGRAM ma mniej więcej tę samą funkcję dla: programu ABAP typu 1, M, F lub S, jakie konstruktor ma dla klas w obiektach ABAP

Inicjalizacja.

  • To zdarzenie jest wykonywane przed wyświetleniem ekranu wyboru.
  • Inicjalizacja wszystkich wartości.
  • Można przypisać inne wartości niż wartości domyślne na ekranie wyboru.
  • Możesz wypełnić ekran wyboru pewnymi wartościami w czasie wykonywania.

Na ekranie wyboru.

  • Zdarzenie zostaje zrealizowane po przetworzeniu ekranu wyboru (na końcu PAI).
  • Tutaj odbywa się walidacja i kontrola wprowadzonych wartości

Początek selekcji.

  • Tutaj program rozpoczyna wybieranie wartości z tabel.

Koniec selekcji.

  • Po wybraniu wszystkich danych, zdarzenie to zapisuje dane na ekranie.

Wydarzenia interaktywne

  • Używany do interaktywnego raportowania. Służy do tworzenia listy szczegółowej z listy podstawowej.

💡 Wskazówka: Polecenia napisane bez żadnego słowa kluczowego event domyślnie należą do START-OF-SELECTION, dlatego raport jest nadal generowany, gdy zdarzenie nie występuje.

Przykład: prosty program raportów ABAP

Poniższy program łączy dodania, ekran wyboru i zdarzenia w jeden raport roboczy. Odczytuje nagłówki zamówień sprzedaży z VBAK dla numerów wprowadzonych na ekranie wyboru i zapisuje je w postaci listy.

REPORT z_sales_order_list NO STANDARD PAGE HEADING
                          LINE-SIZE 80
                          LINE-COUNT 65(3)
                          MESSAGE-ID zsd.

TABLES: vbak.

DATA: lt_vbak TYPE STANDARD TABLE OF vbak,
      ls_vbak TYPE vbak.

* Selection screen
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln.
PARAMETERS: p_erdat LIKE vbak-erdat.

INITIALIZATION.
  p_erdat = sy-datum.

AT SELECTION-SCREEN.
  IF p_erdat > sy-datum.
    MESSAGE e001(zsd).          " Date must not lie in the future
  ENDIF.

START-OF-SELECTION.
  SELECT * FROM vbak
    INTO TABLE lt_vbak
    WHERE vbeln IN s_vbeln
      AND erdat LE p_erdat.

END-OF-SELECTION.
  LOOP AT lt_vbak INTO ls_vbak.
    WRITE: / ls_vbak-vbeln, ls_vbak-erdat, ls_vbak-netwr.
    HIDE ls_vbak-vbeln.
  ENDLOOP.

Warto zwrócić uwagę na trzy szczegóły. Funkcja INITIALIZATION wypełnia parametr daty przed pojawieniem się ekranu wyboru. Funkcja AT SELECTION-SCREEN weryfikuje wpis i generuje komunikat z klasy ZSD. Funkcja HIDE przechowuje numer porządkowy każdego zapisanego wiersza, więc dwukrotne kliknięcie może utworzyć z niego listę drugorzędną, co jest tematem następnej sekcji.

Formatowanie raportu

ABAP pozwala na formatowanie raportów według potrzeb użytkownika. Na przykład „Linie alternatywne” muszą być wyświetlane w różnych kolorach, a linia „Sumy” powinna być wyświetlana w kolorze żółtym.

Składnia

Format Color n

Format Color n Intensified On

n może odpowiadać różnym liczbom

Należy pamiętać, że oprócz formatu istnieją również inne dodatki

FORMAT COLOR OFF INTENSIFIED OFF INVERSE OFF HOTSPOT OFF INPUT OFF

Programowanie raportów interaktywnych

  • Korzystając z programowania interaktywnego użytkownicy mogą aktywnie kontrolować pobieranie i wyświetlanie danych
  • Służy do tworzenia szczegółowej listy z bardzo podstawowej listy
  • Dane szczegółowe zapisywane są na liście wtórnej.
  • Lista dodatkowa może całkowicie nakładać się na pierwszy ekran lub można ją wyświetlić na nowym ekranie
  • Listy dodatkowe same w sobie mogą być interaktywne.
  • Pierwsza lista może również wywołać transakcję.
  • Istnieją różne wydarzenia związane z programowaniem interaktywnym.

Niektóre polecenia używane do programowania interaktywnego

hotspot

Jeśli przeciągnie się myszkę nad danymi wyświetlanymi w raporcie, kursor zmieni się w Dłoń z Wyciągniętym Palcem Wskazującym. Punkt aktywny można uzyskać za pomocą polecenia FORMAT.

Syntax:      Format Hotspot On (Off).

Ukryj

To polecenie pomaga przechowywać nazwy pól, na podstawie których będzie wykonywane dalsze przetwarzanie w celu uzyskania szczegółowej listy. Jest ona zapisywana bezpośrednio po instrukcji WRITE dla pola. Po wybraniu wiersza wartości są automatycznie wypełniane w zmiennych do dalszego wykorzystania.

Syntax:     Hide <field-name>.

Raporty odczytujące wiele tabel mogą zastąpić polecenia SELECT logiczną bazą danych, opisaną poniżej.

Logiczne bazy danych

  • Zamiast używać zapytań „Wybierz”, możesz użyć logicznej bazy danych do pobrania danych dla programu.
  • Logiczne bazy danych tworzone są w drodze transakcji SE36
  • Nazwa logicznej bazy danych może mieć maksymalnie 20 znaków. Może zaczynać się od przedrostka przestrzeni nazw.
  • Dane są wybierane przez inny program i można uzyskać do nich dostęp za pomocą GET polecenie umieszczające dane w obszarze roboczym .

Zalety logicznej bazy danych w porównaniu ze zwykłymi zapytaniami Select.

  1. Oferuje warunki sprawdzania, aby sprawdzić, czy dane wejściowe są poprawne, kompletne i wiarygodne
  2. Zawiera centralne kontrole autoryzacji dostępu do bazy danych
  3. Ulepszenia takie jak poprawa wydajności są natychmiast stosowane we wszystkich raportach korzystających z logicznej bazy danych.

Uwaga: Ze względu na złożoność, w większości przypadków nie używa się baz danych logicznych

FAQ

PARAMETERS tworzy jedno pole wejściowe zawierające pojedynczą wartość. SELECT-OPTIONS tworzy wewnętrzną tabelę z polami SIGN, OPTION, LOW i HIGH, co umożliwia definiowanie zakresów, wykluczanie wartości i dokonywanie wielokrotnych wyborów.

AT LINE-SELECTION reaguje na podwójne kliknięcie lub klawisz F2, a AT USER-COMMAND na kod funkcji z menu. Oba polecenia budują listę drugorzędną na podstawie wartości zapisanych przez HIDE.

Menu listy oferuje opcje listy, zapisu i pliku lokalnego dla klasycznego raportu. Program może również wywołać moduł funkcyjny GUI_DOWNLOAD, a lista ALV jest eksportowana do arkusza kalkulacyjnego bez konieczności dodatkowego kodowania.

Tak. Asystenci AI w narzędziach programistycznych ABAP generują nagłówek REPORT, SELECT-OPTIONS i bloki zdarzeń na podstawie prostego opisu listy wymaganych elementów. Wygenerowany SELECT nadal wymaga weryfikacji wydajności.

Narzędzia AI podsumowują długą listę, wyróżniają wartości odstające i odpowiadają na pytania dotyczące danych prostym językiem. Osadzenie takiej analizy zazwyczaj oznacza przeniesienie klasycznej listy do wyjścia opartego na ALV lub Fiori.

Podsumuj ten post następująco: