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.

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
- Parametry
- 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.
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.
- Oferuje warunki sprawdzania, aby sprawdzić, czy dane wejściowe są poprawne, kompletne i wiarygodne
- Zawiera centralne kontrole autoryzacji dostępu do bazy danych
- 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
