Страница 1 из 3
Опять проблема с ExtAttr
Добавлено: 27 окт 2008, 11:26
edd
Доброе время суток.
Не пойму, в чем может быть проблема - компилится небольшой проект, инклюдится ExtAttr.Vih, взял его прямо из C_ExtClass.rar. Никаких сообщений, ошибок в процессе компиляции не возникает, прописываю путь до реса в репозитарии, перезапускаю галактику - в списке печатных форм моя форма не появилась. В списке загруженных ресурсных файлов этот рес присутствует.
Однажды я попадал на такую проблему, не появлялась печатная форма, решалась эта проблема просто - ресурсник переносился в другую папку, уровнем ниже той, в которой лежат остальные ресы. Сейчас же такой финт не проходит. Может быть дело в том, как я объявляю переменную?
Вот проект:
Код: Выделить всё
#setCurEnv "galnet";
#define ComponentVersion
#include ExtAttr.Vih
#make "EDD_3_SERTIFONTARA.rtf"
Вот кусок кода в ртфнике:
Код: Выделить всё
.LinkForm ’edd_3_SertifOnTara_SHTRIH2_testing’ prototype is tovn
.NameInList ’3. Сертификат на тару, тест’
.group ’Накладные на продажу’
.group ’Накладные на продажу (fast)’
.Group 'Рекламационные накладные'
.Group 'Акты на строительство'
#include summa.frn
#include ttn_fun.vpp
.Set Filler = ’-’
.var
Nom : Word;
kolEnter :string;
GetRow :boolean;
GetTransp:boolean;
NRec_MC :comp;
getExtrAttr : iExtAttr;
.endvar
#include ttnf_var.frn
#include mfo.frn
#include format.frn
.Create view...
....
.fields
....
getExtrAttr.sGetAttr(coKatMC, vSertificat.SpSopr.cmcUsl,’АВТОВАЗ_ИндексДетали’)
....
.endfields
....
Но пробовал вместо
getExtrAttr : iExtAttr;
прописать перед FIELDS
.begin
var getExtrAttr : iExtAttr new;
end.
компилятор выдает ошибку
Нет такой функции, поля или метода GETEXTRATTR.SGETATTR
Подскажите, где я допускаю ошибку?
Добавлено: 27 окт 2008, 12:45
Masygreen
Например!
В vip.cfg в этих каталогах соскладировать все инки
Код: Выделить всё
[Compilers]
IncludesPath = Inc\
IncludesPath = Inc\GalFrm
в prj
Код: Выделить всё
// Макроопределения
#include PreDefs.inc
#include GloDefs.inc
//Const
#include galnet.ccm //константы событий
#include galnet.csc //константы статус-строк
#include fldcolor.inc //константы цветов
#include gloconst.inc //Глобальные константы
#include mark.inc //константы пометки
end;
в фейсе своем
Код: Выделить всё
var piExAttr:iExtAttr;
piExAttr.ValueExists(coSpDocs,SpDocs.nRec,'Полное наименование работ')
Добавлено: 27 окт 2008, 13:07
edward_K
если вы сомневаетесь в перемоной так закоментарт ее.
но как правило дело в ошибках при компиляции, nameinlist,linkform(пересеклись с существующими), .group ( не попали в фильтр) или не подключился рес - другого не дано.
Добавлено: 27 окт 2008, 13:38
edd
2Masygreen
В vip.cfg в этих каталогах соскладировать все инки
Код:
[Compilers]
IncludesPath = Inc\
IncludesPath = Inc\GalFrm
А зачем писать дополнительно IncludesPath, если я в prj написал #include ExtAttr.Vih, а в vip.cfg прописал
?
2edward_K
если вы сомневаетесь в перемоной так закоментарт ее.
Так и делал - компиляция проходила на ура. Но мне нужны внешние атрибуты.
nameinlist,linkform с существующими не пересекаются, заранее исправлял на новые. Group такие же, как и у стандартных форм в этой группе. Рес подключился.
Может кто-нибудь приведет пример с использованием ExtAttr?
Добавлено: 27 окт 2008, 16:47
Masygreen
Пример который написал - работчий ... тоже бился с тем что не видел тип переменой .. заработало когда подключил все инки (основные галктические)
Добавлено: 27 окт 2008, 16:49
Masygreen
включение просто #include ExtAttr.vih не помогло

Добавлено: 27 окт 2008, 17:20
edward_K
по порядку
1.вы когда без сего компили форма появилась?
2.изначально у вас правильно написано - не надо это менять. то что вы в програмном блоке объявили видно только внутри этого програмного блока.
3. скомпилите одну эту форму. У вас где то будет temp.frm - посмотрите нет ли там проблем с наименованием групп и так далее?
обязательно служебные слова должны начинаться с 1 символа. Дальше мучайте эту форму до результата - потом уже исправите rtf. Возможно где то форматы не так распознались компилятором и форма поехала.
Добавлено: 27 окт 2008, 17:26
Polimer
Не понятно какая связь между extattr.vih и видимостью отчета.
Может быть у вас ресурс точно с таким же названием грузится с другого места?
Добавлено: 28 окт 2008, 08:52
edd
Polimer писал(а):Не понятно какая связь между extattr.vih и видимостью отчета.
Может быть у вас ресурс точно с таким же названием грузится с другого места?
К сожалению нет...я внимательно пересмотрел все скомпиленные и подключенные нами в репозитарии ресы, даже отключил их полностью и подцепил только мой-не помогло ничего. Как не было печатной формы, так её и нет. Только рес радостно светится в списке подключенных...
Добавлено: 28 окт 2008, 08:57
edd
edward_K
по порядку
1. угу
2. хорошо, верну заново.
3. Темп.фрм нашел, сча просмотрю. А что значит
обязательно служебные слова должны начинаться с 1 символа
? Какие служебные? И почему с 1?
Возможно где то форматы не так распознались компилятором и форма поехала.
Да...причем видимо далеко поехала...из галактики не видать.
Добавлено: 28 окт 2008, 16:09
edd
В общем итоги мучений:
1. без инклюд extattr-а rtf-файл компилится, рес подключается отчет виден.
2. с инклюдом extattr-а прям в rtf-файле, шибко ругается "ожидалось имя или описание типа iextattr" - не видит подключенный vih файл по-видимому, хотя другие (к примеру #include galnet.ccm, #include summa.frn) видит прекрасно.
3. с инклюдом в проекте после компиляции рес не формируется вообще никак, но ошибок не выдает.
4. если просто прописать в проекте #make "EDD_3_SERTIFONTARA.rtf" и компилить через проект, рес не формируется.
Всё это странно, если бы не одна особенность: если прописать в проекте "#include ExtAttr.vih" и тоже самое сделать в rtf-файле, то ресурс формируется, подключается, но не отображается. Так конечно косячно прописывать в двух местах, понимаю, но может кого подтолкнут на мысль мои перечисления...
Не понятно какая связь между extattr.vih и видимостью отчета.
И мне непонятно, но при подключении реса галку что то не устраивает (количество инклюдов одного и того же файла?) и она не выводит результат.
Версия extattr-a? Не инклюдить? А как тогда?
Если поможет, могу закинуть сюда полный код файла, проекта и vip.cfg.
Добавлено: 28 окт 2008, 16:37
Polimer
edd писал(а):В общем итоги мучений:
3. с инклюдом в проекте после компиляции рес не формируется вообще никак, но ошибок не выдает.
4. если просто прописать в проекте #make "EDD_3_SERTIFONTARA.rtf" и компилить через проект, рес не формируется.
А в VIP_RES.LOG ничего нет ?
Добавлено: 28 окт 2008, 17:10
Masygreen
Давай почту пришлю проект с инклудами на котором собирается....
Добавлено: 28 окт 2008, 19:56
edward_K
возможно вы повторяете ошибку многих на этом форуме
сделайте ошибку в extattr
после строки #ifdef ComponentVersion
если ошибка не появится, то "#define ComponentVersion" в проекте где то в начале.
vih подключаются только в проекте!
не понятно где вы там его подключили в rtf скорей всего после .linkform
для этого вообще то есть
.declare
#include ....
.end ( не помню уже что в конце)
а так видимо компилятор просто падал по runtime
про то что у вас ошибки при компиляции надо сразу писать, а не сбивать с толку.
да. А ресы у вас все подключены? Как намаетесь можно использовать
initservtxo(0) (без этого иногда не пашет).
sTXOGetExtAtt - мастером пройдитесь в настройке ТХО (общеиспользуемые функции)
Добавлено: 30 окт 2008, 09:10
edd
про то что у вас ошибки при компиляции надо сразу писать, а не сбивать с толку.
Я не понял, а почему такие необоснованные обвинения? Те ошибки, которые возникали в начальных компиляциях, я описывал выше. Других не возникало! После ковыряний появилась другая ошибка, которую я опять описал здесь. Давайте не будем торопиться с выводами!