Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Определение рабочей области tables




Определение глобальных и локальных переменных

Глобальная переменная – та, которая определена за пределами подпрограммы при использовании оператора tables или data.

Локальная переменная – переменная, которая определена в подпрограмме, используя local, data, или оператор statics. Переменные, определенные при использовании local, доступны вне подпрограммы; переменные, определенные при использовании data или statics, нет. Таким образом, если подпрограмма вызывает другую подпрограмму, переменные, определенные при использовании local, видима изнутри названных переменных подпрограммы, определенных при использовании data или statics, нет.

Для локальных переменных, определенных при использовании local или data, память выделяется при вызове подпрограммы. Эта память освобождается, когда подпрограмма заканчивается, и таким образом значения теряются. Для statics память сохраняется.

Переменные, определенные при использовании оператора tables, всегда являются глобальными переменными. Размещение оператора tables вначале программы определяет глобальную field String. Размещение того же самого оператора в подпрограмме также определяет global field string того же названия. Поэтому, Вы не должны использовать оператора tables в подпрограмме, так как определена всегда глобальная переменная; глобальные определения должны быть помещены вначале Вашей программы.

Локальная рабочая область таблицы в подпрограмме определяется используя local вместо оператора tables. Синтаксис такой же как tables, но он определяет local field string вместо глобальной. Переменные, определенные при использовании local, видимы изнутри подпрограммы и всех подпрограмм, которые она вызывает.

report ztx1709.

tables ztxlfa1.

 

select single * from ztxlfa1 where lifnr = 'V9'.

write: / '*-----', ztxlfa1-lifnr.

perform s1.

write: / '*S1---', ztxlfa1-lifnr.

perform s2.

write: / '*S2---', ztxlfa1-lifnr.

 

form s1.

write: / ' S1-A', ztxlfa1-lifnr.

local ztxlfa1.

select single * from ztxlfa1 where lifnr = 'V1'.

write: / ' S1-B', ztxlfa1-lifnr.

perform s2.

write: / ' S1-C', ztxlfa1-lifnr.

endform.

 

form s2.

write: / ' S2-A', ztxlfa1-lifnr.

select single * from ztxlfa1 where lifnr = 'V2'.

write: / ' S2-B', ztxlfa1-lifnr.

endform.

* - - - - -V9

S1-A V9

S1-B V1

S2-A V1

S2-B V2

S1-C V2

*S1 - - -V9

S2-A V9

S2-B V2

*S2 - - -V2

Если Вы определите локальную переменную, имеющую то же самое название как глобальная переменная, то локальная переменная будет иметь приоритет в подпрограмме. Следовательно, Вы не будете в состоянии обратиться к глобальной переменной того же самого названия в пределах той подпрограммы.




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 365; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.