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

Компонентная принадлежность таблиц

Добавлено: 23 мар 2015, 17:59
Maverick
Коллеги, приветствую.
Разрабатываю собственный алгоритм, решил воспользоваться ранее определенным разработчиками типом TSpMnPlan

соответственно, подключил определение этого типа

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

public type TSpMnPlan   = record as table SpMnPlan;
#define TSpMnPlan TSpMnPlan
... и при компиляции получаю ошибку

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

Ошибка: Таблица SPMNPLAN не найдена в словаре или принадлежит другому компоненту (тип не найден)
Хотя при этом, сначала в файле проекта, а затем уже и непосредственно в самом исходнике явно указываю компоненту

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

#component "M_MnPlan"
Голову уже сломал, как это побороть... Кто натолкнет на здравую мыслю? В чем косяк?

Re: Компонентная принадлежность таблиц

Добавлено: 23 мар 2015, 19:00
Irina_
Попробуйте компонент M_TPP.

Re: Компонентная принадлежность таблиц

Добавлено: 23 мар 2015, 19:09
Maverick
Irina_ писал(а):Попробуйте компонент M_TPP.
Хм, а смысл? Таблица принадлежит компоненте M_MnPlan 100%. Тут дело как раз в том что при сборке игнорируется указание компоненты.

Возможно ли как-то явно задать компонентную принадлежность таблицы? типа как для интефейсов указывается Component::Interface

Re: Компонентная принадлежность таблиц

Добавлено: 23 мар 2015, 20:29
Den
"Начиная с Атлантиса5.1.23 внутренняя структура типа, описываемого как record as table <имя-таблицы> , зависит от области видимости
с которой он был определен.
Если такой тип описан с префиксом private, то он будет представлять собой структуру, воспроизведеную по указанной таблице базы данных. Естественно, это возможно только в том случае, если такая таблица определена в компилирующемся компоненте. Если тип описан с префиксом public, то он унаследует свою структуру от объекта-оболочки с соответствующим именем.
" (с)

если дейстивительно Вам нужно объявление типа как Public, то видимо пытается искаться описанный табличный объект SpMnPlan.
Нужно его описание которое можно подключить (сохраните vih такой) :

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

#ifndef __SPMNPLAN__VIH__
#define __SPMNPLAN__VIH__

#component "M_MNPLAN"

#include IModify.vih
#include IManualIndex.vih


public ObjInterface ISPMNPLAN;
  property NREC                 : Comp read write;
  property ATL_LASTDATE         : Date read write;
  property ATL_LASTTIME         : Time read write;
  property ATL_LASTUSER         : Comp read write;
  property ATL_ORIGINOFFICE     : Word read write;
  property LASTUSER             : String[20] read write;
  property LASTTIME             : Time read write;
  property LASTDATE             : Date read write;
  property FILIALNO             : LongInt read write;
  property CROLEAN1             : Comp read write;
  property WKODGR1              : Word read write;
  property CANVAL1              : Comp read write;
  property CROLEAN2             : Comp read write;
  property WKODGR2              : Word read write;
  property CANVAL2              : Comp read write;
  property CROLEAN3             : Comp read write;
  property WKODGR3              : Word read write;
  property CANVAL3              : Comp read write;
  property CROLEAN4             : Comp read write;
  property WKODGR4              : Word read write;
  property CANVAL4              : Comp read write;
  property CROLEAN5             : Comp read write;
  property WKODGR5              : Word read write;
  property CANVAL5              : Comp read write;
  property CMNPLAN              : Comp read write;
  property NUMBER               : String[20] read write;
  property CSTATUS              : Comp read write;
  property CONDREC              : Word read write;
  property PRIOR                : Comp read write;
  property NUMSORT              : Comp read write;
  property TYPEIZD              : Word read write;
  property CIZD                 : Comp read write;
  property COTPED               : Comp read write;
  property CSPMNPLAN            : Comp read write;
  property UTVDATE              : Date read write;
  property STARTDATE            : Date read write;
  property ENDDATE              : Date read write;
  property STARTDATEFACT        : Date read write;
  property ENDDATEFACT          : Date read write;
  property KOLTIME              : Double read write;
  property EDTIME               : Word read write;
  property STGANG               : LongInt read write;
  property ENDGANG              : LongInt read write;
  property WKODGRPER            : Word read write;
  property WKODGRPODR           : Word read write;
  property CKATPODR             : Comp read write;
  property WKODGRPOL            : Word read write;
  property CKATPODRPOL          : Comp read write;
  property CSLOJ                : Comp read write;
  property SISOPL               : Word read write;
  property RAZR                 : Word read write;
  property CODTAR               : Word read write;
  property CVAL1                : Comp read write;
  property CPERPLAN             : Comp read write;
  property TYPEED               : Word read write;
  property CROLEIZD             : Comp read write;
  property STARTDATETIME        : DateTime read write;
  property ENDDATETIME          : DateTime read write;
  property STARTDATETIMEFACT    : DateTime read write;
  property ENDDATETIMEFACT      : DateTime read write;
  index SPMNPLAN01 = NREC(unique, primary);
  index SPMNPLAN02 = CMNPLAN, NUMSORT;
  index SPMNPLAN03 = CMNPLAN, NUMBER;
  index SPMNPLAN04 = CSPMNPLAN, NUMSORT;
  index SPMNPLAN05 = CMNPLAN, TYPEIZD, CIZD, RAZR, SISOPL, CODTAR, WKODGR1, CANVAL1, WKODGR2, CANVAL2, 
        WKODGR3, CANVAL3, ENDDATE, STARTDATE;
  index SPMNPLAN06 = TYPEIZD, CIZD, CMNPLAN, WKODGR1, CANVAL1, WKODGR2, CANVAL2, WKODGR3, CANVAL3, ENDDATE, 
        STARTDATE;
  index SPMNPLAN07 = CMNPLAN, WKODGR1, CANVAL1, NUMSORT;
  index SPMNPLAN08 = CMNPLAN, WKODGR2, CANVAL2, NUMSORT;
  index SPMNPLAN09 = CMNPLAN, WKODGR1, CANVAL1, WKODGR2, CANVAL2, WKODGR3, CANVAL3, NUMSORT;
  index SPMNPLANLM = ATL_LASTDATE, ATL_LASTTIME;
  index SPMNPLANLU = ATL_LASTUSER;
end;

public VipInterface twSPMNPLAN implements ISPMNPLAN, IModify, IManualIndex licensed(free);
public:
  constructor Init;
end;

#endif

и тогда все должно собраться

Re: Компонентная принадлежность таблиц

Добавлено: 23 мар 2015, 21:54
Maverick
Спасибо Den!!! Сработало !!!

Осталось описать еще полтора десятка таких паблик-типов аля таблица (из tMnPlah.Vih) и можно будет проверять )))

Re: Компонентная принадлежность таблиц

Добавлено: 24 мар 2015, 10:31
Irina_
Здравствуйте.
В M_TPP.chm описание типа:
Type M_TPP::TSpMnPlan
Type TSpMnPlan = Record as table SpMnPlan;
Запустите поиск в M_MNPLAN.chm. В описании многих методов этот тип указывается с компонентом, например:
Function InsertSpMnPlan (var stSpMnPlan : M_TPP::TSpMnPlan) : Boolean;
Или это не то, о чем Вы спрашивали?

Re: Компонентная принадлежность таблиц

Добавлено: 24 мар 2015, 11:44
Den
Irina_ ,а Вы попробуйте собрать пример простенький с той компонентной :

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

#component "M_TTP"

public type TSpMnPlan   = record as table SpMnPlan;
#define TSpMnPlan TSpMnPlan

interface qwerty;
  var 
    c : TSpMnPlan;
 create view;
end.


Re: Компонентная принадлежность таблиц

Добавлено: 24 мар 2015, 20:30
Maverick
Вопрос закрыт. Определил паблик-типы через врапперы с описанием таблиц, как Денис и советовал. Все срослось.