Страница 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);
спасибо) правда я никогда таким не пользовался, может у вас есть какой-нибудь похожий пример использования таких функций в коде?

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)
Понятно, что происходит конфликт компонентной принадлежности, прошу подсказать правильную запись компоненты.

Re: Использование переменной, которая находится вне таблицы
Добавлено: 25 июл 2017, 15:06
Irina_
#component "Z_Staff"