Ошибки при использовании ObjStrFunc

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

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

Ответить
Epifanich
Сообщения: 18
Зарегистрирован: 30 окт 2006, 15:39

Ошибки при использовании ObjStrFunc

Сообщение Epifanich »

Здравствуйте!
Пытаюсь достучаться до строковых функций, ну, допустим, в таком отчете:
.Form proba
.Ard
.declare
#component "z_Staff"
#include StrFunc.vih
.enddeclare
.Create view Log1
var iStr:StringFunctions;
As select *
From
Persons
;
.{table 'log1.Persons'
.Fields
iStr.GetFIO(persons.fio)
.EndFields
^
.}
.EndForm

Но при его запуске выходят ошибки:
Возникло необработанное исключение ExObjIfcNoLoad(ExRef)
ошибка загрузки объекта из ресурсного файла (z_staff::StringFunctions)

Возникло необработанное исключение
ExObjIfcNoInit(ExRef) ссылка не была инициализирована

Содержание StrFunc.vih:

#ifndef _StrFunc_vih_Included
#define _SetFunc_vih_Included

#ifndef ComponentVersion
#define ComponentVersion
#end

#ifndef ATL51
#define ATL51
#end

#ifdef ComponentVersion
#component "z_Staff"
#end

//------------------------------------------------------------------------------
ObjInterface ObjStrFunc;
//------------------------------------------------------------------------------

// Функция возвращает Фамилию
Public function GetFirstName(FIO : string) : string;

// Функция возвращает Имя
Public function GetLastName(FIO : string) : string;

// Функция возвращает Отчество
Public function GetPatronymic(FIO : string) : string;

// Функция возвращает Фамилию и инициалы
Public function GetFIO(FIO : string) : string;

Public function UnVisibleInt(iTemp : integer) : string;
// функция преобразует число в строку и 0 заменяет пустой строкой

Public function UnVisibleLong(iTemp : longInt) : string;
// функция преобразует число в строку и 0 заменяет пустой строкой

Public function UnVisibleDouble(doubleTemp : double) : string;
// функция преобразует doubleTemp в строку и некорректное значение doubleTemp заменяет пустой строкой (для отчетов)

Public function UnVisibleDate(dateTemp : date; formatStr : string) : string;
// функция преобразует дату в строку по формату formatStr
// и некорректную дату заменяет пустой строкой

Public function GetCountDay(DateBeg : Date; DateEnd : Date) : longint;
// Функция возвращает количество дней между датами без учета полных месяцев (для расчета испытательного срока)

Public function GetCountMonths(DateBeg : Date; DateEnd : Date) : longint;
// Функция возвращает количество полных месяцев между датами (для расчета испытательного срока)

Public function GetCountYears(DateBeg : Date; DateEnd : Date) : longint;
// Функция возвращает количество полных лет между датами (для расчета испытательного срока)

Public function CreatePeriod(dateBeg : date; dateEnd : date) : string;
// функция формирует строку периода месяц, квартал, полугодие, год, период

Public function isCrossPeriod(dateBeg1 : date; dateEnd1 : date; dateBeg2 : date; dateEnd2 : date) : boolean;
// проверяет на пересечение периодов

Public function isHitPeriod(dateBeg : date; dateEnd : date; dateTest : date) : boolean;
// проверяет попадает ли dateTest в период

end;
//------------------------------------------------------------------------------

VipInterface StringFunctions implements ObjStrFunc
#ifdef ATL51
Licensed (free)
#end
;

#endif

Подскажите, пожалуйста, где что не так?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

var iStr:StringFunctions;
следует вынести
.var
iStr:StringFunctions;
.endvar
а в остальном вроде в порядке.
Epifanich
Сообщения: 18
Зарегистрирован: 30 окт 2006, 15:39

Сообщение Epifanich »

Увы, но ничего не изменилось. Кстати, я на Atlantis 5.3.14 работаю - это имеет значение?
Сейчас отчет выглядит так:
.Form proba
.Ard
.declare
#component "z_Staff"
#include StrFunc.vih
.enddeclare
.var
iStr:StringFunctions;
.endvar
.Create view Log1
As select *
From
Persons
;
.{table 'log1.Persons'
.Fields
iStr.GetFIO(persons.fio)
.EndFields
^
.}
.EndForm
ilshat
Местный житель
Сообщения: 222
Зарегистрирован: 04 июн 2008, 14:35
Откуда: Стерлитамак
Контактная информация:

Сообщение ilshat »

в PRJ должно быть:

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

#statusline "statgal"
#include galnet.inc
end;
#include glovars.inc 
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

попробуйте спросит strfunc.vih в ТП. Он наверное слегка поменялся.
а проектом(с комадной строки) не пробовали компилить? мож в этом дело. И поищите на форуме - вроде кто-то тоже не мог долго запусить в подобном виде.
Ответить