Как разрешить/отменить возможность ред.-вставки в browse?

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

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

Ответить
Ale
Сообщения: 9
Зарегистрирован: 19 мар 2008, 12:54
Откуда: Воронеж

Как разрешить/отменить возможность ред.-вставки в browse?

Сообщение Ale »

Доброго времени суток.
Вопрос в следующем:
есть браузер, который отображает select из физ. таблицы.
поля объявлены с sci1478esc, т.е. есть возможность редактирования-вставки-удаления записей.
Если объявлять поля как noprotect, то пользователь имеет возможность редактирования полей без нажатия F4.
Если как protect, то нажимай-ненажимай F4 - ничего не отредактируешь...
Мне бы хотелось, если это возможно, добиться от своего интерфейса галактической функциональности, т.е. в режиме просмотра браузер недоступен для ред. - вставки, возможность должна появляться только после F4-F7
Код обработчиков событий на всякий случай:

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

...
Create view L2 As select * From ValLimits where((nmc==ValLimits.ckatmc));
...
browse brw1;
fields
  ValLimits.ckatpokaz ' Показатель ' ('Показатель',hcallvsomegroup,sci1478esc):[25], noprotect; 
  ValLimits.valmin ' Мин. знач. ' ('Мин. знач.',hcallvsomegroup,sci1478esc):[25], noprotect;
  ValLimits.valmax ' Мах. знач. ' ('Мах. знач.',hcallvsomegroup,sci1478esc):[25], noprotect;
end;
handleevent
cmUpdateRecord:
{
 update current ValLimits set ValLimits.ckatmc:=nmc;
 ReScanPanel(#ValLimits);
};
cmSetDefault:
{
  ValLimits.valmin:=1;
  ValLimits.valmax:=100;   
  ReScanPanel(#ValLimits);
}
cmDeleteRecord:
{
 Delete current ValLimits;
}
cmInsertRecord:
{
 insert current ValLimits set ValLimits.ckatmc:=nmc;  
 ReScanPanel(#ValLimits);
}
end; // HandleEvent 
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

brw1 ставите протект
добавляете
browse brw2
в cmEdit
ставите
setformat(brw2)
можно по переменной какой либо переключать режимы туда сюда.
хотя в галке в основном используется вызов для редактирования другого фейса. А так наверное нужно еще обработать cmClose - чтобы если находитесь в режиме редактирования переключить формат на просмотр и сделать abort. Ну если это фейс выбора, то и cmDefault тоже.
Ale
Сообщения: 9
Зарегистрирован: 19 мар 2008, 12:54
Откуда: Воронеж

Сообщение Ale »

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

Сообщение edward_K »

есть еще SetFieldOption,ClearfieldOption ну и функции конфигуратора (cfsSetProp) - тока это дольше.
Ale
Сообщения: 9
Зарегистрирован: 19 мар 2008, 12:54
Откуда: Воронеж

Сообщение Ale »

попробовал сделать метод с двумя браузерами ( brw1 - protect, brw2 - noprotect)
со вставкой получилось:
при нажатии F7 происходит событие Insert,
на которое есть соотв. обработчик, в котором я переключаю браузер на brw2, далее происходит SetDefault, далее в обработчике InsertRecord переключаю обратно на brw1.
а с редактированием проблема: при нажатии F4 я хз какое событие происходит, аналогичного Insert события Update я в хелпе не обнаружил...
посему в каком месте при апдейте браузеры переключать чето не пойму
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

я ж написал
cmEdit
Ale
Сообщения: 9
Зарегистрирован: 19 мар 2008, 12:54
Откуда: Воронеж

Сообщение Ale »

согласно хэлпу существует ряд сист. событий

табличные события:
cmInsertRecord
cmUpDateRecord
cmDeleteRecord
в их обработчиках рекомендуется писать соответствующие sql-запросы

оконные события:
cmInsert
cmDelete
цитата "Событие возникает от статус-линии"
почему не существует аналогичного события для апдейта, при том что есть стандартная клавиша F4 - убей бог не постигаю...
мож оно есть, но не описано в хэлпе?
Ale
Сообщения: 9
Зарегистрирован: 19 мар 2008, 12:54
Откуда: Воронеж

Сообщение Ale »

edward_K
не успел посмотреть ваш ответ
поэтому был крик души выше :)
буду пробовать
благодарю еще раз
Ale
Сообщения: 9
Зарегистрирован: 19 мар 2008, 12:54
Откуда: Воронеж

Сообщение Ale »

edward_K
все работает как надо
спасибо!
Ответить