Przede wszystkim witam i pozdrawiam wszystkich.
Ma problem z listą ALV, a właściwie z zadeklarowaniem zmiennej, która pozwoli wyświetlić na liście ALV ciąg znaków (około 2000 znaków opisu). Czytam sobie bowiem opisy środków trwałych i usiłuję je wyświetlić na ekran razem z numerem inwentarzowym, numerem środka itp. Wszystko działa ładnie ale do momentu jak nie skończy się miejsce w zmiennej. Zadeklarowałem do opisu zmienną C. Niestety nie mogę w tablicy wewnętrznej zadeklarować jednego pola jako zmiennej string. Czy ktoś zna sposób na to jak wyświetlić na ALV 2000 znaków w jednym polu ?
pozdrawiam Grzegorz
Wyświetlanie w ALV - długi tekst
-
- Posty: 6
- Rejestracja: czw paź 25, 2007 7:37 am
- Lokalizacja: Wroc?aw
-
- Posty: 6
- Rejestracja: czw paź 25, 2007 7:37 am
- Lokalizacja: Wroc?aw
-
- Posty: 8356
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 1924 times
- Been thanked: 1477 times
- Kontakt:
IMHO, jest praktycznie nie możliwe wyświetlenie długiego tekstu w jednym polu listy ALV przynajmniej z dwóch powodów:
Moim zdaniem masz dwie możliwości:
Dominik Tylczyński, ICG
- Długi tekst ma przynajmniej teoretycznie nieograniczoną długość. Zatem zawsze może się zdarzyć tak, że zadeklarowane pole będzie za krótkie do wyświetlenia tekstu.
- Długi tekst zawiera pewną strukturę np. podział na paragrafy. Kiedy wrzucisz taki tekst w jedno pole stracisz tę strukturę.
Moim zdaniem masz dwie możliwości:
- Dla pozycji listy ALV z długim tekstem wyświetlić ikonę informującą, że taki tekst istnieje i wyświetlać długi tekst po kliknięciu w tę ikonę. Tekst możesz wyświetlić w oknie dialogowym np. przy pomocy kontrolki SAP Textedit: http://help.sap.com/saphelp_nw04/helpda ... ameset.htm.
- Zastosować hierarchiczną listę ALV - pozycji nadrzędnej wyświetlać wszystkie pola oprócz długiego tekstów, a w pozycjach podrzędnych wyświetlać linie długiego tekstu.
Dominik Tylczyński, ICG
-
- Posty: 6
- Rejestracja: czw paź 25, 2007 7:37 am
- Lokalizacja: Wroc?aw
Dzięki za pomoc. Z ikonką to raczej nie bo ten raport ma za zadanie między innymi eksport tych danych do innego programu wykonywać. Ale zrobię po prostu dwie opcje do podglądu hierarchiczną ALV i do eksportu nie będę wyświetlał tylko od razu do pliku tekstowego. Tylko jeżeli chodzi o hierarchiczną ALV to gdzie można jakiś przykład jak to się robi znaleźć ? To jest mój pierwszy program jaki piszę i nie bardzo wiem skąd czerpać wiedzę o szczegółach.
pozdrawiam
pozdrawiam
Grzegorz
-
- Posty: 8356
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 1924 times
- Been thanked: 1477 times
- Kontakt:
Do wyświetlania list hierarchicznych służy funkcja REUSE_ALV_HIERSEQ_LIST_DISPLAY. Dokumentacja jest dostępna po zalogowaniu w j. angielskim. Zasadniczo ta funkcja działa analogicznie do funkcji REUSE_ALV_LIST_DISPLAY, która wyświetla listę płaską. Istotne różnice to:
Dominik Tylczyński, ICG
- W parametrze IS_LAYOUT podajesz informacje o polach zarówno dla pozycji nadrzędnych jak i podrzędnych listy hierarchicznej
- Zamiast jednej tablicy z danymi podajesz dwie w parametrach T_OUTTAB_HEADER i T_OUTTAB_ITEM odpowiednio dla pozycji nadrzędnych i podrzędnych listy
- W parametrze IS_KEYINFO podajesz nazwy pól, które łączą rekordy z tablic podanych w parametrach T_OUTTAB_HEADER i T_OUTTAB_ITEM
- W parametrze IS_LAYOUT-EXPAND_FIELDNAME podajesz nazwę pola z tablicy dla pozycji nadrzędnych, które przechowuje informację o rozwinięciu/zwinięciu pozycji podrzędnych
- BALVBT02
- BALVHD01
- BCALV_TEST_HIERSEQ_LIST
Dominik Tylczyński, ICG
-
- Posty: 6
- Rejestracja: czw paź 25, 2007 7:37 am
- Lokalizacja: Wroc?aw
witam,
podepnę się do tematu z trochę powiązanym tematem a mianowicie czy można zrobić w raporcie opis kolumny w 2-ch linniach jesli wykorzystuję REUSE_ALV_GRID_DISPLAY ? Potrzebuję dla części kolumn mieć bardziej wyczerpujace opisy a kolumn jest sporo więc nie mogę zrobić ich zbyt szerokich przez co opis w jednej linni mi się nie mieści i jest widoczny tylko po najechaniu kursorem
z góry dziękuję za podpowiedzi.
podepnę się do tematu z trochę powiązanym tematem a mianowicie czy można zrobić w raporcie opis kolumny w 2-ch linniach jesli wykorzystuję REUSE_ALV_GRID_DISPLAY ? Potrzebuję dla części kolumn mieć bardziej wyczerpujace opisy a kolumn jest sporo więc nie mogę zrobić ich zbyt szerokich przez co opis w jednej linni mi się nie mieści i jest widoczny tylko po najechaniu kursorem
z góry dziękuję za podpowiedzi.
-
- Posty: 561
- Rejestracja: śr kwie 04, 2007 4:32 pm
- Lokalizacja: Poznań
- Has thanked: 9 times
- Been thanked: 165 times
- Kontakt:
Jeśli dobrze zrozumiałem Twoje pytanie - chcesz aby w opisie kolumny ALV można było zrobić coś takiego:
TO JEST BARDZO DŁUGI
OPIS MOJEGO MATERIAŁU
i ma to być traktowane jako opis pojedynczej kolumny (czyli jedna linia ale "złamana" na dwie).
AFAIK to nie ma takiej opcji w ALV.
Pozdrawiam,
Jacek Witczak
TO JEST BARDZO DŁUGI
OPIS MOJEGO MATERIAŁU
i ma to być traktowane jako opis pojedynczej kolumny (czyli jedna linia ale "złamana" na dwie).
AFAIK to nie ma takiej opcji w ALV.
Pozdrawiam,
Jacek Witczak
-
- Posty: 8356
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 1924 times
- Been thanked: 1477 times
- Kontakt:
Robiłem kiedyś podobną manipulację nagłówkami tekstowej, nie GRID listy ALV. W moim przypadku chodziło o uzyskanie jednego nagłówka dla kilku kolumn. Wykorzystałem wtedy obsługę zdarzenia TOP_OF_PAGE.
Spójrz na dokumentację do funkcji REUSE_ALV_GRID_DISPLAY, parametr I_CALLBACK_TOP_OF_PAGE:
Spójrz też na notę: 420643 - ALV header: Consultancy note regarding headers
Pozdrawiam
Dominik Tylczyński, ICG
Spójrz na dokumentację do funkcji REUSE_ALV_GRID_DISPLAY, parametr I_CALLBACK_TOP_OF_PAGE:
Natomiast w dokumentacji funkcji REUSE_ALV_COMMENTARY_WRITE jest napisane:If the caller specifies an EXIT routine, this routine must have the
following form:
FORM top_of_page.
Module REUSE_ALV_COMMENTARY_WRITE can then be called within the EXIT
routine. This module is responsible for formatting the header
information and also ensures online HTML formatting. In the print
preview or in batch mode, the text passed is then output in the normal
format.
Myślę, że obsługując zdarzenie TOP-OF-PAGE przy pomocy własnej procedury wzorowanej na funkcji REUSE_ALV_COMMENTARY_WRITE dałoby się osiągnąć oczekiwany przez Ciebie efekt.Short Text
List body comment block output
Functionality
List header information is output according to its type. The output
information is put in an internal table. Output attributes are assigned
to each line via the TYP field.
This module outputs formatted simple header information at TOP-OF-PAGE.
Spójrz też na notę: 420643 - ALV header: Consultancy note regarding headers
Pozdrawiam
Dominik Tylczyński, ICG
Taki szybki przykład:
Kod: Zaznacz cały
REPORT z_test.
TYPE-POOLS slis .
DATA : BEGIN OF gi_tab OCCURS 0,
pgmid LIKE tadir-pgmid,
object LIKE tadir-object,
obj_name LIKE tadir-obj_name,
END OF gi_tab.
DATA : g_repid TYPE sy-repid,
it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv,
it_events TYPE slis_t_event,
wa_events TYPE slis_alv_event,
wa_layout TYPE slis_layout_alv.
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> INITIALIZATION
INITIALIZATION.
g_repid = sy-repid.
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> START-OF-SELECTION
START-OF-SELECTION.
* dane dla ALV-ki
SELECT * INTO CORRESPONDING FIELDS OF TABLE gi_tab FROM tadir
UP TO 20 ROWS.
* katalog pól
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'PGMID'.
wa_fieldcat-ref_tabname = 'TADIR'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'OBJECT'.
wa_fieldcat-ref_tabname = 'TADIR'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'OBJ_NAME'.
wa_fieldcat-ref_tabname = 'TADIR' .
APPEND wa_fieldcat TO it_fieldcat.
* zdarzenia dla ALV-ki
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
IMPORTING
et_events = it_events.
* TOP_OF_PAGE
READ TABLE it_events INTO wa_events
WITH KEY name = slis_ev_top_of_page .
wa_events-form = slis_ev_top_of_page .
* ukrycie standardowego nagłówka ALV-ki
MODIFY it_events FROM wa_events INDEX sy-tabix .
wa_layout-no_colhead = 'X' .
* drukuj ALV-kę
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = g_repid
it_fieldcat = it_fieldcat
is_layout = wa_layout
it_events = it_events
TABLES
t_outtab = gi_tab.
*własny nagłówek listy ;)
****************************************************
FORM top_of_page.
****************************************************
ULINE AT 1(52).
FORMAT COLOR 1 INTENSIFIED ON.
WRITE: / sy-vline ,
02 'AAA' ,
06 sy-vline ,
07 'BBB' ,
11 sy-vline ,
28 'CCC' ,
52 sy-vline.
FORMAT COLOR 1 INTENSIFIED OFF.
WRITE: / sy-vline ,
02 'aaa' ,
06 sy-vline ,
07 'bbb' ,
11 sy-vline ,
28 'ccc' ,
52 sy-vline .
ENDFORM.