Текущее время: Пн, июл 28 2025, 09:27

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: создание динамической таблицы с полем типа таблица
СообщениеДобавлено: Чт, авг 26 2010, 11:27 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 07 2006, 16:32
Сообщения: 131
Откуда: Украина, Мариуполь
Пол: Мужской
Здравствуйте уважаемые коллеги!

Возникла задача отобразить в ALV-сетке динамическую внутреннюю таблицу произвольной структуры. Однако надо еще и раскрасить ячейки сетки. Делаю через статический метод create_dynamic_table класса cl_alv_table_create
Code:
DATA:
      dyn_fc TYPE lvc_t_fcat,
      dyn_fc_wa LIKE LINE OF dyn_fc,
      cell_color_wa TYPE lvc_s_scol,

      dyn_table TYPE REF TO data,
      dyn_table_wa TYPE REF TO data.

INITIALIZATION.

  dyn_fc_wa-fieldname = 'F1'.
  dyn_fc_wa-inttype = 'C'.
  dyn_fc_wa-intlen = 12.
  APPEND dyn_fc_wa TO dyn_fc.

  dyn_fc_wa-fieldname = 'CELL_COLOR'.
* как дальше заполнить поля чтобы оно получилось таблицей
* структуры lvc_s_scol????
  APPEND dyn_fc_wa TO dyn_fc.

  CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING
      it_fieldcatalog = dyn_fc
    IMPORTING
      ep_table        = dyn_table.

но как заполнить каталог полей так чтобы поле которое отвечает за рпскрашивание стало таблицей типа lvc_s_scol?
заранее благодарен :)

_________________
я в пути и нет у меня никаких тревог и забот. одинокая лодка моя рассекая волну плывет...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: создание динамической таблицы с полем типа таблица
СообщениеДобавлено: Чт, авг 26 2010, 11:43 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, ноя 20 2008, 16:29
Сообщения: 245
Откуда: RU->DE
Пол: Мужской
https://forums.sdn.sap.com/thread.jspa?threadID=925673


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: создание динамической таблицы с полем типа таблица
СообщениеДобавлено: Чт, авг 26 2010, 14:44 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 07 2006, 16:32
Сообщения: 131
Откуда: Украина, Мариуполь
Пол: Мужской
ну это не совсем подходит :( там предлагается сослаться через ref_table и ref_field а у мои типы lvc_s_scol и lvc_t_scol ни одному полю таблицы не присвоены. ну разве нельзя просто на тип таблицы в словаре сослаться при создании динамической таблицы? :roll:

_________________
я в пути и нет у меня никаких тревог и забот. одинокая лодка моя рассекая волну плывет...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: создание динамической таблицы с полем типа таблица
СообщениеДобавлено: Чт, авг 26 2010, 15:39 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
r00xus написал:
ну разве нельзя просто на тип таблицы в словаре сослаться при создании динамической таблицы? :roll:

нельзя. Нужно указывать простые типы полей.

_________________
С уважением,
Удав.


Последний раз редактировалось Удав Чт, авг 26 2010, 16:07, всего редактировалось 2 раз(а).

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: создание динамической таблицы с полем типа таблица
СообщениеДобавлено: Чт, авг 26 2010, 16:06 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 07 2006, 16:32
Сообщения: 131
Откуда: Украина, Мариуполь
Пол: Мужской
жаль :(
а есть другие способы динамически создать сложную структуру не через cl_alv_table_create?

_________________
я в пути и нет у меня никаких тревог и забот. одинокая лодка моя рассекая волну плывет...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: создание динамической таблицы с полем типа таблица
СообщениеДобавлено: Чт, авг 26 2010, 16:08 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
r00xus написал:
ну это не совсем подходит

Почему, собственно? В динамической таблице создается поле XYZSTYLEZYX типа LVC_T_STYL. Разве это не, что нужно? :?

r00xus написал:
а есть другие способы динамически создать сложную структуру не через cl_alv_table_create?
[/quote]
В версиях до 4.7 включительно других стандартных способов нет...
Если очень хочется покопаться самому - копайте в сторону динамического создания программ (см. исходники cl_alv_table_create) :wink:

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: создание динамической таблицы с полем типа таблица
СообщениеДобавлено: Чт, авг 26 2010, 16:20 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 07 2006, 16:32
Сообщения: 131
Откуда: Украина, Мариуполь
Пол: Мужской
ладно... поищем более дешевый путь :)
в методе cl_alv_table_create=>create_dynamic_table есть параметр i_style_table который отвечает за создание поля типа таблица LVC_T_STYL но это таблица стилей! насколько я знаю стили в ALV нужны для того чтобы ячейку кнопочкой сделать ну и т.д. находил правда как с их помощью делали текст в ячейке жирным курсивом и подчеркнутым вот здесь
http://www.sapnet.ru/viewtopic.php?t=2676
а можно ли сделать ячейку залитой светло красным цветом (C600) например с помощью стилей? и если да то как???

_________________
я в пути и нет у меня никаких тревог и забот. одинокая лодка моя рассекая волну плывет...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: создание динамической таблицы с полем типа таблица
СообщениеДобавлено: Чт, авг 26 2010, 16:33 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
см. группу функций SLVC, процедура style_for_listcolor.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: создание динамической таблицы с полем типа таблица
СообщениеДобавлено: Чт, авг 26 2010, 16:37 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 07 2006, 16:32
Сообщения: 131
Откуда: Украина, Мариуполь
Пол: Мужской
о! то что надо :) спасибо :D

_________________
я в пути и нет у меня никаких тревог и забот. одинокая лодка моя рассекая волну плывет...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: создание динамической таблицы с полем типа таблица
СообщениеДобавлено: Пт, сен 03 2010, 15:35 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 20:38
Сообщения: 364
Кину кусочек кода, может так можно.



DATA: r_datadescr TYPE REF TO cl_abap_datadescr,
r_structdescr TYPE REF TO cl_abap_structdescr,
r_typedescr TYPE REF TO cl_abap_typedescr,
gw_component TYPE abap_componentdescr,
gt_component TYPE abap_component_tab.

LOOP AT lt_struct INTO wa_struct.
ADD 1 TO l_cnt.
l_i = wa_struct-exlength.
l_len = l_i.
l_type = wa_struct-exid.
r_datadescr ?= cl_abap_datadescr=>describe_by_name( wa_struct-rollname ).
gw_component-name = wa_struct-fieldname.
gw_component-type = r_datadescr.
APPEND gw_component TO gt_component.
ENDLOOP.


TRY.
r_structdescr = cl_abap_structdescr=>create( p_components = gt_component ).
CATCH cx_sy_struct_creation .
WRITE: / 'CX_SY_STRUCT_CREATION ERROR'.
ENDTRY.
* Fill the table with data from GT_DATA
CREATE DATA gw_dyn TYPE HANDLE r_structdescr.
ASSIGN gw_dyn->* TO <dyn_wa>.
CREATE DATA gt_dyn LIKE STANDARD TABLE OF <dyn_wa>.
ASSIGN gt_dyn->* TO <dyn_table>.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB