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

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

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

Сообщение Espada »

Доброго дня. у меня такой вопрос появился: нужно вывести на печатную форму информацию об организации почтовый адрес, индекс и т.д. Вывел всё, кроме населенного пункта. В галактике посмотрел, используется переменная TERRNAME. не в какую из таблиц она не входит.
Изображение
Скажите пожалуйста, можно ли её как-нибудь использовать?
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

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

Сообщение RAJAH »

TERRNAME - это вычисляемое поле, в печатную форму не выведется так просто. Населённый пункт - скорее всего, KATCITY.NAME (связь KATORG.CCITY = KATCITY.NREC).
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

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

Сообщение Espada »

RAJAH писал(а):TERRNAME - это вычисляемое поле, в печатную форму не выведется так просто. Населённый пункт - скорее всего, KATCITY.NAME (связь KATORG.CCITY = KATCITY.NREC).
KATCITY.NAME немного не то. выводится только наименование города. а мне бы точно так же как в пункте Населенный пункт, делаю форму печати конвертов.
Изображение
пробовал сам собрать все эти данные, но не могу найти Государство(РБ) и область(Гродненская обл.)
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

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

Сообщение m0p3e »

Адреса обычно формируются через ObjAddressFunc (AdrFunc.vih).

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

     FullNameAdr    := iAdrFunc.GetFullAddressInd(CurNRecAdr);
     FullNameATD    := iAdrFunc.GetFullTerrName(CurNRecATD);
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

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

Сообщение Den »

Можно попробовать заюзать AdrFunc.vih для этого дела
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

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

Сообщение Espada »

m0p3e писал(а):Адреса обычно формируются через ObjAddressFunc (AdrFunc.vih).

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

     FullNameAdr    := iAdrFunc.GetFullAddressInd(CurNRecAdr);
     FullNameATD    := iAdrFunc.GetFullTerrName(CurNRecATD);
спасибо) правда я никогда таким не пользовался, может у вас есть какой-нибудь похожий пример использования таких функций в коде? :razz:
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

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

Сообщение m0p3e »

Если в форме, то как-то так:

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

.var iAdrFunc : AddressFunc; .endvar
.fields
 iAdrFunc.GetFullTerrName (<AddressN.nrec>)
.endfields
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

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

Сообщение 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" "
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

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

Сообщение Espada »

m0p3e писал(а):Если в форме, то как-то так:

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

.var iAdrFunc : AddressFunc; .endvar
.fields
 iAdrFunc.GetFullTerrName (<AddressN.nrec>)
.endfields
в iAdrFunc.GetFullTerrName (<AddressN.nrec>) убрал <> заработало) спасибо большое)
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

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

Сообщение 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)
но это тоже не помогло. выводится не тот адрес...
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Irina_
Местный житель
Сообщения: 546
Зарегистрирован: 17 июл 2012, 11:56
Откуда: Республика Беларусь, г.Могилев

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

Сообщение 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.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

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

Сообщение 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
Ну и пропозиционировать предварительно таблицу не помешает.
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

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

Сообщение 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:
Irina_
Местный житель
Сообщения: 546
Зарегистрирован: 17 июл 2012, 11:56
Откуда: Республика Беларусь, г.Могилев

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

Сообщение Irina_ »

#component "Z_Staff"
Ответить