Текущее время: Пн, авг 04 2025, 07:51

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: изнутри ALV управлять ейным стандартным "фильтром"
СообщениеДобавлено: Пн, ноя 22 2004, 07:52 
Гость
возникла вот какая задача: по результатам отбора на селкционном экране, в граф.ALV вываливается список документов, с 2-3 различными признаками. Список досотаточно большой, и юзерам приходится проводить быстрые "розыски" группы док-тов с одной и той-же комбинацией этих признаков (значений этих колонок).

Для наглядности сделал так - значения каждой из колонок-признаков вываливаются как hotspot'ы ... При тыке мышкой на любой из них, usercommand фильтрует записи именно с таким значением "признака". Если после этото ткнуть на другую колонку, будет сдела еще более детальный отбор, и т.д.

Пока предварительно сделал дубовым способом - usercommand просто выкидывает из основной (полной) вн.таблицы в промежуточную отобранную часть док-тов, и ту вторую показывает в ALV поновой. Пришлось повесить доп.кнопку на панель, чтобы она отменяла результаты такой "фильтрации", т.е. показывала полный набор записей.

Но хотелось-бы, чтобы оно использовало стандартную функциональность фильтрации - т.е. юзер ткнул на значение, а usercommand применил-бы к гриду стандартный фильтр по выбранному юзером значению поля-признака. И хорошо-бы стандартной кнопкой "назад" отменять последний фильтр, т.е. чтобы можно было раскручивать назад результаты фильтрации грида (юзеры реально много раз фильтруют и делают откат фильтра, т.е. ищут "глазками" нужные группы документов :) )

Можно както из ALV ейным стандартным фильтром управлять или нет?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, ноя 22 2004, 09:38 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
The procedure is like the one in sorting. Here, the type of the table you must
fill is “LVC_T_FILT”. Filling this table is similar to filling a RANGES variable.

FORM prepare_filter_table CHANGING pt_filt TYPE lvc_t_filt .
DATA ls_filt TYPE lvc_s_filt .
ls_filt-fieldname = 'FLDATE' .
ls_filt-sign = 'E' .
ls_filt-option = 'BT' .
ls_filt-low = '20030101' .
ls_filt-high = '20031231' .
APPEND ls_filt TO pt_filt .
ENDFORM. " prepare_filter_table

You can get and set filtering criteria applied whenever you want by using
methods “get_filter_criteria” and “set_filter_criteria”, respectively.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: *
СообщениеДобавлено: Пн, ноя 22 2004, 12:13 
Гость
спасибо, кажисть какраз то что нужно


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: *
СообщениеДобавлено: Вт, янв 18 2005, 09:30 
Гость
вот по теме вопросик:

внутри user_command по нажатии на кнопку хочу отменить текущий алв-фильтр (если он есть). Сортировка к примеру без проблем меняется связкой REUSE_ALV_GRID_LAYOUT_INFO_GET + REUSE_ALV_GRID_LAYOUT_INFO_SET
А вот фильтр почемуто игнорируется (sy-subrc = 0 после вызова ФМ, но на экране изменений фильтра не наблюдается)
Что не так?

CALL FUNCTION 'REUSE_ALV_GRID_LAYOUT_INFO_GET'
IMPORTING
ET_SORT = gsort[]
ET_FILTER = gfilt[]
EXCEPTIONS
NO_INFOS = 1
PROGRAM_ERROR = 2
OTHERS = 3.
* отладка
loop at gsort into hsort.
endloop.
loop at gfilt into hfilt.
endloop.

* стандартная сортировка по номеру ПП
clear: hsort,gsort,gsort[].
hsort-SPOS = 1.
hsort-FIELDNAME = 'F1'.
hsort-TABNAME = 1.
hsort-UP = 'X'.
hsort-COMP = 'X'.
append hsort to gsort[].

* отменяем все ALV-фильтры
describe table gfilt[] lines n.
if ( n > 0 ).
clear: gfilt,gfilt[].
CALL FUNCTION 'REUSE_ALV_GRID_LAYOUT_INFO_SET'
EXPORTING
IT_SORT = gsort[]
IT_FILTER = gfilt[].
endif.

sel_lin-refresh = 'X'.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: *
СообщениеДобавлено: Вт, янв 18 2005, 09:34 
Гость
вот по теме вопросик:

внутри user_command по нажатии на кнопку хочу отменить текущий алв-фильтр (если он есть). Сортировка к примеру без проблем меняется связкой REUSE_ALV_GRID_LAYOUT_INFO_GET + REUSE_ALV_GRID_LAYOUT_INFO_SET
А вот фильтр почемуто игнорируется (sy-subrc = 0 после вызова ФМ, но на экране изменений фильтра не наблюдается)
Что не так?

CALL FUNCTION 'REUSE_ALV_GRID_LAYOUT_INFO_GET'
IMPORTING
ET_SORT = gsort[]
ET_FILTER = gfilt[]
EXCEPTIONS
NO_INFOS = 1
PROGRAM_ERROR = 2
OTHERS = 3.
* отладка
loop at gsort into hsort.
endloop.
loop at gfilt into hfilt.
endloop.

* стандартная сортировка по номеру ПП
clear: hsort,gsort,gsort[].
hsort-SPOS = 1.
hsort-FIELDNAME = 'F1'.
hsort-TABNAME = 1.
hsort-UP = 'X'.
hsort-COMP = 'X'.
append hsort to gsort[].

* отменяем все ALV-фильтры
describe table gfilt[] lines n.
if ( n > 0 ).
clear: gfilt,gfilt[].
CALL FUNCTION 'REUSE_ALV_GRID_LAYOUT_INFO_SET'
EXPORTING
IT_SORT = gsort[]
IT_FILTER = gfilt[].
endif.

sel_lin-refresh = 'X'.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, янв 18 2005, 10:10 
Специалист
Специалист

Зарегистрирован:
Чт, авг 19 2004, 07:31
Сообщения: 234
Откуда: Нижнекамск
теперь про фильтры...была у меня такая задача надо было перебросить формат LVC в SLIS( ну это по сути переход от объектного ALV к модульному), ну дак там используется ФМ LVC_TRANSFER_TO_SLIS...у него параметры layout(входной и выходной), fieldcatalog(тоже), sort(тоже), filter(тоже) и еще таблица с данными...я и подумал на хрена там таблица...и не поставил её в параметрах...дак вот всё преобразовалось отлично кроме фильтров...которые вообще не преобразовались(пустой фильтр на выходе получился) :shock: ...тогда я вставил таблицу с данными в параметры и чудо свершилось фильтр на выходе получил...может что нибудь с этим связано?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изнутри ALV управлять ейным стандартным "фильтром"
СообщениеДобавлено: Чт, июн 11 2009, 12:26 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, окт 28 2008, 10:39
Сообщения: 86
Хочу витянуть параметры фильтра с АЛВ, выпадает в дамп
говорит што ET_FILTERED_ENTRIES parametr is not defined

КАК ЕТО ВЫЛЕЧИТЬ


data: FET_FILTERED_ENTRIES TYPE SLIS_T_FILTERED_ENTRIES .

call function 'REUSE_ALV_GRID_LAYOUT_INFO_GET'
EXPORTING
ET_FIELDCAT = FET_FIELDCAT
ET_FILTERED_ENTRIES = FET_FILTERED_ENTRIES
exceptions
no_infos = 1
program_error = 2.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изнутри ALV управлять ейным стандартным "фильтром"
СообщениеДобавлено: Чт, июн 11 2009, 12:36 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, авг 28 2006, 11:24
Сообщения: 292
Пол: Мужской
Ну выше то пример правильного кода есть!
Либо *GET + IMPORTING
Либо *SET + EXPORTING


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изнутри ALV управлять ейным стандартным "фильтром"
СообщениеДобавлено: Чт, июн 11 2009, 12:36 
Директор
Директор
Аватара пользователя

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

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изнутри ALV управлять ейным стандартным "фильтром"
СообщениеДобавлено: Чт, июн 11 2009, 13:00 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, окт 28 2008, 10:39
Сообщения: 86
Всем спасибо, скопировал так :(


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

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


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

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


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

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