Проблема с отчетом

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

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

Diman
Постоянный гость
Сообщения: 56
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Волгоград Филиал ОАО "Связьтранснефть" НВ ПТУС отдел ОИТ

Проблема с отчетом

Сообщение Diman »

Добрый вечер, есть задача, в которой нужно в отчете помимо различной информации, вывести ФИО в определенном падеже.Есть файл odecl.vih, но как его грамотно подщключить и использовать его функции, я не знаю,пробовал много способов, ничего не помогает.Кто-нибудь сталкивался с подобным?
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

#include odecl.vih
........
var iDecl : Declension;
........
iDecl.FIODeclension ( Persons.nrec,Persons.FIO,x);
/////////
x = {1 - именительный, 2 - родительный и т.д.}

Собственно Persons.nrec для проверки наличия вручную введенных исключений. Persons.FIO для обработки по общим правилам.
Diman
Постоянный гость
Сообщения: 56
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Волгоград Филиал ОАО "Связьтранснефть" НВ ПТУС отдел ОИТ

Сообщение Diman »

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

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

ну так просто файл не находит. у вас есть файл? укажите в конфиге директории где искать вихи.
Diman
Постоянный гость
Сообщения: 56
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Волгоград Филиал ОАО "Связьтранснефть" НВ ПТУС отдел ОИТ

Сообщение Diman »

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

Сообщение m0p3e »

Для проверки можно положить его рядом с проектом.
Diman
Постоянный гость
Сообщения: 56
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Волгоград Филиал ОАО "Связьтранснефть" НВ ПТУС отдел ОИТ

Сообщение Diman »

Спасибо всем за советы, теперь все компилится, но при выводе отчета фамилия не выводится.Как проверить что на выходе функции?
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Исходник в студию. Так будет проще :)
Diman
Постоянный гость
Сообщения: 56
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Волгоград Филиал ОАО "Связьтранснефть" НВ ПТУС отдел ОИТ

Сообщение Diman »

.LinkForm ’Nformt1_02_2’ Prototype is ’Nformt1_2004’
.NameInList ’Договорное обязательство (Ткаченко М.Е.)’

#include C:\odecl.vih
var
iDecl : Odeclension;
str:string;


str:=iDecl.FIODeclension(Persnrec,FIO,3);

.create view t1
as select appointments.*,staffstruct.*,advfeatures.*,catalogs.*
where ((APPOINTNREC==appointments.nrec and appointments.STAFFSTR /== staffstruct.nrec
and advfeatures.objnrec /== staffstruct.nrec
and advfeatures.position /== catalogs.nrec));
.Fields
FIO
должность
catalogs.CODE
catalogs.LONGNAME
.EndFields
Приложение 1
к «Положению о коммерческой тайне ОАО «ХХХХХХ»
утверждено приказом ОАО «ХХХХХХ»
от 30.04.2008 №
Договорное обязательство _______ str

Мне, ^
(Фамилия, имя. отчество}
при оформлении на должность iDecl.FIODeclension(PERSNREC, FIO,3);
^
(название должности и структурного подразделения)
ОАО «ХХХХХХХ» (далее именуется - Общество) в соответствии Трудовым договором разъясне-но, что по роду исполняемых мною должностных обязанностей я буду допушен(а) к информации, яв-ляющейся коммерческой тайной Общества:

Перечень конкретной информации, составляющей коммерческую тайну, к которым допускается работник
.{table 't1' by appointments.nrec;
^ ^
.}


«_____»______________ 200 года ___________________________
(подпись)
_________________________________________________________________________________________
(собственноручно написанные фамилия, ими, отчество работника )

Перечень конфиденциальной информации, к которой допускается работник, согласован.
Начальник (наименование подразделения) « » 200 года
_________________________________________________________________________________________________
(подпись, фамилия, инициалы начальника подразделения работника) \
Должностное лицо, принявшее Договорное обязательство:
Специалист СБ «_____ »____________________ 200 года
.{t1_2004_Raise CheckEnter
.}
.endform
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Не похоже что это рабочий исходник. Вот так должно работать:

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

#include C:\odecl.vih 

.LinkForm ’Nformt1_02_2’ Prototype is ’Nformt1_2004’ 
.NameInList ’Договорное обязательство (Ткаченко М.Е.)’ 
.var 
iDecl : Odeclension; 
.endvar
.create view t1 
as select appointments.*,staffstruct.*,advfeatures.*,catalogs.* 
where ((APPOINTNREC==appointments.nrec and appointments.STAFFSTR /== staffstruct.nrec 
and advfeatures.objnrec /== staffstruct.nrec 
and advfeatures.position /== catalogs.nrec)); 
.Fields 
FIO 
iDecl.FIODeclension(PERSNREC, FIO,3); 
должность 
catalogs.CODE 
catalogs.LONGNAME 
.EndFields 
Приложение 1 
к «Положению о коммерческой тайне ОАО «ХХХХХХ» 
утверждено приказом ОАО «ХХХХХХ» 
от 30.04.2008 № 
Договорное обязательство _______ str 

Мне, ^ 
(Фамилия, имя. отчество} 
при оформлении на должность ^
^ 
(название должности и структурного подразделения) 
ОАО «ХХХХХХХ» (далее именуется - Общество) в соответствии Трудовым договором разъясне-но, что по роду исполняемых мною должностных обязанностей я буду допушен(а) к информации, яв-ляющейся коммерческой тайной Общества: 

Перечень конкретной информации, составляющей коммерческую тайну, к которым допускается работник 
.{table 't1' by appointments.nrec; 
^ ^ 
.} 


«_____»______________ 200 года ___________________________ 
(подпись) 
_________________________________________________________________________________________ 
(собственноручно написанные фамилия, ими, отчество работника ) 

Перечень конфиденциальной информации, к которой допускается работник, согласован. 
Начальник (наименование подразделения) « » 200 года 
_________________________________________________________________________________________________ 
(подпись, фамилия, инициалы начальника подразделения работника) \ 
Должностное лицо, принявшее Договорное обязательство: 
Специалист СБ «_____ »____________________ 200 года 
.{t1_2004_Raise CheckEnter 
.} 
.endform
Кроме того необходимо проверить что выдают PersNrec и FIO.
Diman
Постоянный гость
Сообщения: 56
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Волгоград Филиал ОАО "Связьтранснефть" НВ ПТУС отдел ОИТ

Сообщение Diman »

Сделал все как вы описали, при компиляции выдается ошибка : Ожидается оператор ".Form", ".Autoform",".LinkForm" или "Set Name" (стр 19, поз 1 в С:\odecl.vih) objinterface odeclension;

если переставляю в отчете строку #include C:\odecl.vih после
LinkForm ’Nformt1_02_2’ Prototype is ’Nformt1_2004’
то при компиляции выдается предупреждение: ожидалось имя или описание типа iDecl : Odeclension;


Я так понимаю, мой файл C:\odecl.vih какойто неверный?!
KATZ
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49

Сообщение KATZ »

VIH-и обычно в файле *.prj подключаются, как-то так:

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

#include odecl.vih
#make "MyLinkForm.frm"
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Опс. А почему iDecl : Odeclension?
Нужно iDecl : Declension;

vih-и лучше подключать на уровне проекта. Т.е.

compile.prj:

#include Odecl.vih

#make MyForm.frm
Diman
Постоянный гость
Сообщения: 56
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Волгоград Филиал ОАО "Связьтранснефть" НВ ПТУС отдел ОИТ

Сообщение Diman »

У нас есть лицензия на компиляцию только отчетов, поэтому не знаю как в проекте подключить этот файл.Я только начал в галактике разбираться, поэтому многого еще не знаю, и не во всем компетентен.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Я уже и забыл как FCOM выглядит. :)
Вроде надо писать так:
.declare
#include Odecl.vih
.enddeclare
Ответить