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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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