как правильно писать alter interface?
Модераторы: m0p3e, edward_K, Модераторы
как правильно писать alter interface?
#ifdef ComponentVersion
#component "Z_Sredn"
#end
alter interface otpusk1;
HandleEvent
cmShiftf5: //кнопка "рассчитать"
{
message('line = #__LINE__');
inherited::HandleEvent(cmShiftf5) ;
message('line = #__LINE__');
}
end;
end.
Под 8.00 этот код работает без замечаний. Под 8.10 после первой мессаги выскакивает окошко "Диалог Z_ZAR::SELECTOT не найден" и расчёта отпуска не проиходит. Что с этим можно сделать?
#component "Z_Sredn"
#end
alter interface otpusk1;
HandleEvent
cmShiftf5: //кнопка "рассчитать"
{
message('line = #__LINE__');
inherited::HandleEvent(cmShiftf5) ;
message('line = #__LINE__');
}
end;
end.
Под 8.00 этот код работает без замечаний. Под 8.10 после первой мессаги выскакивает окошко "Диалог Z_ZAR::SELECTOT не найден" и расчёта отпуска не проиходит. Что с этим можно сделать?
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
1. проверте патчи и правильность подключения ресов при компиляции
(vip запустите с ключиком /R и посмотрите там отчет о рабочей станции - должен совпасть с таким же из галки).
2. возможно событие поменялось и надо использовать уже другое.
3. вам никто не запрещает создать сей диалог.
Ну а так на этом форуме вам наверное тока Screw точно скажет.
Могете попробовать в ТП спросить - вдруг подскажут, но не все смогут .
(vip запустите с ключиком /R и посмотрите там отчет о рабочей станции - должен совпасть с таким же из галки).
2. возможно событие поменялось и надо использовать уже другое.
3. вам никто не запрещает создать сей диалог.
Ну а так на этом форуме вам наверное тока Screw точно скажет.
Могете попробовать в ТП спросить - вдруг подскажут, но не все смогут .
Задача : в скрине SCWCLOSACC в чекбоксе GoNewPer.VidData надо добавить один пункт.
Написать свой скрин, спрятав (hideFormats) галактический, не могу, т.к. в коде есть SetFormat(scWClosAcc) и галактический всё равно будет наверху. Если я своему скрину дам то же имя SCWCLOSACC, компилятор добавит к имени суффикс и галактический скрин останется без изменения.
Я попробовал конфигуратор:
lll := cfsGetObjInfo ('cb_SCWCLOSACC_GONEWPER.VIDDATA', aName, aSelf, aContainer, aType);
тут все выходные переменные заполняются нормально, lll = 0 (cfOk)
aContainer:= aSelf;
lll := cfsCreateObject ('ClusteItem', aContainer, 'ci_SCWCLOSACC_GONEWPER.VIDDATA_новый_пукт', False, aSelf);
тут lll = -21 (cfErrBadFind атом не найден)
Не знаю, что такое атом, в хелпе нашёл функцию cfsRegisterAtomString, но компилятор (5.4.14) её не знает.
Что можно сделать?
Написать свой скрин, спрятав (hideFormats) галактический, не могу, т.к. в коде есть SetFormat(scWClosAcc) и галактический всё равно будет наверху. Если я своему скрину дам то же имя SCWCLOSACC, компилятор добавит к имени суффикс и галактический скрин останется без изменения.
Я попробовал конфигуратор:
lll := cfsGetObjInfo ('cb_SCWCLOSACC_GONEWPER.VIDDATA', aName, aSelf, aContainer, aType);
тут все выходные переменные заполняются нормально, lll = 0 (cfOk)
aContainer:= aSelf;
lll := cfsCreateObject ('ClusteItem', aContainer, 'ci_SCWCLOSACC_GONEWPER.VIDDATA_новый_пукт', False, aSelf);
тут lll = -21 (cfErrBadFind атом не найден)
Не знаю, что такое атом, в хелпе нашёл функцию cfsRegisterAtomString, но компилятор (5.4.14) её не знает.
Что можно сделать?
Код: Выделить всё
#component "F_CloSch"
Alter Interface GoNewPer;
#declare CaseMessErr(iErr)
#iErr : Message('Error create Object #iErr')
#end
#declare CreateCluster(ScrName)
lErr:=cfsCreateObject('ClusterItem',#ScrName,#ScrName+'_Dop',false, aSelf);
cfsSetProp(#ScrName+'_Dop', cfpVisible,true);
cfsSetProp(#ScrName+'_Dop', cfpSkip,false);
cfsSetProp(#ScrName+'_Dop', cfpTitle,'Новый кластер в чек боксе');
cfsSetProp(#ScrName+'_Dop', cfpIndex,6);
cfsSetProp(#ScrName+'_Dop', cfpDataIndex,6);
case lErr of
#CaseMessErr(cfErrObjectTypeNotExist);
#CaseMessErr(cfErrContainerObjectNotExist);
#CaseMessErr(cfErrCantCreateObject);
#CaseMessErr(cfErrCreateObjectError);
#CaseMessErr(cfErrObjectAlreadyExist);
#CaseMessErr(cfErrBadFieldType);
end; //case
#end
//------------------------------------------------------------------------------
//
//------------------------------------------------------------------------------
Function AddCluster:boolean;
Var aSelf, lErr : LongInt;
{
AddCluster := false;
if(cfsSetCurrentContainer('F_CloSch::goNewPer') <> cfOk)
{
Message(''#3'Ошибка установки корневого контейнера', Error);
Exit;
}
#CreateCluster('cb_SCCLOSACC_GONEWPER.VIDDATA') //Protect
#CreateCluster('cb_SCWCLOSACC_GONEWPER.VIDDATA')//Edit
}
handleevent
cmInit:
{
if(inherited :: HandleEvent (cmInit)=heOk)
{
AddCluster;
}
}
end; //handleevent
End. // Interface;
Проблема : нет заголовка у новой закладки
В интерфейсе OFPjournal в TabbedSheet tabParameters делаю новую закладку с именем BB.
Новую закладку могу вызвать программно ( SetFormat(BB); ), а мышкой не могу - нет заголовка.
cfsSetProp('BB' , 'Title', 'новое название'); - работает
SetTabbedSheetTitle(BB , 'новое название'); - не работает
SetFormatEnabled(bb , true) ); - работает
SetTabbedSheetVisible(BB , true)); - не работает
В интерфейсе OFPjournal в TabbedSheet tabParameters делаю новую закладку с именем BB.
Код: Выделить всё
TabbedSheet bottom tabParameters1
Show at (26,21,,);
panel mp
table SpStep;
browse BB 'Спецификация ДО' ('Спецификация ДО',,sci1Esc);
Show at (26,21,,);
fields
...............
end; // bb
end; // mp
end; // tabbedsheet
cfsSetProp('BB' , 'Title', 'новое название'); - работает
SetTabbedSheetTitle(BB , 'новое название'); - не работает
SetFormatEnabled(bb , true) ); - работает
SetTabbedSheetVisible(BB , true)); - не работает
-
- Местный житель
- Сообщения: 370
- Зарегистрирован: 28 сен 2006, 15:43
- Откуда: Санкт-Петербург
- Контактная информация:
А панель зачем? может так:
Код: Выделить всё
TabbedSheet bottom tabParameters1
browse BB 'Спецификация ДО' ('Спецификация ДО',,sci1Esc);
table SpStep
fields
...............
end; // bb
end; // tabbedsheet