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

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


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

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


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

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