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

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


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

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


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

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