Текущее время: Пт, авг 01 2025, 14:40

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: assign к таблице внешней программы
СообщениеДобавлено: Вт, апр 21 2009, 11:49 
Начинающий
Начинающий

Зарегистрирован:
Пн, апр 13 2009, 09:24
Сообщения: 22
Всем привет.

Такой вопрос - необходимо выполнить подпрограмму во внешней программе,
где будет заполнена данными некоторая внутренняя таблица.
Стандартные шаги:
Code:
perform sel_data(report).
assign ('(report)i_tab[]') to <i_tab>.


Проблема в том, что в подпрограмме sel_data используется глобальная переменная программы report.
Передать ее значение через assign не получается, т.к. программа до первого вызова еще не активна.
Что-нибудь можно сделать?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: assign к таблице внешней программы
СообщениеДобавлено: Вт, апр 21 2009, 12:02 
Модератор
Модератор
Аватара пользователя

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: assign к таблице внешней программы
СообщениеДобавлено: Вт, апр 21 2009, 12:16 
Начинающий
Начинающий

Зарегистрирован:
Пн, апр 13 2009, 09:24
Сообщения: 22
Программа стандартная.
"Тупой" способ проходит - первый perform sel_data(report), без задания глобальной переменной,
таблица не заполнена, потом - assign на глобальную переменную и второй perform sel_data(report).
Так все работает.
Может, кто знает, как программу в память другим способом загрузить?


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

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
если нужные переменные в common area, через нее,
но такое очень редко встречается,
найдите какую-нибудь маленькую подпрограмму и дерните ее разок,
затем assign к глобальным переменным
(локальные из стека/кучи недоступны).


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: assign к таблице внешней программы
СообщениеДобавлено: Ср, апр 22 2009, 01:27 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
Надо подгрузить программу в память, при assign-ится заполнить таблицу и вызвать perform
Для того чтоб подгрузить программу надо вызвать какую нибудь подпрограмму например %_init-get или %_init-move они есть в лбом репорте

_________________
Изображение Попытка не пытка


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: assign к таблице внешней программы
СообщениеДобавлено: Ср, апр 22 2009, 09:13 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, фев 02 2009, 10:20
Сообщения: 89
Пол: Мужской
можно сделать вызов
Code:
PERFORM z_dummy_form IN PROGRAM program IF FOUND.
объявления в память подгружаются, а что ещё нужно :)

_________________
периодически играю в песочнице :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: assign к таблице внешней программы
СообщениеДобавлено: Чт, апр 23 2009, 08:15 
Начинающий
Начинающий

Зарегистрирован:
Пн, апр 13 2009, 09:24
Сообщения: 22
Спасибо за ответы, еще вопрос - после выполнения такого perform'а
как долго программа будет оставаться в памяти?
Если вдруг системе потребуются дополнительные ресурсы что будет с загруженным отчетом?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: assign к таблице внешней программы
СообщениеДобавлено: Чт, апр 23 2009, 08:46 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
SU53 написал:
можно сделать вызов
Code:
PERFORM z_dummy_form IN PROGRAM program IF FOUND.
объявления в память подгружаются, а что ещё нужно :)

во.

2tester:
вероятно останется в памяти до завершения caller-а, в общем надолго.


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

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


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

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


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

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