Страница 1 из 1
как правильно писать alter interface?
Добавлено: 30 апр 2008, 06:37
Alpiton
#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 не найден" и расчёта отпуска не проиходит. Что с этим можно сделать?
Добавлено: 30 апр 2008, 10:22
edward_K
1. проверте патчи и правильность подключения ресов при компиляции
(vip запустите с ключиком /R и посмотрите там отчет о рабочей станции - должен совпасть с таким же из галки).
2. возможно событие поменялось и надо использовать уже другое.
3. вам никто не запрещает создать сей диалог.
Ну а так на этом форуме вам наверное тока Screw точно скажет.
Могете попробовать в ТП спросить - вдруг подскажут, но не все смогут
.
Добавлено: 03 ноя 2009, 04:38
Alpiton
Задача : в скрине 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) её не знает.
Что можно сделать?
Добавлено: 03 ноя 2009, 14:41
Ged
Код: Выделить всё
#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;
Добавлено: 05 ноя 2009, 11:42
Alpiton
Ged
Не нашёл принципиальных различий между твоим и моим кодом, но твой работает, а мой - нет. Спасибо!
Добавлено: 05 ноя 2009, 18:44
Screw
Что до диалога SELECTOT, то с октября 2006-го он принадлежит компоненту Z_SREDN. Возможно, у ваших заголовочных файлах осталась устаревшая информация (z_zar.vil).
Добавлено: 19 ноя 2009, 08:07
Alpiton
Сейчас проверил - отпуск заработал. Атлантис обновлялся весной 2009-го
Добавлено: 19 ноя 2009, 08:22
Alpiton
Проблема : нет заголовка у новой закладки
В интерфейсе 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
Новую закладку могу вызвать программно ( SetFormat(BB); ), а мышкой не могу - нет заголовка.
cfsSetProp('BB' , 'Title', 'новое название'); - работает
SetTabbedSheetTitle(BB , 'новое название'); -
не работает
SetFormatEnabled(bb , true) ); - работает
SetTabbedSheetVisible(BB , true)); -
не работает
Добавлено: 19 ноя 2009, 11:46
Ged
Вы добавили browse BB в панель с вкладками tabParameters1
Добавлено: 19 ноя 2009, 12:48
Alpiton
В галактическом варианте есть tabParameters и tabParameters1. Я пробовал дать имя для TabbedSheet и так, и эдак, и новое - результат один.
Добавлено: 19 ноя 2009, 16:19
Vik
А панель зачем? может так:
Код: Выделить всё
TabbedSheet bottom tabParameters1
browse BB 'Спецификация ДО' ('Спецификация ДО',,sci1Esc);
table SpStep
fields
...............
end; // bb
end; // tabbedsheet
Добавлено: 16 мар 2010, 13:34
Алексей
а как перехватить табличное событие браузера ?
есть tabbedsheet, в нем панели, на панельке браузер.
необходимо описывать браузер полностью чтобы добраться до его событий? или что-то типа Inheretie
inherited :: browse brname ?
Добавлено: 16 мар 2010, 20:01
Den
ну что то типа :
....
Panel panel1
Table table1;
HandleEvent
cmEdit:
{
// тут реализаете что Вас интересует
}
end;
end;
....
Добавлено: 17 мар 2010, 08:14
Алексей
спасибо
а то я всё пытался брауз туда подсунуть. а надо было table