Страница 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
Алексей
спасибо :cool:
а то я всё пытался брауз туда подсунуть. а надо было table