Проблема со склонением ФИО при переходе с 8.0 на 8.1

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

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

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

Проблема со склонением ФИО при переходе с 8.0 на 8.1

Сообщение Epifanich »

Здравствуйте все!
Возникла проблема со склонением ФИО при переходе с 8.0 на 8.1. Интерфейс со старой версией файла odecl.vih (текст здесь: http://www.tyumbit.ru/gal_forum/viewtop ... ight=odecl) не работает – компилится без вопросов, но при вызове выдаёт ошибку: «ошибка загрузки объекта из ресурсного файла(declension)». Тупо пробовал заменить #ifdef ATL51 на #ifdef ATL5208 – не помогло. Подскажите, что делать.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

screw уже писал. exe\galdoc\Z_Staff.chm - компоненты - z_staff - интерфейсы - odeclension.
Сверяйте, то что у вас есть с этим. Еще смотрите "объекты - declension".
Epifanich
Сообщения: 18
Зарегистрирован: 30 окт 2006, 15:39

Сообщение Epifanich »

Все посмотрели, все есть, ничего не работает.
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

Epifanich
Я использовал этот объектный интерфейс в 8.1 - всё раобтает.
Не надо таких категоричных заявлений.

Скорее всего ваша ошибка в том, что вы забыли где то либо дефайн, либо объявить компоненту перед подключением ВИХ файла.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

а компоненту вы определили?
#Component "Z_Staff"
Epifanich
Сообщения: 18
Зарегистрирован: 30 окт 2006, 15:39

Сообщение Epifanich »

Да, вроде бы все есть или что-то не доходит. Чтобы не быть голословным, привожу тексты:

#include odecl.vih
interface s2
var
iOdecl : declension;
fio,f,i,o:string;
pad1:word;
create view as select * from grnal;
parameters
fio,
pad1
;
browse www
fields
grnal.nrec;
end;
handleevent
cminit:
{
f:=substr(fio,1,pos(' ',fio)-1);
fio:=substr(fio,pos(' ',fio)+1,length(fio));
i:=substr(fio,1,pos(' ',fio)-1);
fio:=substr(fio,pos(' ',fio)+1,length(fio));
o:=fio;
fio:=iodecl.SurNameDeclension(f,0,pad1,1)+' '+
iodecl.NameDeclension(i,0,pad1)+' '+
iodecl.PatronDeclension(o,0,pad1);
closeinterface(0);
}
end;
end.

А вот odecl.vih:

#ifdef ComponentVersion
#component "z_Staff"
#end

objinterface odeclension;

function SurNameDeclension(LName: string; gender: word; NCase: word; NPart: byte): string;

function NameDeclension(FName: string; gender: word; NCase: word): string;

function PatronDeclension(PName: string; gender: word; NCase: word): string;

function FIODeclension(cpersons: comp; Infinitive: string; NCase: word): string;

function AddSimpleException(Target: string; ExceptType: byte): word;

procedure RunSimpleExceptionWindow;

function fndpersonsException(cpersons: comp; nCase: word): string;

function AddPersonalException(cpersons: comp; Target: string; nCase: word): word;

function DeletePersonalException(cpersons: comp; nCase: word): word;

function UpdatePersonalException(cpersons: comp; Target: string; nCase: word): word;
end;

objinterface odeclension1;

function VerifyGender(target: string): word;

end;

vipinterface declension implements odeclension, odeclension1;


#ifdef ATL5208
Licensed (free)
#end

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

Сообщение edward_K »

#define ComponentVersion не хватает - сделайте ошибку в #ifdef и увидите что вы туда просто не попали. Да и vip_res.log не мешает посмотреть.
Epifanich
Сообщения: 18
Зарегистрирован: 30 окт 2006, 15:39

Сообщение Epifanich »

Большое спасибо. Все получилось!
Ответить