Текущее время: Вт, июл 29 2025, 13:58

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Как передать range параметром в метод класса?
СообщениеДобавлено: Ср, авг 29 2007, 17:03 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, апр 07 2005, 05:27
Сообщения: 621
Откуда: Москва
Пол: Мужской
Постановка:

SELECT-OPTIONS p_matnr FOR matnr.
CALL METHOD myobj->my_method
EXPORTING
matnr = p_matnr
... внутри метода будет вызываться селект IN...

Вопрос - можно ли передать этот range в my_method как-то проще чем создание в SE11 типа таблицы со структурой этого range?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 29 2007, 17:08 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Можно. Если передавать без типизации.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 29 2007, 17:18 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, апр 07 2005, 05:27
Сообщения: 621
Откуда: Москва
Пол: Мужской
Кодом можно проиллюстрировать?


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

Зарегистрирован:
Пн, май 14 2007, 13:05
Сообщения: 561
Откуда: Москва
Тип параметра MATNR в описании метода не указываешь
Внутри метода, описываешь ранг
ranges: r_matnr for FOR matnr.
Первой строкой r_matnr[] = p_matnr[].

далее используешь r_matnr


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как передать range параметром в метод класса?
СообщениеДобавлено: Ср, авг 29 2007, 19:33 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
lumer написал:
Постановка:

SELECT-OPTIONS p_matnr FOR matnr.
CALL METHOD myobj->my_method
EXPORTING
matnr = p_matnr
... внутри метода будет вызываться селект IN...

Вопрос - можно ли передать этот range в my_method как-то проще чем создание в SE11 типа таблицы со структурой этого range?

Да, определите в отчёте тип
Code:
types: my_rtype type range of matnr

И используйте этот тип в параметрах класса, да, еще передевать SO как таблицу:
Code:
  EXPORTING
    matnr = p_matnr[]

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как передать range параметром в метод класса?
СообщениеДобавлено: Ср, авг 29 2007, 19:38 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, мар 02 2005, 20:19
Сообщения: 133
Откуда: Moscow
lumer написал:
Постановка:

SELECT-OPTIONS p_matnr FOR matnr.
CALL METHOD myobj->my_method
EXPORTING
matnr = p_matnr
... внутри метода будет вызываться селект IN...

Вопрос - можно ли передать этот range в my_method как-то проще чем создание в SE11 типа таблицы со структурой этого range?


Если Вас конкретно matnr интересует, то поищите - стандартная RANGE-структура наверняка уже есть в словаре.


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

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
lumer написал:
Кодом можно проиллюстрировать?

Вроде можно и так попробовать:
Code:
CLASS myobj DEFINITION.
...
METHODS:
  my_method IMPORTING im_range TYPE ANY TABLE,
...
ENDCLASS.

CLASS myobj IMPLEMENTATION.

METHOD my_method.
...
  SELECT * FROM tab
           WHERE matnr in im_range.
...
ENDMETHOD.

ENDCLASS.

SELECT-OPTIONS p_matnr FOR matnr.
CALL METHOD myobj->my_method
     EXPORTING  matnr = p_matnr[].

Я бы вот так попробовал

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как передать range параметром в метод класса?
СообщениеДобавлено: Чт, авг 30 2007, 08:23 
Специалист
Специалист

Зарегистрирован:
Пт, апр 13 2007, 17:15
Сообщения: 225
lumer написал:
Вопрос - можно ли передать этот range в my_method как-то проще чем создание в SE11 типа таблицы со структурой этого range?

Подтверждаю, что писал Monarch, внимательно смотри в словаре, на большинство стандартных объектов есть структуры и "типы таблиц".


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 30 2007, 10:03 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, апр 07 2005, 05:27
Сообщения: 621
Откуда: Москва
Пол: Мужской
Сергей Королев написал:
lumer написал:
Кодом можно проиллюстрировать?

Вроде можно и так попробовать:
Code:
CLASS myobj DEFINITION.
...
METHODS:
  my_method IMPORTING im_range TYPE ANY TABLE,

Я бы вот так попробовал


Загвоздка в том, что это делается не руками, а через SE24. Оно ругается на неясный тип. Попробую методы выше.


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

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
SE24 еще проще. Просто используйте тип TABLE.
Либо оставляйте поля typing и associated type пустыми.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 30 2007, 11:07 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
lumer написал:

Загвоздка в том, что это делается не руками, а через SE24. Оно ругается на неясный тип. Попробую методы выше.

Раз делаете через SE24, то никакого криминала в создании дополнительного типа в словаре нет, только надо создавать не просто таблицу, а именно таблицу диапазона:
"Тип данных - Создать - Тип таблицы - Обработать - Определить как тип таблицы диапазонов"

_________________
"После" - не значит "вследствие"


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

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


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

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


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

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