powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Обращение к глобалу по расширенной ссылке
11 сообщений из 11, страница 1 из 1
Обращение к глобалу по расширенной ссылке
    #40042183
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Имеется код, где anul - это год, exp - область, "PUTL"_anul - название глобала
Код: javascript
1.
2.
3.
4.
 s anul=2020,exp="EXPU",PUTLgod="PUTL"_anul
 f  s luna=$o(^|exp|PUTLgod(luna)) q:luna=""  d
 .
 .................

Как можно обращаться к глобалу по расширенной ссылке в этом случае ???

В случае когда простое обращение(без раширенной в свою область) т.е. так:
Код: javascript
1.
2.
s PUTLgod="^PUTL"_anul 
f  s luna=$o(@PUTLgod@(luna)) q:luna=""  d


Это работает.
Спасибо
...
Рейтинг: 0 / 0
Обращение к глобалу по расширенной ссылке
    #40042222
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Вроде решилось
Код: javascript
1.
2.
3.
4.
5.
6.
 s anul=2020
 s exp="EXPU",PUTLgod="PUTL"_anul
 s perem="^|exp|"_PUTLgod
 f  s luna=$o(@perem@(luna)) q:luna=""  d
 . f  s data=$o(@perem@(luna,data)) q:data=""  d
..............
...
Рейтинг: 0 / 0
Обращение к глобалу по расширенной ссылке
    #40042232
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя меня смущает это:
Код: javascript
1.
s perem="^|exp|"

Если честно, я не допонимаю как это работает так ...
Т.е. exp это переменная, а выше в кавычках - это строка ..
...
Рейтинг: 0 / 0
Обращение к глобалу по расширенной ссылке
    #40042379
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu,
Почитайте про оператор косвенности. Хотя бы у той же ИС в документации к Cache/IRIS. Там у них и примеры есть с описанием.
ЗЫ ссылку и примеры не могу привести, пишу с моб.гаджета, не удобно мне экр.клавиатурой пользоваться
...
Рейтинг: 0 / 0
Обращение к глобалу по расширенной ссылке
    #40042544
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu
Т.е. exp это переменная, а выше в кавычках - это строка
Просто синтаксис расширенной глобальной ссылки допускает указывать между | переменную, которой присвоено значение окружения; это может быть область (e.g. "EXPU") или предполагаемая область ("^^полный путь к БД"), есть ещё ряд вариантов.
...
Рейтинг: 0 / 0
Обращение к глобалу по расширенной ссылке
    #40043143
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu
Хотя меня смущает это:
Код: javascript
1.
s perem="^|exp|"

Если честно, я не допонимаю как это работает так ...
Т.е. exp это переменная, а выше в кавычках - это строка ..

Она и там переменная...

Если смущает - тогда пиши так

Код: javascript
1.
2.
 s exp="EXPU",PUTLgod="PUTL"_anul
 s perem="^|"_exp_"|"_PUTLgod


Думаю так будет еще удобнее, т.к. не нужно будет далее следить за значением переменной exp ...
...
Рейтинг: 0 / 0
Обращение к глобалу по расширенной ссылке
    #40043144
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu
Хотя меня смущает это:
Код: javascript
1.
s perem="^|exp|"

Если честно, я не допонимаю как это работает так ...

Вот не большая иллюстрация...

Код: javascript
1.
2.
3.
TMP>s a=1,b=2,c="a+b"
TMP>w @c
3
...
Рейтинг: 0 / 0
Обращение к глобалу по расширенной ссылке
    #40043286
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
s perem="^|"_exp_"|"_PUTLgod


Оставлять ли в ^|окружении| переменную или заменять её значением, дело вкуса, но написанное выше просто неверно: выражение разрешится в ^|EXPU|PUTLgod, и что, у нас есть переменная EXPU? Будет <UNDEFINED>.

Поэтому:
Код: sql
1.
s perem="^|"""_exp_"""|"_PUTLgod
...
Рейтинг: 0 / 0
Обращение к глобалу по расширенной ссылке
    #40043317
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем за отзывы.
Примерно решилось так.
Имею 3 области откуда собираю данные по расширенной ссылке:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
test(string) ;
 s $ztrap="error"
 s (luna,data,ruta,graf,subd,schimb,tab,n16,n30,n31,n32,n33,n34,n35,n36,n37,c16,c30,c31,c32,c33,c34,c35,c36,c37)=""
 k RT16,RT30,RT31,RT32,RT33,RT34,RT35,RT36,RT37
 s god=string,anulcurent=$p(^UST,"\",2)
 i god=anulcurent s PUTLgod="PUTL"
 i god'=anulcurent s PUTLgod="PUTL"_god
 f exp="EXPU","EXPD","EXPT" d
 . s perem="^|exp|"_PUTLgod,zs3="^|exp|"_"ZS3"
 . f  s luna=$o(@perem@(luna)) q:luna=""  d
 . . f  s data=$o(@perem@(luna,data)) q:data=""  d
 . . . f  s ruta=$o(@perem@(luna,data,ruta)) q:ruta=""  d 
 . . . . f  s graf=$o(@perem@(luna,data,ruta,graf)) q:graf=""  d 
 . . . . . f  s subd=$o(@perem@(luna,data,ruta,graf,subd)) q:subd=""  d
 . . . . . . f  s schimb=$o(@perem@(luna,data,ruta,graf,subd,schimb)) q:schimb=""  d
 . . . . . . . f  s tab=$o(@perem@(luna,data,ruta,graf,subd,schimb,tab)) q:tab=""  d
 . . . . . . . . s sod=@perem@(luna,data,ruta,graf,subd,schimb,tab)
 . . . . . . . . i $p(@zs3@(subd),"\",5)=1 d
........................................................................ etc.etc.etc.
 q
 ;;
error
 s err=$ze
 i err'="" d
 . s ^errAUTONOM($h)=$ze
 s %fcgi("o","stdout")=err
 s %fcgi("o","header","Content-Type")="text/html"
 q
 ;; 

...
Рейтинг: 0 / 0
Обращение к глобалу по расширенной ссылке
    #40046748
kalin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu,
Ужас :) Энтузиасты еще не перевелись писать такой код.
...
Рейтинг: 0 / 0
Обращение к глобалу по расширенной ссылке
    #40047444
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kalin,
Этот код(серверная логика) уже десятилетием работает в разных
М-системах: MSM, GT.M, Cache(да и в остальных я думаю работал бы)
и в разных вариантах на клиентах (терминалы, десктоп) без переписывания кода заметьте !
Сейчас пишутся маленькие модули на М для получения и отправки данных
ВЕБ клиенту не изменяя уже ранее написанный основной код.
Вот и все, никакой ужас... ;)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Обращение к глобалу по расширенной ссылке
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (1): Анонимы (1)
Пользователи онлайн (9): Анонимы (6), Yandex Bot, Google Bot 2 мин., Bing Bot 2 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]