SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

ALV List (не Grid!) с помощью ООП



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
Shvetz
Специалист
Специалист



Joined: 05 Oct 2007
Posts: 53

PostPosted: Tue Jan 29, 2008 11:22 am    Post subject: ALV List (не Grid!) с помощью ООП Reply with quote

Как запустить Alv List и Alv Grid с помощью ФМ понятно
REUSE_ALV_GRID_DISPLAY
REUSE_ALV_LIST_DISPLAY

Как запустить Alv Grid с помощью ООП тоже понятно
С помощью класса cl_gui_alv_grid и дефолтных значений структур, которые заполняются перед запуском метода set_table_for_first_display

А вот как запустить Alv List с помощью ООП непонятно!! Интернет перерыл так и не нашел, кто знает подскажите.
Back to top
View user's profile Send private message
John Doe
Модератор
Модератор


Age: 45
Joined: 05 Nov 2007
Posts: 725
Location: КраснАдар

PostPosted: Tue Jan 29, 2008 12:15 pm    Post subject: Reply with quote

Практически все классы с листингами (которые я нашел) написаны под конкретные функциональные сферы.
Вы смело можете написать свой класс для построения листингов, полностью удовлетворяющий требуемым запросам. К примеру, можно использовать уже устаревающий ФМ K_KKB_LIST_DISPLAY в качестве выводопостроителя. Либо написать свой метод рисования грида в листинге и вывод через WRITE.
Back to top
View user's profile Send private message Blog
vga
Мастер
Мастер


Age: 70
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Tue Jan 29, 2008 12:29 pm    Post subject: Reply with quote

Прошу не бить больно, но так будет выводить листом

Quote:
sy-batch = 'X'.
create object container
exporting
CONTAINER_NAME = 'CONTAINER'.
create object alv_grid
exporting
i_parent = container.
*...
CALL METHOD gr_alvgrid->set_table_for_first_display

Хотя, чтобы было кашерно, думаю надо копать в сторону заполнения IS_LAYOUT.


Last edited by vga on Tue Jan 29, 2008 12:34 pm; edited 1 time in total
Back to top
View user's profile Send private message Blog Visit poster's website
dr.killer
Участник
Участник



Joined: 31 Oct 2007
Posts: 24
Location: 4.7, ECC 6.0

PostPosted: Tue Jan 29, 2008 12:33 pm    Post subject: Reply with quote

Можно вывести и листом.
Например:
Code:

TYPES: BEGIN OF my_ty,
  v1(3) TYPE c,
  v2(10)  TYPE c,
  END OF my_ty.

DATA:  lt_t TYPE TABLE OF my_ty,
       ls_t TYPE my_ty,
       cl_l TYPE REF TO cl_salv_table,
       gr_table TYPE REF TO cl_salv_table.

ls_t-v1 = '001'.
ls_t-v2 = 'Andrew'.
APPEND ls_t TO lt_t.
ls_t-v1 = '002'.
ls_t-v2 = 'Sasha'.
APPEND ls_t TO lt_t.

CALL METHOD cl_salv_table=>factory
  EXPORTING
    list_display = 'X'
  IMPORTING
    r_salv_table = gr_table
  CHANGING
    t_table      = lt_t.
gr_table->display( ).

Ключевой параметр
list_display = 'X' - в лист
если его опустить то в ALV грид
Back to top
View user's profile Send private message
John Doe
Модератор
Модератор


Age: 45
Joined: 05 Nov 2007
Posts: 725
Location: КраснАдар

PostPosted: Tue Jan 29, 2008 12:37 pm    Post subject: Reply with quote

dr.killer wrote:
Можно вывести и листом.

Можно, только в системах где есть SimpleALV. Все системы 4.* его не имеют, как я знаю.
Back to top
View user's profile Send private message Blog
dr.killer
Участник
Участник



Joined: 31 Oct 2007
Posts: 24
Location: 4.7, ECC 6.0

PostPosted: Tue Jan 29, 2008 12:41 pm    Post subject: Reply with quote

John Doe wrote:
dr.killer wrote:
Можно вывести и листом.

Можно, только в системах где есть SimpleALV. Все системы 4.* его не имеют, как я знаю.

да есть такой момент, приятно конечно в ECC 6.0 работать
Back to top
View user's profile Send private message
Shvetz
Специалист
Специалист



Joined: 05 Oct 2007
Posts: 53

PostPosted: Tue Jan 29, 2008 2:40 pm    Post subject: Reply with quote

sy-batch = 'X'. не помог, вырисовывается тот же грид только по виду немного другой.
ls_layout - тоже весь перерыл не помог, либо плохо копал
ФМ K_KKB_LIST_DISPLAY как я понимаю работает по такому же принципу что и REUSE_ALV_LIST_DISPLAY то есть вызывает экран и рисует грид. Но это не то, что нужно. Нужен именно объект и манипуляция с ним.. Я вот копаюсь в K_KKB_LIST_DISPLAY но никак не могу найти где же все таки в самых внутренностях использование объектов.
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 70
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Tue Jan 29, 2008 3:55 pm    Post subject: Reply with quote

Shvetz wrote:
sy-batch = 'X'. не помог, вырисовывается тот же грид только по виду немного другой.


Проверялось в 4.6c, 4.7, 2005. Вид как на рисунке.



alv_list.PNG
 Description:
 Filesize:  14.8 KB
 Viewed:  12090 Time(s)

alv_list.PNG


Back to top
View user's profile Send private message Blog Visit poster's website
Shvetz
Специалист
Специалист



Joined: 05 Oct 2007
Posts: 53

PostPosted: Tue Jan 29, 2008 4:22 pm    Post subject: Reply with quote

Надо копаться, потому что теперь ставлю sy-batch перед созданием объекта контейнера и дамп вылазит. Confused
Back to top
View user's profile Send private message
Shvetz
Специалист
Специалист



Joined: 05 Oct 2007
Posts: 53

PostPosted: Tue Jan 29, 2008 4:29 pm    Post subject: Reply with quote

Все спасибо большое, работает. Дамп поправил, дело было в том, что list не мог non-char поля выводить (типа I,P итп, короче говоря дело техники поправить).

Тему можно закрыть!)
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.