Страница 1 из 2

Использование переменной, которая находится вне таблицы

Добавлено: 22 июн 2016, 10:57
Espada
Доброго дня. у меня такой вопрос появился: нужно вывести на печатную форму информацию об организации почтовый адрес, индекс и т.д. Вывел всё, кроме населенного пункта. В галактике посмотрел, используется переменная TERRNAME. не в какую из таблиц она не входит.
Изображение
Скажите пожалуйста, можно ли её как-нибудь использовать?

Re: Использование переменной, которая находится вне таблицы

Добавлено: 22 июн 2016, 11:31
RAJAH
TERRNAME - это вычисляемое поле, в печатную форму не выведется так просто. Населённый пункт - скорее всего, KATCITY.NAME (связь KATORG.CCITY = KATCITY.NREC).

Re: Использование переменной, которая находится вне таблицы

Добавлено: 22 июн 2016, 12:09
Espada
RAJAH писал(а):TERRNAME - это вычисляемое поле, в печатную форму не выведется так просто. Населённый пункт - скорее всего, KATCITY.NAME (связь KATORG.CCITY = KATCITY.NREC).
KATCITY.NAME немного не то. выводится только наименование города. а мне бы точно так же как в пункте Населенный пункт, делаю форму печати конвертов.
Изображение
пробовал сам собрать все эти данные, но не могу найти Государство(РБ) и область(Гродненская обл.)

Re: Использование переменной, которая находится вне таблицы

Добавлено: 22 июн 2016, 12:24
m0p3e
Адреса обычно формируются через ObjAddressFunc (AdrFunc.vih).

Код: Выделить всё

     FullNameAdr    := iAdrFunc.GetFullAddressInd(CurNRecAdr);
     FullNameATD    := iAdrFunc.GetFullTerrName(CurNRecATD);

Re: Использование переменной, которая находится вне таблицы

Добавлено: 22 июн 2016, 12:30
RAJAH

Re: Использование переменной, которая находится вне таблицы

Добавлено: 22 июн 2016, 12:43
Den
Можно попробовать заюзать AdrFunc.vih для этого дела

Re: Использование переменной, которая находится вне таблицы

Добавлено: 22 июн 2016, 12:47
Espada
m0p3e писал(а):Адреса обычно формируются через ObjAddressFunc (AdrFunc.vih).

Код: Выделить всё

     FullNameAdr    := iAdrFunc.GetFullAddressInd(CurNRecAdr);
     FullNameATD    := iAdrFunc.GetFullTerrName(CurNRecATD);
спасибо) правда я никогда таким не пользовался, может у вас есть какой-нибудь похожий пример использования таких функций в коде? :razz:

Re: Использование переменной, которая находится вне таблицы

Добавлено: 22 июн 2016, 12:59
m0p3e
Если в форме, то как-то так:

Код: Выделить всё

.var iAdrFunc : AddressFunc; .endvar
.fields
 iAdrFunc.GetFullTerrName (<AddressN.nrec>)
.endfields

Re: Использование переменной, которая находится вне таблицы

Добавлено: 22 июн 2016, 13:15
Espada
m0p3e писал(а):Если в форме, то как-то так:

Код: Выделить всё

.var iAdrFunc : AddressFunc; .endvar
.fields
 iAdrFunc.GetFullTerrName (<AddressN.nrec>)
.endfields
пробую делать так же:

Код: Выделить всё

.var
...
iAdrFunc : AddressFunc
.endvar
.Create view AdOrg
From katorg, ADDRESSN, STERR, KATCITY
Where ((
ORG_NREC == katorg.nrec and
Katorg. CPOSTADDR == addressn.nrec and
Addressn.CSTERR == STERR.nrec and
Katorg.CCITY == katcity.nrec
));
.fields
  NAMEOR
iAdrFunc.GetFullTerrName (<AddressN.nrec>)
...
.endfields

но, у меня ругается на iAdrFunc.GetFullTerrName (<AddressN.nrec>)
пишет "Ошибка: Ожидалась константа, поле, функция, "if" или "Case" "

Re: Использование переменной, которая находится вне таблицы

Добавлено: 22 июн 2016, 13:25
Espada
m0p3e писал(а):Если в форме, то как-то так:

Код: Выделить всё

.var iAdrFunc : AddressFunc; .endvar
.fields
 iAdrFunc.GetFullTerrName (<AddressN.nrec>)
.endfields
в iAdrFunc.GetFullTerrName (<AddressN.nrec>) убрал <> заработало) спасибо большое)

Re: Использование переменной, которая находится вне таблицы

Добавлено: 22 июн 2016, 13:47
Espada
Рано обрадовался) адрес не ссылается по Нреку, на нужный, скорее всего берёт первую запись из таблицы.
у меня используется одна create view:

Код: Выделить всё

.Create view AdOrg
From katorg, ADDRESSN, STERR, KATCITY
Where ((
ORG_NREC == katorg.nrec and
Katorg. CPOSTADDR == addressn.nrec and
Addressn.CSTERR == STERR.nrec and
Katorg.CCITY == katcity.nrec
));
попробовал использовать ADDRESSN который используется тут.
исправил:

Код: Выделить всё

(iAdrFunc.GetFullTerrName (AdOrg.ADDRESSN.NREC)
но это тоже не помогло. выводится не тот адрес...

Re: Использование переменной, которая находится вне таблицы

Добавлено: 22 июн 2016, 16:00
Irina_
Здравствуйте.
Katorg.CPOSTADDR - ссылка на почтовый адрес
Katorg.CJURIDICALADDR - ссылка на юридический адрес
А Вы вообще движетесь по таблицам?
Попробуйте:
.var
iAdrFunc : AddressFunc;
sAdr : String;
.endvar
.Create view AdOrg
From katorg
, ADDRESSN
Where ((
ORG_NREC == katorg.nrec
and Katorg.CPOSTADDR == addressn.nrec
));
.fields
sAdr
.endfields

.begin
sAdr:=’’;
if AdOrg.Getfirst Katorg = tsOk
if AdOrg.Getfirst Addressn = tsOk
sAdr:= iAdrFunc.GetFullTerrName(AdOrg.Addressn.Nrec);
end.

Re: Использование переменной, которая находится вне таблицы

Добавлено: 22 июн 2016, 16:06
m0p3e
<> означают, что нужно свое значение подставить. :)

Код: Выделить всё

.Create view AdOrg
From katorg, PodrInfo
Where ((
ORG_NREC == katorg.nrec and
Katorg.nrec == podrinfo.cpodr
));

.fields
 iAdrFunc.GetFullTerrName(comp(AdOrg.PodrInfo.okved))
.endfields
Ну и пропозиционировать предварительно таблицу не помешает.

Re: Использование переменной, которая находится вне таблицы

Добавлено: 25 июл 2017, 14:46
zna
Доброго дня, коллеги. Пытаюсь достать адрес контрагента, с помощью AdrFunc.vih, данная тема как раз подходит. Есть проектик

Код: Выделить всё

#Component "L_SOPRDOC"
#include Galnet.inc
#include cfg_all.inc
end;
#include PrnSoprFun.vih
#include AdrFunc.vih 
...    
#make "PrnM12.vip"  

и попытка

Код: Выделить всё

Interface PrnM12;
...
  create view
   var
     addrLaw: string;
     addrService: AddressFunc;
   as select *
...
 HandleEvent
   CmInit:
     {
...
      addrLaw:= addrService.GetFullAddressInd(Comp(PodrInfo.insNomer));  
...
Компилируется сие нормально, а при выполнении получаю радостную весть
Возникло необработанное исключение
ExObjIfcNoLoad (ExRef)
ошибка загрузки объекта из ресурсного файла(L_SOPRDOC::AddressFunc)

Понятно, что происходит конфликт компонентной принадлежности, прошу подсказать правильную запись компоненты. :eek:

Re: Использование переменной, которая находится вне таблицы

Добавлено: 25 июл 2017, 15:06
Irina_
#component "Z_Staff"