Добавить поле конфигуратором
Модераторы: m0p3e, edward_K, Модераторы
-
- Постоянный обитатель
- Сообщения: 159
- Зарегистрирован: 28 сен 2005, 19:48
- Откуда: mos
- Контактная информация:
Добавить поле конфигуратором
Необходимо в реестре заявок добавить поле конфигуратором, чтобы была возможность сортировки по этому полю. В свойствах поля при конфигурации я такого не нашел. Возможно нужен какой-то индекс? Хотя поиск по этому полю работает... Или возможно как-нибудь это реализовать програмно... Очень надо. Буду очень признателен за помощь.
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
ну конфигуратором вряд ли вы сортировку организуете.
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.
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.
-
- Постоянный обитатель
- Сообщения: 159
- Зарегистрирован: 28 сен 2005, 19:48
- Откуда: mos
- Контактная информация:
Попробовал 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.
При нажатии на шапку колонки пишет что "Внешняя выгрузка на мемополях не работает"...((((
#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.
При нажатии на шапку колонки пишет что "Внешняя выгрузка на мемополях не работает"...((((
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
свои можно - имея исходники в сапорте через компилятор фейсов. где то была подробная дока как настраивать(ну или vip /r), вроде можно и в галке потом, тока нужно ключики при компиляции( год назад баловался с этим - уже не помню - мне logstrtofile ближе). А вот стандартные врядли. Что такое "симв" фиг его знает - вы где сие увидели?
-
- Постоянный обитатель
- Сообщения: 159
- Зарегистрирован: 28 сен 2005, 19:48
- Откуда: mos
- Контактная информация:
Я про троссировку наверно неправильно выразился... Я имел ввиду докомпиляцию для своих интерфейсов. Я свой интерфейс регестрирую в репозитарии, а потом пытаюсь сделать для него докомпиляцию при помощи alter interface. Пишет, что функции родительского интерфейса не загрузились. А про символьную информацию это из доки по докомпиляции. Там написано, что докомпилировать интерфейс можно только при наличии у интерфейса символьной информации...
-
- Постоянный обитатель
- Сообщения: 159
- Зарегистрирован: 28 сен 2005, 19:48
- Откуда: mos
- Контактная информация:
Да вроде с этим разобрался. Тупо добавил папочку 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. Таким образом перегрузить тоже не получилось...
Вот код:
#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. Таким образом перегрузить тоже не получилось...
-
- Постоянный обитатель
- Сообщения: 159
- Зарегистрирован: 28 сен 2005, 19:48
- Откуда: mos
- Контактная информация:
Поясню свою проблему подробней.
Докомпилирую интерфейс Dogovor.
В нем есть окно 'WIDOGOVOREDITMAIN'.
В этом окне обрабатывается событие cmValue2.
Я хочу перегрузить обработку этого события.
В обработчике HandleEvent главного окна перегрузка не работает...
Возможно надо как-то указать принадлежность обработчика к этому окну?? Че-нить вроде WIDOGOVOREDITMAIN::cmValue2{} или cmValue2(WIDOGOVOREDITMAIN){}. Просто в хелпе не могу найти ничего подобного...
Докомпилирую интерфейс Dogovor.
В нем есть окно 'WIDOGOVOREDITMAIN'.
В этом окне обрабатывается событие cmValue2.
Я хочу перегрузить обработку этого события.
В обработчике HandleEvent главного окна перегрузка не работает...
Возможно надо как-то указать принадлежность обработчика к этому окну?? Че-нить вроде WIDOGOVOREDITMAIN::cmValue2{} или cmValue2(WIDOGOVOREDITMAIN){}. Просто в хелпе не могу найти ничего подобного...
Код: Выделить всё
#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.