Ошибки при использовании ObjStrFunc
Добавлено: 26 ноя 2008, 14:53
Здравствуйте!
Пытаюсь достучаться до строковых функций, ну, допустим, в таком отчете:
.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
Подскажите, пожалуйста, где что не так?
Пытаюсь достучаться до строковых функций, ну, допустим, в таком отчете:
.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
Подскажите, пожалуйста, где что не так?