Текущее время: Вс, июл 27 2025, 10:15

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




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Не срабатывает подпрограмма в фильтре DTP
СообщениеДобавлено: Ср, фев 10 2010, 10:07 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, фев 08 2010, 13:11
Сообщения: 55
В фильтре DTP вставляю подпрограмму:

Code:
data: l_idx like sy-tabix.
read table l_t_range with key
fieldname = 'FISCPER'.
l_idx = sy-tabix.

l_t_range-sign = 'I'.
l_t_range-option = 'EQ'.
l_t_range-low = '20000101'.

if l_idx = 0.
modify l_t_range index l_idx.
else.
append l_t_range.
endif.
p_subrc = 0.


Результата никакого, т.е. загрузка проходит, но так как будто фильтра не стоит. При выставлении фильтра вручную все срабатывает.
Хотел поробовать отладку DTP - однако не даёт поставить точку прерывания в моей подпрограмме.
Где надо копать?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Не срабатывает подпрограмма в фильтре DTP
СообщениеДобавлено: Ср, фев 10 2010, 11:44 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Вс, янв 11 2009, 14:41
Сообщения: 902
Откуда: Москва
Пол: Мужской
А вы попробуйте вставить бесконечный цикл и в режиме отладки посмотреть на то, что собой представляют данные в l_t_range.

И вот эта часть кода

Code:
append l_t_range.


тоже весьма сомнительна так как при ее отрабатывании FIELDNAME не указывается вообще.

Или вообще начните с малого

Code:
l_t_range-sign = 'I'.
l_t_range-option = 'EQ'.
l_t_range-low = '20000101'.
l_t_range-fieldname = 'FISCPER'.
append l_t_range.


И убедитесь, что имя 'FISCPER' в фильтре соответсвует действительности


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Не срабатывает подпрограмма в фильтре DTP
СообщениеДобавлено: Чт, фев 11 2010, 12:08 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, июл 03 2007, 10:26
Сообщения: 486
Откуда: Kazakhstan, Astana
Пол: Мужской
MODIFY itab - itab_line

Syntax
... {TABLE itab}|{itab INDEX idx} FROM wa
[TRANSPORTING comp1 comp2 ... ] [result].

Addition 2
... itab INDEX idx


Effect
This variant is only possible for standard tables and sorted tables. the line to be changed is specified by its idx table index. For idx, a data object of type i is expected.

The following cases result in an untreatable exception:

If idx contains a value less than or equal to 0


If the content of the table key of a sorted table was changed

Within a LOOP loop, the INDEX addition can be ommitted. In this case the current table line of the LOOP loop is changed. If the current line in the same loop pass was deleted, however, the behavior is undefined.

Note
The INDEX addition can also be after FROM wa.

Example
Conversion of the local currency of an airline to Euro in the scarr_tab internal table using index access.

PARAMETERS p_carrid TYPE scarr-carrid.

DATA scarr_tab TYPE SORTED TABLE OF scarr
WITH UNIQUE KEY carrid.

DATA: idx TYPE sy-tabix,
scarr_wa TYPE scarr.

SELECT *
FROM scarr
INTO TABLE scarr_tab.

READ TABLE scarr_tab
WITH TABLE KEY carrid = p_carrid
TRANSPORTING NO FIELDS.

idx = sy-tabix.

scarr_wa-currcode = 'EUR'.

MODIFY scarr_tab INDEX idx FROM scarr_wa
TRANSPORTING currcode.

А теперь сравните со своим кодом.

Он работает? The following cases result in an untreatable exception:

If idx contains a value less than or equal to 0

:rtfm: Хотя возможно я ошибаюсь и мои познания ABAP EQ 0.

_________________
"Great minds discuss ideas. Average minds discuss events. Small minds discuss people-Eleanor Roosevelt--Knowledge is to share, Keep it free, Keep sharing"


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не срабатывает подпрограмма в фильтре DTP
СообщениеДобавлено: Чт, фев 11 2010, 12:59 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, авг 16 2006, 03:22
Сообщения: 464
Пол: Мужской
А у FISCPER формат случаем не YYYYMMM? А у Вас l_t_range-low = '20000101'.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не срабатывает подпрограмма в фильтре DTP  Тема решена
СообщениеДобавлено: Чт, фев 11 2010, 13:27 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, фев 08 2010, 13:11
Сообщения: 55
Заработало.
добавляем строчки
Code:
l_t_range-fieldname = 'FISCPER'.
l_t_range-iobjnm = 'FISCPER'.

и все


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Не срабатывает подпрограмма в фильтре DTP
СообщениеДобавлено: Чт, фев 11 2010, 15:21 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Вс, янв 11 2009, 14:41
Сообщения: 902
Откуда: Москва
Пол: Мужской
ploshka написал(а):
Заработало.
добавляем строчки
Code:
l_t_range-fieldname = 'FISCPER'.
l_t_range-iobjnm = 'FISCPER'.

и все


Вот это вряд ли помогло
Code:
l_t_range-iobjnm = 'FISCPER'
потому как 0FISCPER - имя инфо-объекта :wink:


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Не срабатывает подпрограмма в фильтре DTP
СообщениеДобавлено: Вт, фев 16 2010, 13:05 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, фев 08 2010, 13:11
Сообщения: 55
Однако без 0(нуля) в начале работает


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

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


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

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


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

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