Простой пример объектного фейса.

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

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

Ответить
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Простой пример объектного фейса.

Сообщение m0p3e »

//Работа с атрибутами
Interface GetAttr_NV;

Create View
var
RecNrec : comp;
NameAtr : string;
FormatV : string;
as select
AttrNam.AttrType,
AttrVal.*
from
AttrNam(READONLY),
AttrVal(READONLY)
where ((
Attrnam.nrec == AttrVal.cAttrNam
and Attrnam.wTable == AttrVal.wTable
and RecNrec == AttrVal.crec
))
and
(UpCase(AttrNam.name) = UpCase(NameAtr))
;

//Проверка существования атрибута
Public Function CheckAtr ( NA : String ) : boolean;
Begin
NameAtr := NA;
If GetFirst AttrNam = tsOk
then CheckAtr := true
else CheckAtr := false;
End;

//Проверка существования атрибута с визуализацией :)
Public Function CheckAtrD ( NA : String ) : boolean;
Begin
NameAtr := NA;
If GetFirst AttrNam = tsOk
then CheckAtrD := true
else begin
Message ( 'Запрошенный атрибут не найден в БД!' + chr ( 13 ) + NA, Error );
CheckAtrD := false
end;
End;

//Получение значения типа string
Public Function sGetAtr ( NA : string; Rec : comp ) : string;
Begin
RecNrec := Rec;
If CheckAtr ( NA )
then If GetFirst AttrVal = tsOk
then sGetAtr := AttrVal.vString
else sGetAtr := '';
End;

//Получение значения типа double
Public Function doGetAtr ( NA : string; Rec : comp ) : double;
Begin
RecNrec := Rec;
If CheckAtr ( NA )
then If GetFirst AttrVal = tsOk
then doGetAtr := AttrVal.vDouble
else doGetAtr := 0;
End;

//Получение значения типа date
Public Function dGetAtr ( NA : string; Rec : comp ) : date;
Begin
RecNrec := Rec;
If CheckAtr ( NA )
then If GetFirst AttrVal = tsOk
then dGetAtr := AttrVal.vDate
else dGetAtr := date ( 0, 0, 0 );
End;

//Получение значения типа time
Public Function tGetAtr ( NA : string; Rec : comp ) : time;
Begin
RecNrec := Rec;
If CheckAtr ( NA )
then If GetFirst AttrVal = tsOk
then tGetAtr := AttrVal.vTime
else tGetAtr := time ( 0, 0, 0, 0 );
End;

END.

Использование. Например ТАКЖ
.....
var OF : GetAttr_NV
.....
MyDate := OF.dGetAtr ( NameAtr, nRec );
.....
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Простой пример объектного фейса.

Сообщение m0p3e »

Хм...
Коу-нибудь пригодилось или как?
sth
Постоянный обитатель
Сообщения: 148
Зарегистрирован: 29 мар 2005, 17:49

Re: Простой пример объектного фейса.

Сообщение sth »

погоди...не так быстро :)))
Ответить