Добавить поле конфигуратором

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

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

Sytin
Постоянный обитатель
Сообщения: 159
Зарегистрирован: 28 сен 2005, 19:48
Откуда: mos
Контактная информация:

Добавить поле конфигуратором

Сообщение Sytin »

Необходимо в реестре заявок добавить поле конфигуратором, чтобы была возможность сортировки по этому полю. В свойствах поля при конфигурации я такого не нашел. Возможно нужен какой-то индекс? Хотя поиск по этому полю работает... Или возможно как-нибудь это реализовать програмно... Очень надо. Буду очень признателен за помощь.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

ну конфигуратором вряд ли вы сортировку организуете.
alter interface - быть может.
ну а для затравки у меня такой примерчик завалялся.
работать правда статус строка

interface test9 (,,scSort) DoAccept;
create view as select * from X$Files
order ByName by xf$Name
order ByCode by xf$Code;

browse DepBrowse1;
fields
xf$name 'Имя файла ';
xf$code 'Код файла';
end;

handleevent
cmInit : ClearColumnsSorting(DepBrowse1);
cmColumnClicked : {
case GetColumnSorting(DepBrowse1,Target) of
0: {
SetColumnSorting(DepBrowse1,Target,-1);
if Target=#xf$Name then SetOrder(tiByName)
else SetOrder(tiByCode);
RescanPanel(DepBrowse1);
}
-1: {
SetColumnSorting(DepBrowse1,Target,0);
}
end;
}
end;
end.
Sytin
Постоянный обитатель
Сообщения: 159
Зарегистрирован: 28 сен 2005, 19:48
Откуда: mos
Контактная информация:

Сообщение Sytin »

Попробовал alter interface.

#component "M_MNPLAN"

alter Interface BOOKINGS;

create view
//as select INDENT.NOPER
order byColumn by INDENT.NOper (Desc);

handleevent
cmColumnClicked : {
if (Target=#INDENT.NOPER){
SetOrder(tiByColumn);
}
}
end;
end.

При нажатии на шапку колонки пишет что "Внешняя выгрузка на мемополях не работает"...((((
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

1.добавте еще message. чтобы точно быть уверенным.
2. просто одну колонку добавлять не хорошо - надо бы что бы order совпало с фильтрами - чтобы не уйти на внешнюю выгрузку.
3. В выборке есть таблица с мемополем. Потренеруйтесь, на чем нибудь попроще.
4. view там вообще то называется Bookings_v.
Sytin
Постоянный обитатель
Сообщения: 159
Зарегистрирован: 28 сен 2005, 19:48
Откуда: mos
Контактная информация:

Сообщение Sytin »

Еще вопрос. Можно ли троссировать свои интерфейсы, и как это делать? У меня при попытке троссировки пишет, что функции родительского интерфейса не загрузились. И еще вопрос : что такое символьная информация интерфейса???
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

свои можно - имея исходники в сапорте через компилятор фейсов. где то была подробная дока как настраивать(ну или vip /r), вроде можно и в галке потом, тока нужно ключики при компиляции( год назад баловался с этим - уже не помню - мне logstrtofile ближе). А вот стандартные врядли. Что такое "симв" фиг его знает - вы где сие увидели?
Sytin
Постоянный обитатель
Сообщения: 159
Зарегистрирован: 28 сен 2005, 19:48
Откуда: mos
Контактная информация:

Сообщение Sytin »

Я про троссировку наверно неправильно выразился... Я имел ввиду докомпиляцию для своих интерфейсов. Я свой интерфейс регестрирую в репозитарии, а потом пытаюсь сделать для него докомпиляцию при помощи alter interface. Пишет, что функции родительского интерфейса не загрузились. А про символьную информацию это из доки по докомпиляции. Там написано, что докомпилировать интерфейс можно только при наличии у интерфейса символьной информации...
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

ну там рядом написано - Compilers.InhSaveLevel=3
Sytin
Постоянный обитатель
Сообщения: 159
Зарегистрирован: 28 сен 2005, 19:48
Откуда: mos
Контактная информация:

Сообщение Sytin »

Спасибо огромное за помощь! Что хотел все получилось))
Sytin
Постоянный обитатель
Сообщения: 159
Зарегистрирован: 28 сен 2005, 19:48
Откуда: mos
Контактная информация:

Сообщение Sytin »

Возник еще один вопросик.
Я докомпилирую интерфейс и создаю в нем при помощи функций конфигуратора кнопку. Хочу этой кнопке назначить свое событие. Его надо сначала как-то зарегистрировать??
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

кусок текста в студию.
вообще можете использовать cmValue1 - cmValuе61 - если уверены что в фейсе не используется.
Sytin
Постоянный обитатель
Сообщения: 159
Зарегистрирован: 28 сен 2005, 19:48
Откуда: mos
Контактная информация:

Сообщение Sytin »

Да вроде с этим разобрался. Тупо добавил папочку INC в свой проект и дописал там в константах свою cmButSP. У меня теперь другая проблема. Я добавил кнопку не в скрин интерфейса, а в скрин его окна. Теперь хочу обработать событие нажатия кнопки, как сейчас не работает((

Вот код:


#component "L_DOGOVOR"

alter Interface Dogovor;

var aList: array [1..1] of string;
var i, n, rc, self: longInt;
var fullName, cont, objType: string;
var ButSP : longint;


handleevent
cmInit:{
inherited :: handleEvent (cmInit);
}

cmButSP:{
inherited :: handleEvent (cmButSP);
message('opa');
CloseInterface(cmDefault);
stop;
}

cmValue2:{
message('opaopa');
inherited :: handleEvent (cmButSP);
}

cmDefault:{
if (KATVIDD.NAME='Подряд'){
cfsSetProp('WIDOGOVOREDITMAIN','RectB_X',188);
cfsSetProp('scDogovorEditMainHead','RectB_X',188);
cfsSetProp('SCDOGOVOREDITMAIN','RectB_X',188);

cfsCreateObject ('button','scDogovorEditMainHead','butSP',FALSE,ButSP);
cfsSetProp('butSP','Origin_X',830);
cfsSetProp('butSP','Origin_Y',40);
cfsSetProp('butSP','Size_X',200);
cfsSetProp('butSP','Size_Y',40);
cfsSetProp('butSP','Title','Доровора субподряда');

cfsSetProp('butSP','StatusCtx',sci13Esc);
cfsSetProp('butSP','Command',cmButSP);

}else{
cfsSetProp('WIDOGOVOREDITMAIN','RectB_X',88);
cfsSetProp('scDogovorEditMainHead','RectB_X',88);
cfsSetProp('SCDOGOVOREDITMAIN','RectB_X',88);
}
inherited :: handleEvent (cmDefault);
}

end;

end.

Там в этом окне кнопка "Контрагент1" вызывает событие cmValue2. Таким образом перегрузить тоже не получилось...
Sytin
Постоянный обитатель
Сообщения: 159
Зарегистрирован: 28 сен 2005, 19:48
Откуда: mos
Контактная информация:

Сообщение Sytin »

Поясню свою проблему подробней.
Докомпилирую интерфейс Dogovor.
В нем есть окно 'WIDOGOVOREDITMAIN'.
В этом окне обрабатывается событие cmValue2.
Я хочу перегрузить обработку этого события.
В обработчике HandleEvent главного окна перегрузка не работает...

Возможно надо как-то указать принадлежность обработчика к этому окну?? Че-нить вроде WIDOGOVOREDITMAIN::cmValue2{} или cmValue2(WIDOGOVOREDITMAIN){}. Просто в хелпе не могу найти ничего подобного...
Ged
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение Ged »

Код: Выделить всё

#component "L_DOGOVOR"

Alter Interface Dogovor;

Window wiDogovorEditMain EscClose;
 HandlEevent // wiDogovorEditMain
  cmValue2:
     {
      Message('Overloading!!!')
       if(Inherited::HandleEvent(cmValue2) = heOk)
      {
        Message('После отработки основного события!');
      }
     }
  end;// HandlEevent
end;//wiDogovorEditMain

/*
HandlEevent // Interface
End;//HandlEevent Interface
*/
end.
Sytin
Постоянный обитатель
Сообщения: 159
Зарегистрирован: 28 сен 2005, 19:48
Откуда: mos
Контактная информация:

Сообщение Sytin »

Спасибо огромное!!! Все получилось)))
Ответить