Новая заморочка.
Требуется в компонент TIBQuery добавить лукап поле на другую таблицу.
Дело в том, то Napravs - совсем из другой базы. Итак.
Имеем:
DM : TDataModule;
в нём REPORTQUERYSEx1 : TIBQuery;
В коде:
В скрипте:
Получаю ошибку:
Неопределённый идентификатор:'FieldKind'
Пробовал:
fsScript.AddType('TFieldKind', fvtEnum);
fsScript.AddEnumSet('TFieldKind', 'fkData, fkCalculated, fkLookup, fkInternalCalc, fkAggregate');
Не помогает.
Коллеги, если хоть кто то может помочь, не оставляйте без внимания плиз. Иначе незнаю к кому еще обратиться.
Дело в том, то Napravs - совсем из другой базы. Итак.
Имеем:
DM : TDataModule;
в нём REPORTQUERYSEx1 : TIBQuery;
В коде:
fsScript.AddForm(DM);
В скрипте:
begin
with DM.REPORTQUERYSEx1.FieldDefs do
begin
with AddFieldDef do begin
Name := 'NAPRAVNAME';
DataType := ftString;
Size := 40;
FieldKind := fkLookup;
KeyFields := 'IDN';
LookupDataSet := 'Napravs';
LookupKeyFields := 'ID';
LookupResultField := 'NAME';
Visible := True;
end;
end;
ShowMessage('OK');
end.
Получаю ошибку:
Неопределённый идентификатор:'FieldKind'
Пробовал:
fsScript.AddType('TFieldKind', fvtEnum);
fsScript.AddEnumSet('TFieldKind', 'fkData, fkCalculated, fkLookup, fkInternalCalc, fkAggregate');
Не помогает.
Коллеги, если хоть кто то может помочь, не оставляйте без внимания плиз. Иначе незнаю к кому еще обратиться.
Комментарии
TFieldDef = class(TPersistent)
property Attributes: TFieldAttributes
property ChildDefs: Class TFieldDefs
property DataType: TFieldType
property Name: String
property Precision: Integer
property Size: Integer
как видишь среди них нету свойства FieldKind! Вывод его надо добавить, а как, а вот так:
with fsScript do
FindClass('TFieldDef') do
begin
AddProperty('FieldKind', 'TFieldKind', GetProp, SetProp);
end;
Ну а как добовлять типы, ты как я вижу уже знаешь.
Ну и по твоему скрипту видно что ещё кое что добавить придётся!
Дерзай!
Никак не пойму как тут со всем этим разобраться.
Народ помогите. Намаялся уже.
У тебя чё исходников FastScript нету? Вроде он в исходниках распрострвняется только 2 модуля в .dcu! Вот как надо!
Там ещё есть методы и события (это ваще ЖОПА)!
FastScript класная вещь! Дерзай!
Вобщем компилируется вот так:
НО ! Там надо еще и LookupDataSet присваивать : TDataSet
Задумался как это сделать.
{ if PropName = 'LOOKUPDATASET'
then Result := TField(TFieldDef(Instance)).LookupDataSet;}
Ругается. Говорит в вариант не записать TDataSet.
Как в fsScript передать ссылки на нужные датасеты, а главное как обработать потом в GetProp ?
Это последний наверное вопрос.
Вот как надо:
Все объекты переобразо...мля, короче Integer(ОБЪЕКТ), также в обратную сторону TObject(Integer(Variant))!!!
НУ НУ