Текущее время: Чт, июл 24 2025, 02:43

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: checkbox в ALV-tree
СообщениеДобавлено: Пн, мар 01 2010, 14:50 
Специалист
Специалист

Зарегистрирован:
Пт, окт 20 2006, 16:39
Сообщения: 230
Добрый день!

Использую checkbox в item'ах дерева, но при изменении значения
не меняется значения структуры lvc_s_layi-chosen для соответствеющего item'а.
Подскажите, пожалуйста, как это побороть?

Можно, конечно, повесить на событие принудительное изменение,
но мне кажется, что это как то должно автоматом происходить...

Спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: checkbox в ALV-tree
СообщениеДобавлено: Пн, мар 01 2010, 15:03 
Специалист
Специалист

Зарегистрирован:
Пт, окт 20 2006, 16:39
Сообщения: 230
Всем спасибо, разобрался ))


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: checkbox в ALV-tree
СообщениеДобавлено: Пн, мар 01 2010, 15:13 
Специалист
Специалист

Зарегистрирован:
Пт, окт 20 2006, 16:39
Сообщения: 230
Хотя нет, не разобрался...

lvc_s_layi-chosen проставляется только в том случае, если при создании дерева
выставить переменную item_selection = 'X', но это вызывает неудобства при работе.
Если этот параметр = space, то значение структуры не меняется.

Можно это как-нибудь обойти?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: checkbox в ALV-tree
СообщениеДобавлено: Пн, мар 01 2010, 15:29 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
demst написал(а):
Хотя нет, не разобрался...

lvc_s_layi-chosen проставляется только в том случае, если при создании дерева
выставить переменную item_selection = 'X', но это вызывает неудобства при работе.
Если этот параметр = space, то значение структуры не меняется.

Можно это как-нибудь обойти?

Смотрю пример BCALV_TREE_DEMO, там действительно стоит item_selection = 'X', какие неудобства это вызывает?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: checkbox в ALV-tree
СообщениеДобавлено: Пн, мар 01 2010, 15:35 
Специалист
Специалист

Зарегистрирован:
Пт, окт 20 2006, 16:39
Сообщения: 230
Besa написал:
Смотрю пример BCALV_TREE_DEMO, там действительно стоит item_selection = 'X', какие неудобства это вызывает?


Неудобство вызывает то, что вся программа уже заточена под выбор нодов, а не айтемов )
при item_selection = 'X' метод get_selected_node ничего не возвращает, если не выделен именно node.
А объяснять пользоваетелям, что они должны щелкать мышкой в определенное место для выбора узла, а не просто на всю строчку, утомительно. ))


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: checkbox в ALV-tree
СообщениеДобавлено: Пн, мар 01 2010, 15:43 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
demst написал(а):
Besa написал:
Смотрю пример BCALV_TREE_DEMO, там действительно стоит item_selection = 'X', какие неудобства это вызывает?


Неудобство вызывает то, что вся программа уже заточена под выбор нодов, а не айтемов )
при item_selection = 'X' метод get_selected_node ничего не возвращает, если не выделен именно node.
А объяснять пользоваетелям, что они должны щелкать мышкой в определенное место для выбора узла, а не просто на всю строчку, утомительно. ))


Я думаю, чтобы чикбоксы адекватно работали item_selection = 'X' обязателен. И это логично, так как чикбокс вы ставите на итеме а не на ноде. Переделывайте логику программы, меняйте get_selected_node на GET_SELECTED_ITEM, или как Вам удобнее там.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: checkbox в ALV-tree
СообщениеДобавлено: Пн, мар 01 2010, 15:51 
Специалист
Специалист

Зарегистрирован:
Пт, окт 20 2006, 16:39
Сообщения: 230
Besa написал:

Я думаю, чтобы чикбоксы адекватно работали item_selection = 'X' обязателен. И это логично...


Логично это было бы, еслиб не было возможности менять чекбоксы при item_selection = space,
а если это позволено, то и отрабатывать это должно.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: checkbox в ALV-tree
СообщениеДобавлено: Пн, мар 01 2010, 16:13 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
Если это cl_gui_alv_tree, то вам поможет обработка события checkbox_change.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: checkbox в ALV-tree
СообщениеДобавлено: Пн, мар 01 2010, 16:17 
Специалист
Специалист

Зарегистрирован:
Пт, окт 20 2006, 16:39
Сообщения: 230
Бородин Игорь написал(а):
Если это cl_gui_alv_tree, то вам поможет обработка события checkbox_change.


При item_selection = space это событие не дает зарегистрировать...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: checkbox в ALV-tree
СообщениеДобавлено: Пн, мар 01 2010, 17:03 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
В таком случае, делайте item_selection = 'X'.
А чтобы гарантированно получить строку, на которой установлен курсор, используйте следующую подпрограмму:
Code:
*&---------------------------------------------------------------------*
*&      Form  0010_tree_get_selected
*&---------------------------------------------------------------------*
*       Получение выделенного узла дерева
*----------------------------------------------------------------------*
FORM 0010_tree_get_selected
                      USING li_tree        TYPE REF TO cl_gui_alv_tree
                   CHANGING l_nkey         TYPE lvc_nkey
                            ls_outtab_line TYPE stype_tree1.
  DATA:
    l_fname           TYPE lvc_fname,
    l_nkeys           TYPE lvc_t_nkey.

* проверяем выделение по полю
  CALL METHOD li_tree->get_selected_item
    IMPORTING
      e_selected_node = l_nkey
      e_fieldname     = l_fname.

  IF l_nkey IS INITIAL .
*   проверяем выделение по узлу
    CALL METHOD li_tree->get_selected_nodes
      CHANGING
        ct_selected_nodes = l_nkeys.

    READ TABLE l_nkeys INDEX 1 INTO l_nkey .
  ENDIF.

  CHECK NOT l_nkey IS INITIAL.

* получаем информацию по узлу
  DATA:
    l_node_text       TYPE lvc_value,
    lt_item_layout    TYPE lvc_t_layi,
    ls_node_layout    TYPE lvc_s_lacn,
    ls_node_layout2   TYPE lvc_s_layn.

  CALL METHOD li_tree->get_outtab_line
    EXPORTING
      i_node_key     = l_nkey
    IMPORTING
      e_outtab_line  = ls_outtab_line
      e_node_text    = l_node_text
      et_item_layout = lt_item_layout
      es_node_layout = ls_node_layout2.

ENDFORM. " 0010_tree_get_selected


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

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


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

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


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

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