Текущее время: Чт, июл 31 2025, 17:27

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


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

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


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

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