Страница 1 из 2
Проблема с отчетом
Добавлено: 22 дек 2009, 19:47
Diman
Добрый вечер, есть задача, в которой нужно в отчете помимо различной информации, вывести ФИО в определенном падеже.Есть файл odecl.vih, но как его грамотно подщключить и использовать его функции, я не знаю,пробовал много способов, ничего не помогает.Кто-нибудь сталкивался с подобным?
Добавлено: 22 дек 2009, 20:00
m0p3e
#include odecl.vih
........
var iDecl : Declension;
........
iDecl.FIODeclension ( Persons.nrec,Persons.FIO,x);
/////////
x = {1 - именительный, 2 - родительный и т.д.}
Собственно Persons.nrec для проверки наличия вручную введенных исключений. Persons.FIO для обработки по общим правилам.
Добавлено: 22 дек 2009, 20:03
Diman
При компиляции, выдается ошибка:Ошибка при открытии include файла Odecl.vih
Добавлено: 22 дек 2009, 20:07
Алексей
ну так просто файл не находит. у вас есть файл? укажите в конфиге директории где искать вихи.
Добавлено: 22 дек 2009, 20:13
Diman
я прописал путь к include-файлам
Добавлено: 22 дек 2009, 22:25
m0p3e
Для проверки можно положить его рядом с проектом.
Добавлено: 23 дек 2009, 11:36
Diman
Спасибо всем за советы, теперь все компилится, но при выводе отчета фамилия не выводится.Как проверить что на выходе функции?
Добавлено: 23 дек 2009, 11:47
m0p3e
Исходник в студию. Так будет проще
Добавлено: 23 дек 2009, 11:59
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
Добавлено: 23 дек 2009, 12:10
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.
Добавлено: 23 дек 2009, 12:30
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 какойто неверный?!
Добавлено: 23 дек 2009, 12:48
KATZ
VIH-и обычно в файле *.prj подключаются, как-то так:
Добавлено: 23 дек 2009, 12:49
m0p3e
Опс. А почему iDecl : Odeclension?
Нужно iDecl : Declension;
vih-и лучше подключать на уровне проекта. Т.е.
compile.prj:
#include Odecl.vih
#make MyForm.frm
Добавлено: 23 дек 2009, 13:24
Diman
У нас есть лицензия на компиляцию только отчетов, поэтому не знаю как в проекте подключить этот файл.Я только начал в галактике разбираться, поэтому многого еще не знаю, и не во всем компетентен.
Добавлено: 23 дек 2009, 14:24
m0p3e
Я уже и забыл как FCOM выглядит.
Вроде надо писать так:
.declare
#include Odecl.vih
.enddeclare