Текущее время: Пт, июл 18 2025, 14:39

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Переменное количество параметров в вызове FORM или MACRO
СообщениеДобавлено: Чт, июл 16 2009, 18:04 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Всем здрасте )
Собственно, как сделать сабж?

Например:

1) <message e001 with text-001>
- macro_mess E001 text-001.
- PERFORM form_mess USING 'E' '001' text-001.

2) <message e002 with text-001 text-002>
- macro_mess E002 text-001 text-002.
- PERFORM form_mess USING 'E' '001' text-001 text-002.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переменное количество параметров в вызове FORM или MACRO
СообщениеДобавлено: Чт, июл 16 2009, 18:17 
Начинающий
Начинающий

Зарегистрирован:
Ср, июл 01 2009, 15:08
Сообщения: 3
В качестве параметра для формы можно передать таблицу с переменным количеством записей = количеству параметров


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Переменное количество параметров в вызове FORM или MACRO
СообщениеДобавлено: Чт, июл 16 2009, 19:27 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
В данном конкретном случае есть такой очень простой вариант:
Code:
PERFORM form_mess USING 'E' '001' text-001 [b]space[/b].

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переменное количество параметров в вызове FORM или MACRO
СообщениеДобавлено: Чт, июл 16 2009, 19:57 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Jelena написала:
В данном конкретном случае есть такой очень простой вариант

Согласен, но жаль что только в конкретном
В реальном случае параметров от 0 до 6... некрасиво как-то получится

PS еще один извратный вариант - сделать N макросов типа macro0...macroN, а внутри вызывать один общий :shumlol:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переменное количество параметров в вызове FORM или MACRO
СообщениеДобавлено: Чт, июл 16 2009, 20:48 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Для этого есть необязательные параметры в ФМ. :twisted:

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переменное количество параметров в вызове FORM или MACRO
СообщениеДобавлено: Пт, июл 17 2009, 09:14 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Можно использовать ФМ, или, что теперь моднее, - методы объектов :-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переменное количество параметров в вызове FORM или MACRO
СообщениеДобавлено: Пт, июл 17 2009, 10:02 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
+1
используйте локальные классы вместо таких макросов


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Переменное количество параметров в вызове FORM или MACRO
СообщениеДобавлено: Пт, июл 17 2009, 11:38 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 20 2008, 10:29
Сообщения: 339
Откуда: Мюнхен
Пол: Мужской
Предложил бы как вариант (в случае с 6 параметрами) создать в программе 6 глобальных переменных и использовать их все время в вызовах макроса (естественно перед каждым вызовом соответственно заполнять/очищать). В качестве пустого значения или указателя, что параметр не задан, установить символ/последовательность символов и проверять это в макросе. Еще проще было бы создать глобальную структуру с 6 соответствующими параметрам полями и все время передавать ее на вход макросу, заполняя только нужные поля. Тогда и символа-указателя пустого значения не надо.

_________________
Вежливость - лучшее оружие чайника :-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переменное количество параметров в вызове FORM или MACRO
СообщениеДобавлено: Пт, июл 17 2009, 14:56 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Всем спасибо за предложенные решения!
Во-первых, был теоретический интерес: получается, что переменное кол-во параметров возможно только в качестве "таблицы параметров". Если их кол-во все-таки ограничено и невелико, то лучше кончено использвать 'space'-заглушки.
Параметры ФМ и методоы - лучшее решение, но мне хотелось еще и уменьшить кол-во строк для очень часто используемого вызова, поэтому все-таки остановился на макросе с 6 параметрами.
Во-вторых, убедился, что компилятор абапа не различает макросы с разным кол-вом параметров, но с одинаковым именем: берется всегда тот, который объявлен последним.


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

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


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

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


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

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