Страница 1 из 2

Проблема с компилированием формы.

Добавлено: 14 дек 2009, 14:24
Гапоненко
Доброго времени суток.
Подскажите, пожалуйста, Пытаюсь компилировать РЕЕСТР ДО в .xls (.slk) прототип bdocrst.frm
Не отрабатывает данная фрнка vbdproc.frn.
Подскажите, может для этого требуется еще какая нить .frn или .vih, или еще что-нибудь.
Заранее благодарю.

Добавлено: 14 дек 2009, 15:20
edward_K
Не в той теме конечно.
а что точно написано в vip_res.log? или компилите сапортом? там тоже чего то будет написаною

Добавлено: 14 дек 2009, 15:43
Гапоненко
Компилирую строчником.
Не могу найти vip_res.log
А так пишет что:
Нет такой функции, поля или метода oValFunc.InitVal;

Добавлено: 14 дек 2009, 16:22
edward_K
ну это ключиков не хватает в vip.cfg
а версия у вас 712?
попробуйте в проект добавить
#include valfunc.vih
если есть такой файл, иначе делайте свою frn без этой переменной.

Добавлено: 14 дек 2009, 17:21
Гапоненко
Гал. 8.10
Этот файл подключил, но
не нашел valfuncvih.vpp

Добавлено: 16 дек 2009, 19:16
Гапоненко
Да, деиствительно
Подключил
valfunc.var
valfunc.vih
отработал.
СПАСИБО
edward_K Респект и уважуха. 8)

Re: Проблема с компилированием формы.

Добавлено: 08 сен 2011, 16:50
Rishat
Аналогичная проблема. Компилируем строчником.
В файле проекта указали

#include ValFunc.var
#include ValFunc.vih
#make "reestr.slk"
в ту же папку закинули оба файлика ValFunc.var, ValFunc.vih

При компиляции вываливает

Interface compiler. Версия 5.4.36 (c) 1992-2011, корпорация "Галактика"

VALFUNC.VAR(14)
Ошибка: Ожидалось имя или описание типа (стр.14, поз.25 в VALFUNC.VAR)
var oValFunc: ValFuncsV3;
^ [ Enter-продолжить ] :

Я так понимаю не находит oValFunc который описан в ValFuncVih.vpp, который подключается в ValFuncV1.vih, ValFuncV2.vih, ValFuncV3.vih, которые в
свою очередь подключаются в ValFunc.vih. Файла ValFuncVih.vpp в папке FRM не нашёл. Как решить проблему? м.б. у кого есть в наличии данный файлик?

Re: Проблема с компилированием формы.

Добавлено: 09 сен 2011, 08:45
Semi-bit
Насколько я могу судить по расширению, ValFunc.var надо не в начале проекта подключать, а в разделе описания переменных, например, внутри вьюхи или интерфейса.

Re: Проблема с компилированием формы.

Добавлено: 09 сен 2011, 10:46
edward_K
ну или по кранйе мере строки местами поменять, а то сначала переменная с типом, а потом сам тип.
Обычно глобальное объявление используют только для того что нужно всем и всегда.

Re: Проблема с компилированием формы.

Добавлено: 10 сен 2011, 03:33
Rishat
edward_K писал(а):ну или по кранйе мере строки местами поменять, а то сначала переменная с типом, а потом сам тип.
Обычно глобальное объявление используют только для того что нужно всем и всегда.
Пробовали и так и так, только проблему это не решило, вылезает след.сообщение

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

Interface compiler. Версия 5.4.36 (c) 1992-2011, корпорация "Галактика"

VALFUNCV2.VIH(23)
 Ошибка: Ошибка при открытии include файла VALFUNCVIH.VPP (стр.23, поз.24 в VALF
UNCV2.VIH)
#include ValFuncVih.vpp
                       ^ [ Enter-продолжить ] :

Re: Проблема с компилированием формы.

Добавлено: 10 сен 2011, 11:38
edward_K
Ну это уже проще. Но еще раз подумайте прежде чем что то объявлять глобально - можете добится неустойчивой работы в других местах.
В прочем если бы вы подключали в проект galnet.inc то эта бы переменная объявилась в автомате - смотрите GloVars.inc и GloTypes.inc

ValFuncVih.vpp

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

//******************************************************************************
//                                                      (c) корпорация Галактика
// Галактика 7.12 - Общие функции
// Декларирование методов объекта работы с валютами
//******************************************************************************

#doc
возвращает количество из классификатора валют (или единицу, если не указано)
#end
Function GetValSumValut(cVal: comp): double;

//******************************************************************************

#doc
возвращает курс валюты (ноль для национальной) на указанную дату
#end
Function Rate(
              cValRate  : comp;
              dat       : date
             ): double;

//******************************************************************************

#doc
переводит сумму из одной валюты в другую по курсу на дату
#end
Function CurrencyExchange(
                          cValFrom  : comp;
                          Sum       : double;
                          cValTo    : comp;
                          dat       : date
                         ): double;

//******************************************************************************

#doc
Обновление временных таблиц
#end
Procedure Refresh;

//******************************************************************************

#doc
вывод отчета о не найденных курсах валют
#end
Procedure WasErrorValut;


//******************************************************************************

#doc
вазовая валюта
#end
Function ValBase: comp;

//******************************************************************************

#doc
наименование базовой валюты
#end
Function ValBaseName: string[30];

//******************************************************************************

#doc
символ базовой валюты
#end
Function ValBaseSimv: string[6];

//******************************************************************************

#doc
валюта отчетов
#end
Function ValTar: comp;

//******************************************************************************

#doc
наименование валюты отчетов
#end
Function ValTarName: string[30];

//******************************************************************************

#doc
символ валюты отчетов
#end
Function ValTarSimv: string[6];

//******************************************************************************

#doc
наименование национальной валюты
#end
Function ValNatName: string[30];

//******************************************************************************

#doc
символ национальной валюты
#end
Function ValNatSimv: string[6];

//******************************************************************************
// использовать вместо GetSimvAndName

#doc
возвращает символ и наименование валюты в !!!ТВОРИТЕЛЬНОМ ПАДЕЖЕ!!!
национальную тоже понимает, возвращает соответствующие настройки
#end
Function GetValSimvName(
                        cVal     : comp;
                        var Simv : string;
                        var Name : string
                       ): boolean;

//******************************************************************************

#doc
возвращает символ валюты
#end
Function GetValSimv(_cVal: comp): string;

//******************************************************************************

#doc
возвращает наименование валюты
#end
Function GetValName(_cVal: comp): string;

//******************************************************************************

#doc
инициализация переменных объектного интерфейса для работоспособности некоторых функций
#end
Procedure InitVars;

//******************************************************************************

#doc
инициализация объектного интерфейса
#end
Procedure InitVal;

//******************************************************************************
// вызывать перед ShowFile для вывода сообщения в случае, если при пересчете курсов были ошибки

#doc
вызывать перед ShowFile для вывода сообщения в случае, если при пересчете курсов были ошибки
#end
Procedure DoneVal;

//******************************************************************************

#doc
поиск курса валюты cVal на дату DAT
#end

#ifdef _ValFuncV3_
Function GetCurse(
                  _cVal : comp;
                  dat   : date;
              var kurs  : double
                 ): boolean;
#else
Function GetCurse(
              var _cVal : comp;
              var dat   : date;
              var kurs  : double
                 ): boolean;
#end

//******************************************************************************

#doc
#end
#ifdef _ValFuncV3_
Function GetCurrencyPrimitive(
                              ValSrc  : comp;
                              SumSrc  : double;
                              ValTo   : comp;
                              dCourse : date
                             ): double;
#else
Function GetCurrencyPrimitive(
                          var ValSrc  : comp;
                          var SumSrc  : double;
                          var ValTo   : comp;
                          var dCourse : date
                             ): double;
#end
//******************************************************************************

#doc
возврат суммы в валюте отчетов
#end
#ifdef _ValFuncV3_
Function GetCurrency(
                     ValSrc  : comp;
                     SumSrc  : double;
                     dCourse : date
                    ): double;
#else
Function GetCurrency(
                 var ValSrc  : comp;
                 var SumSrc  : double;
                 var dCourse : date
                    ): double;
#end
//******************************************************************************

#doc
возврат суммы в базовой валюте
#end
#ifdef _ValFuncV3_
Function GetBaseCurrency(
                         ValSrc  : comp;
                         SumSrc  : double;
                         dCourse : date
                        ): double;
#else
Function GetBaseCurrency(
                     var ValSrc  : comp;
                     var SumSrc  : double;
                     var dCourse : date
                        ): double;
#end
//******************************************************************************

#doc
возврат суммы в национальной валюте
#end
#ifdef _ValFuncV3_
Function GetNatCurrency(
                        ValSrc  : comp;
                        SumSrc  : double;
                        dCourse : date
                       ): double;
#else
Function GetNatCurrency(
                    var ValSrc  : comp;
                    var SumSrc  : double;
                    var dCourse : date
                       ): double;
#end
//******************************************************************************

#doc
возврат суммы в любой заданной валюте
#end
#ifdef _ValFuncV3_
Function GetAnyCurrency(
                        ValSrc  : comp;
                        SumSrc  : double;
                        dCourse : date;
                        targval : comp
                       ): double;
#else
Function GetAnyCurrency(
                    var ValSrc  : comp;
                    var SumSrc  : double;
                    var dCourse : date;
                    var targval : comp
                       ): double;
#end
//******************************************************************************

#doc
возврат суммы в национальной валюте
#end
#ifdef _ValFuncV3_
Procedure GetNatTarCurrency(
                            ValSrc1 : comp;
                            SumSrc1 : double;
                            ValSrc2 : comp;
                            SumSrc2 : double;
                            dCourse : date;
                        var ResNat  : double;
                        var ResTar  : double
                           );
#else
Procedure GetNatTarCurrency(
                        var ValSrc1 : comp;
                        var SumSrc1 : double;
                        var ValSrc2 : comp;
                        var SumSrc2 : double;
                        var dCourse : date;
                        var ResNat  : double;
                        var ResTar  : double
                           );
#end

//******************************************************************************

#doc
возврат суммы в валюте отчетов исходя из 2 сумм: в национальной и указанной валютах
#end
Function GetTarCurrency(
                        ValSrc  : comp;        // валюта операции
                        SumSrcV : double;      // сумма в валюте
                        SumSrcR : double;      // сумма в НДЕ
                        dCourse : date         // дата операции
                       ): double;

//******************************************************************************

#doc
анализ настройки пользователя для пересчета валют
#end
Function ReCalcCursVal: boolean;

//******************************************************************************

#doc
выбор валюты Pick и пересчет сумм
#end
#ifdef _ValFuncV3_
Function ChoiceVal(
               var ValSrc  : comp;
                   dCourse : date;
               var SumSrc  : double;
               var SumSrcV : double
                  ): boolean;
#else
Function ChoiceVal(
               var ValSrc  : comp;
               var dCourse : date;
               var SumSrc  : double;
               var SumSrcV : double
                  ): boolean;
#end
//******************************************************************************

#doc
обработка сумм в НДЕ, валюте и даты операции
пересчет сумм в валюте (НДЕ) при корректировке соответствующего поля
#end
#ifdef _ValFuncV3_
Procedure ReCalcSumRubVal(
                          isSumRub : boolean;  //true-коррект. сумма в НДЕ = CurField
                          dCourse  : date;
                          ValSrc   : comp;
                      var SumSrc   : double;
                      var SumSrcV  : double
                         );
#else
Procedure ReCalcSumRubVal(
                          isSumRub : boolean;  //true-коррект. сумма в НДЕ = CurField
                          dCourse  : date;
                      var ValSrc   : comp;
                      var SumSrc   : double;
                      var SumSrcV  : double
                         );
#end
//******************************************************************************

#doc
пересчет суммы в валюте в РУБЛИ с учетом процента к курсу
if OkPlus = TRUE  -> сколько должен заплатить учетом процента
          = FALSE -> сколько заплачено фактически с учетом процента
#end
Function CalcRubValMoney(
                         OkPlus  : boolean;
                         ValSrc  : comp;
                         dCourse : date;
                         sCourse : double;
                         SumProc : double;
                         SumSrcV : double
                        ): double;

//******************************************************************************


#doc
пересчет суммы в рублях в ВАЛЮТУ с учетом процента к курсу
#end
Function CalcValRubMoney(
                         ValSrc  : comp;
                         dCourse : date;
                         sCourse : double;
                         SumProc : double;
                         SumSrcR : double
                        ): double;

//******************************************************************************

#doc
пересчет суммы ВАЛЮТЕ в РУБЛИ с учетом процента к курсу
#end
Function CalcSumValRubDO(
                         ValSrc  : comp;
                         dCourse : date;
                         sCourse : double;
                         SumProc : double;
                         SumSrcV : double
                        ): double;

//******************************************************************************
#ifdef _ValFuncV2_

#doc
пересчет суммы в валюте в рубли и наоборот
#end
Function CheckSumVal(
                     ValSrc      : comp;
                     dCourse     : date;
                 var SumSrc  : double;
                 var SumSrcV : double
                    ): boolean;

#end
//******************************************************************************
#ifdef _ValFuncV3_

#doc
получение символа валюты
#end
Function GetValSymbol(ValSrc: comp): string;

#end
//******************************************************************************

Re: Проблема с компилированием формы.

Добавлено: 17 сен 2011, 14:07
Rishat
После подключения vpp файла отчет компилируется без ошибок. Но при при попытке сформировать отчет выходит сообщение след.содержания

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

---------------------------
Предупреждение
---------------------------
Возникло необработанное исключение
ExObjIfcNoImpl (ExRef)
приведение L_VAL::ValFuncsV3 к нереализованому ObjInterface "tValFuncsV3_0"

"Да" - Продолжить, "Нет" - Отлаживать в окне отладчика
"Отмена" - Не выдавать больше это сообщение
---------------------------
Да   Нет   Отмена   
---------------------------

Re: Проблема с компилированием формы.

Добавлено: 18 сен 2011, 01:41
edward_K
Странно.
проверте valfunc.vih и все инклюды к нему. Пустышки создавать нельзя.

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

//******************************************************************************
#ifNdef __ValFunc_vih__
#define __ValFunc_vih__

//******************************************************************************

#ifdef ComponentVersion
#component "L_VAL"
#end

#doc
Объектный интерфейс для работы с классификатором валют и курсами. Версия 3.
#end
ObjInterface tValFuncsV3;

#doc
выбор валюты и пересчет сумм с возвратом выбранной даты курса валюты
#end
Function ChoiceValD(
                    var ValSrc  : comp;
                    var dCourse : date;
                    var SumSrc  : double;
                    var SumSrcV : double
                   ): boolean;
End;

//******************************************************************************
// свежая версия:

#include ValFuncV2.vih
#include ValFuncV3.vih

//******************************************************************************

#end 
ValFuncV3.Vih

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

#ifndef __ValFuncV3_vih__
#define __ValFuncV3_vih__

//******************************************************************************

#ifdef ComponentVersion
#component "L_VAL"
#end

#doc
Объектный интерфейс описывает методы для работы с классификатором валют и курсами. Версия 3.
#end
ObjInterface tValFuncsV3_0;

#define _ValFuncV2_
#define _ValFuncV3_

#include ValFuncVih.vpp

#undef _ValFuncV3_
#undef _ValFuncV2_

End;

//******************************************************************************

VipInterface ValFuncsV3 implements tValFuncsV3_0, tValFuncsV3 licensed(FREE);

//******************************************************************************

#end

Re: Проблема с компилированием формы.

Добавлено: 18 сен 2011, 15:53
Rishat
Так откуда пустышкам взяться.Все эти инклуды (ValFuncV2.vih,ValFuncV3.vih)лежат в папке с проектом. ValFuncV3.vih абсолютно идентичен тому, что выложили. Было бы странно если бы они отличались, т.к. из одного и того же каталога FRM берутся.
Но факт остается фактом - отчет не формируется. :???:
Файлы проекта

Re: Проблема с компилированием формы.

Добавлено: 19 сен 2011, 08:05
KATZ
Попробуйте в PRJ-файле первой строкой добавить

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

#define ComponentVersion
Должно помочь.