Страница 1 из 1
Подсобите с использованием методов L_KatOrg
Добавлено: 10 июл 2009, 13:19
Masygreen
День добрый (гал 8.1)... необходимо получить юридический адрес организации ..
в Галактике есть соответствующие функции .. привожу кусок OrganizationInfo.obj
Код: Выделить всё
#ifndef _ORGANIZATIONINFO_OBJ_INCLUDED_
#define _ORGANIZATIONINFO_OBJ_INCLUDED_
#ifdef ComponentVersion
#component "L_KATORG"
#end
#doc
набор методов для выборки информации об организации
загрузка информации об организации по ее номеру записи OrganizationRef
#end
objinterface IOrganizationInfoFinder;
#doc
загрузить информации об организации по ее номеру записи OrganizationRef
#end
function Seek(OrganizationRef: comp): boolean;
end;
#doc
набор методов для выборки информации об организации
юридические атрибуты организации
#end
objinterface IOrganizationJuridicalInfo;
#doc
юридический адрес
#end
function GetJuridicalAddressStr: string;
пытаюсь воспользоваться - видимо не втом порядке... выдает ошибку
подкрутите плиз руки
Код: Выделить всё
.var
Rez:Boolean;
OrgJu:IOrganizationJuridicalInfo;
vcatorg:comp;
juraddr:string;
.endvar
.begin
vcatorg:=t2.katorg.nrec;
Rez := OrgJu.Seek(vcatorg);
juraddr:= OrgJu.GetJuridicalAddressStr();
end.
Добавлено: 10 июл 2009, 13:57
Алексей
Код: Выделить всё
Компиляция форм с объектными интерфейсами | 17.X.2006 @ 13:56 | Sniper
В версиях Системы "Галактики" 7.12 (с патчем ATL02 и далее) и 8.0 программистами стали применять объектные интерфейсы.
В них описываются переменные для различных элементов системы.
Пример компиляции формы, где применяется объектный интерфейс ObjInterface IMCOriginCountry;
Вот его код:
#ifndef __MCORIGINCOUNTRY_VIH
#define __MCORIGINCOUNTRY_VIH
#ifdef ComponentVersion
#component "L_SF"
#endif
ObjInterface IMCOriginCountry;
function getCountryName(cMC: comp; cParty: comp): string;
function getGTDNumber(cParty: comp): string;
end;
VipInterface MCOriginCountry implements IMCOriginCountry
#ifdef ATL51
Licensed (FREE)
#end
;
#end
Компиляция объектных интерфейсов в компиляторе форм (FCOM) происходит следующим образом:
1. В синтаксис FCOM формы отчета добавляется секция:
.Declare
.EndDeclare
2. Пример использования для Книги закупок:
.linkform 'BkPrZkF_54_SLK' prototype is 'BkPrZkF'
.NameInList 'Книга покупок в формате Excel'
.Group 'Закупки'
.set filler '-'
.Declare
#ifndef __MCORIGINCOUNTRY_VIH
#define __MCORIGINCOUNTRY_VIH
#ifdef ComponentVersion
#component "L_SF"
#endif
ObjInterface IMCOriginCountry;
function getCountryName(cMC: comp; cParty: comp): string;
function getGTDNumber(cParty: comp): string;
end;
VipInterface MCOriginCountry implements IMCOriginCountry
#ifdef ATL51
Licensed (FREE)
#end
;
#end
.enddeclare
... // основной код формы
.endform
Добавлено: 10 июл 2009, 14:04
Masygreen
... ну код то у меня собирается без ошибок... .. в проекте заинклужен соответствующий vih.
я не могу использовать эту функцию она типа не определена .. что то с seek надо по другому делать видимо, что в общем то и хочется познать
Добавлено: 10 июл 2009, 14:10
edward_K
для использования в таком виде нужно еще делать loadvipInterface или еще чего аналогочиное. Лучше переменную объявлять в типе что указан в строке с vipinterface ?????????? implements IMCOriginCountry.
А вообще посмотрите формы по СФ и счетам на продажу/закупку - там вроде это использовалось.
Добавлено: 10 июл 2009, 15:33
Masygreen
пробовал и так ..
ошибка загрузки объекта из OrganizationJuridicalInfo
Код: Выделить всё
.var
vcatorg:comp;
OrganizationRef: comp;
JuridicalInfo: IOrganizationJuridicalInfo;
XarAddres:string;
.endvar
.begin
probel:=’ ’;
vcatorg:=t2.katorg.nrec;
LoadVipRef(JuridicalInfo, 'OrganizationJuridicalInfo');
GetBoundOrganization(vcatorg, OrganizationRef);
IOrganizationInfoFinder(JuridicalInfo).Seek(OrganizationRef)
XarAddres := JuridicalInfo.GetJuridicalAddressStr;
Message(XarAddres);
end.
Добавлено: 10 июл 2009, 21:11
Screw
Вообще-то, полное имя объектного интерфейса - 'L_KATORG::'IOrganizationJuridicalInfo', его стандартной реализации - 'L_KATORG::'OrganizationJuridicalInfo'. Попробуйте в последнем примере использовать полные имена интерфейсов.
Добавлено: 13 июл 2009, 15:48
Masygreen
в общем не получилось с L_Katorg разобраться

это плохо.
Но тем не менее найден с помощью форума вариант получения юридического адреса через L_Staff
в сцепку добавлено
в форме
Код: Выделить всё
.var
XarAddres:string;
addrService : Z_Staff::AddressFunc;
.endvar
.begin
T2.getfirst;
XarAddres:=addrService.GetFullAddressInd(Comp(comp(t2.podrinfo.INSNOMER)));
Message(XarAddres);
end.
хотя на самом деле это через зад .. т.к. в принципе до самого адреса одна сцепка остается
Если у кого идеи появятся заставить работать L_KatOrg пишите

Добавлено: 13 июл 2009, 19:35
Masygreen
Все дело в волшебных пузырьках ... решение найдено простым перебором и включением интуиции ...
может кому пригодится .. также в
OrganizationJuridicalInfo есть много полезного !!!
Код: Выделить всё
var OrgInf:OrganizationJuridicalInfo;
IOrganizationInfoFinder(OrgInf).Seek(Katorg.nrec);
message(OrgInf.GetJuridicalAddressStr());
Добавлено: 14 июл 2009, 17:05
Screw
Так в чем же была хитрость?
Добавлено: 15 июл 2009, 22:02
Masygreen
Так и не понял .. то ли в скобках при вызове функции
GetJuridicalAddressStr().. то ли в ненужности
GetBoundOrganization(vcatorg, OrganizationRef);
вобщем рабочий кусок представил .. кому пригодится хорошо
