Текущее время: Ср, июл 30 2025, 02:10

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


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

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


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

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