Текущее время: Ср, июл 23 2025, 14:01

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Проблема с get_selected_rows
СообщениеДобавлено: Вт, мар 27 2007, 14:18 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Пн, сен 27 2004, 10:30
Сообщения: 14
Использую класс cl_gui_alv_grid. При вызове метода get_selected_rows получаю номена отмеченных пользователем строк, далее читаю данные из внутренней таблички, все нормально. Но если данные в гриде отсортированы по каким то критериям, номера отмеченных строк не совпадают с данными во внутренней табличке. Чего делать? Как добраться до отмеченных данных?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 27 2007, 14:28 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
А как Вы определяете номер отмеченной строки ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 27 2007, 14:37 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Пн, сен 27 2004, 10:30
Сообщения: 14
CALL METHOD go_grid->get_selected_rows
IMPORTING
et_index_rows = lt_index_rows
et_row_no = lt_row_no.

READ TABLE gt_data INDEX ls_row_no-row_id.

А ls_row_no-row_id не учитывает порядок сортировки и тп...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 27 2007, 14:56 
Специалист
Специалист

Зарегистрирован:
Вс, мар 13 2005, 13:59
Сообщения: 201
Откуда: Moscau
А что передается в set_table_for_first_display? gt_data? Alv оперирует именно только с таблицей переданной в set_table_for_first_display.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 27 2007, 15:00 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Пн, сен 27 2004, 10:30
Сообщения: 14
да, именно gt_data передается


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 27 2007, 15:09 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
lt_index_rows-index


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 27 2007, 15:24 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Пн, сен 27 2004, 10:30
Сообщения: 14
что забавно, значения в ls_row_no-row_id и в lt_index_rows-index совпадают.... хотя по логике, должны различаться


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 27 2007, 15:45 
Специалист
Специалист

Зарегистрирован:
Вс, мар 13 2005, 13:59
Сообщения: 201
Откуда: Moscau
А в каком месте это происходит ? PAI/PBO?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 27 2007, 16:06 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Пн, сен 27 2004, 10:30
Сообщения: 14
В PAI происходит, при обработке нажатия кнопки


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 28 2007, 08:21 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Lars правильно посоветовал:
Code:
        CALL METHOD grid->get_selected_rows
          IMPORTING
            et_index_rows = lt_index_rows
            et_row_no     = lt_row_no.
        LOOP AT lt_index_rows INTO ls_index_row WHERE rowtype = ''.
          READ TABLE g_data INDEX ls_index_row-index ...

где rowtype = '' означает, что нам начхать на выделение строк (под)суммирования.

Д-р Айболит написал(а):
что забавно, значения в ls_row_no-row_id и в lt_index_rows-index совпадают.... хотя по логике, должны различаться

После сортировки и добавления подсуммирования как раз будут отличаться.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 28 2007, 14:59 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Пн, сен 27 2004, 10:30
Сообщения: 14
Спасибо за подсказку по rowtype, но дело не в этом, его значение при сортировке по полю и так пустое... Все так и делаю.. Может все дело в том, что система версии 4.6С... %-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, апр 02 2007, 14:18 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
Может, дело в том, что вы пытаетесь определить выделенные строки раньше, чем Frontend обновит внутреннюю таблицу?
Дело в том, что таблица на экране и таблица в программе - весьма разные вещи.
Поставьте перед обработкой кода в PAI call method CL_GUI_CFW=>FLUSH.

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, апр 09 2007, 10:45 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Пн, сен 27 2004, 10:30
Сообщения: 14
Вставлял FLUSH и до и после вызова, но увы....))


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 10 2007, 16:31 
Гость
не могу сказать про ALV, но похожее у меня было с деревом. Посмотрите, может, пригодится. Принцип должен быть похожим:
Code:
* 1шаг - определим, какие критерии сортировки
  CALL METHOD tree1->get_hierarchy
    IMPORTING
      et_sort = g_lvc_t_sort.

  LOOP AT g_lvc_t_sort INTO gl_lvc_t_sort.
    APPEND gl_lvc_t_sort.
  ENDLOOP.
  DESCRIBE TABLE gl_lvc_t_sort LINES g_n.
* конец 1 шага

  REFRESH: t_dogovor21.
  LOOP AT gt_sflight INTO t_dogovor21.
    APPEND t_dogovor21.
  ENDLOOP.
*  LOOP AT t_dogdokum INTO t_dogdokume.
*    APPEND t_dogdokume.
*  ENDLOOP.

* 2 шаг - сортируем согласно иерархии
*сортировка по данным иерархии:
*  l_i = g_n.
*  DO g_n TIMES.
*    READ TABLE gl_lvc_t_sort INDEX l_i.
*    SORT  t_dogovor2 STABLE BY: (gl_lvc_t_sort-fieldname) .
*    l_i = l_i - 1.
*  ENDDO.
  l_i = g_n.
  DO g_n TIMES.
    READ TABLE gl_lvc_t_sort INDEX l_i.
    IF gl_lvc_t_sort-up = 'X'.
      SORT  t_dogdokum STABLE BY: (gl_lvc_t_sort-fieldname) ASCENDING .
    ELSE.
      SORT  t_dogdokum STABLE BY: (gl_lvc_t_sort-fieldname) DESCENDING.
    ENDIF.
    l_i = l_i - 1.
  ENDDO.
* конец 2 шага


Для грида метод GET_SORT_CRITERIA.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 04 2007, 12:47 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, янв 16 2007, 19:00
Сообщения: 168
Откуда: город
Столкнулся с такой же проблемой. Есть еще предложения по решению? По идее же должны быть стандартные средства для решения...


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.

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


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

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


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

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