Ошибка при компиляции проекта

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

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

Ответить
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Ошибка при компиляции проекта

Сообщение s2176 »

Добрый день всем!
В ARD-отчете вызываю маленький интерфейс для ввода месяца и года.
Отчет и интерфейс лежат в разных файлах.
Если компилирую по очереди, сначала интерфейс, потом отчет, все проходит нормально, и все работает. Но пытаюсь объединить в проект (делаю это в первый раз :o ) - компилятор ругается на параметры. Пишет, что "элемент диалога отсутствует или имеет неправильный размер".

Текст файла проекта:

#make "god_mes.vip"
#make "ESN_mvz_proba.SLK"

bat'ник:

p:\gal712\exe\vip.exe %1 /R:proba.res /c:fcom.cfg /m /a

fcom.cfg:

/i+
/U:22
/P:2
/L+
[database]
databasename=o:\data712\data_s7\
[common]
trimfilename=true
[LicParam]
LicFileName=d:\sup712\sup_exe\LICENSE.LIC
[HardwareKey]
SharedPath=\\galaxy\gal582\key

Помогите разобраться, пожалуйста!
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Сообщение Maverick »

исходник god_mes.vip в студию плз...
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Сообщение s2176 »

Он прост, как песня!

getmesYear dialog
fields
god: string;
mes: string;
buttons
cmOK, default;

<<'Выберите месяц и год'

Год: .@@@@@
Месяц:.@@@

<. OK .>
>>

а вызов его из формы выглядит так:
rundialog(getmesYear,god,mes);
переременные в форме описаны так:
god, mes: string;
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Сообщение Maverick »

:grin:
а) диалоги (а это не интерфейсы) не компилируются в файлах VIP (компилер запускает интертрепатор разбора языка для вип).
б) для диалога в файле проекта нужно указывать #include вместо #make
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Сообщение s2176 »

я и думала, что ошибка совсем простая, но чтоб такая простая :D !
Спасибо большое!
Кто сказал, что бесполезно биться головой об стену?!
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Сообщение s2176 »

Увы, сегодня ошибка повторилась...
Хотя я исправила
#make "god_mes.vip" на
#include god_mes.vip
Я заметила, что она возникает только при первой компиляции.
Если я компилирую сразу же еще раз, то ошибка не возникает.
Может, на нее просто не обращать внимания?

И попутно еще один вопрос:
Я хочу в проекте описать свои таблицы (для этого он мне собственно и нужен). Я могу в ARD отчете заполнять эти таблицы, и потом в нем же использовать занесенную информацию? Синтаксис такой же, как в интерфейсах:
insert current <моя_таблица>
if getfirst <моя_таблица> = tsOk ?
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

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

Я думаю инклюд надо вперёд ставить, т.к. диаолог потом используется в випе. (расширение *.dlg делайте, что бы понятно было)

Т.е. в проекте сначала инклюд диаолога, потом мэйк интерфейса.

про таблицы - да.
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Сообщение s2176 »

Ничего не помогает :sad:
Переименовала я файл, теперь расширение - *.dlg.
В файле проекта у меня идет сначала описание структуры таблиц,

Table Struct <моя_таблица>
( имя1 : тип,
....
имяN : тип
)
With INDEX
( ind1 = ...
);

потом:

#include god_mes.dlg
#make "ESN_mvz_proba.SLK"

а ошибка все та же, ругается на параметры
"Для 1-го формального параметра элемент диалога отсутствует или имеет неправльный размер(стр. .., поз... в ESN_mvz_proba.SLK)"
Кто сказал, что бесполезно биться головой об стену?!
Chak
Посетитель
Сообщения: 41
Зарегистрирован: 30 ноя 2005, 10:54
Откуда: Пермь
Контактная информация:

Сообщение Chak »

Переменные god и mes в отчете (не в диалоге) имеют тип String? Длина строки у них случайно не задана? Я на такую ошибку нарывался, когда в диалоге задал тип переменной String[34] , а в отчете - просто String. Типы параметров в диалоге и переменных, передаваемых при вызове диалога, должны в точности совпадать.
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Сообщение s2176 »

На такие грабли я тоже уже наступала, так что здесь все описано абсолютно одинаково: string, без указания длины.
Кто сказал, что бесполезно биться головой об стену?!
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

Я бы год и месяц объявил как word и не парился.
со string в диалоге действительно могут идти предупреждения(!).
попробуйте все таки задать в форме и в диалоге string[100]
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Сообщение s2176 »

хм, указание размера помогло! :cool:
Компилируется теперь с первого раза!
Благодарю, edward_K!
Кто сказал, что бесполезно биться головой об стену?!
Ответить