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

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


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

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


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

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