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

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

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

Ответить
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

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

Сообщение Maverick »

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

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

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

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

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

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

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

#component "M_MnPlan"
Голову уже сломал, как это побороть... Кто натолкнет на здравую мыслю? В чем косяк?
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
Irina_
Местный житель
Сообщения: 554
Зарегистрирован: 17 июл 2012, 11:56
Откуда: Республика Беларусь, г.Могилев

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

Сообщение Irina_ »

Попробуйте компонент M_TPP.
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

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

Сообщение Maverick »

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

Возможно ли как-то явно задать компонентную принадлежность таблицы? типа как для интефейсов указывается Component::Interface
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

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

Сообщение 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

и тогда все должно собраться
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

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

Сообщение Maverick »

Спасибо Den!!! Сработало !!!

Осталось описать еще полтора десятка таких паблик-типов аля таблица (из tMnPlah.Vih) и можно будет проверять )))
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
Irina_
Местный житель
Сообщения: 554
Зарегистрирован: 17 июл 2012, 11:56
Откуда: Республика Беларусь, г.Могилев

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

Сообщение 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;
Или это не то, о чем Вы спрашивали?
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

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

Сообщение Den »

Irina_ ,а Вы попробуйте собрать пример простенький с той компонентной :

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

#component "M_TTP"

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

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

Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

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

Сообщение Maverick »

Вопрос закрыт. Определил паблик-типы через врапперы с описанием таблиц, как Денис и советовал. Все срослось.
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
Ответить