Фильтр в КСУ для всех

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

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

Ответить
solkalin
Постоянный гость
Сообщения: 60
Зарегистрирован: 23 ноя 2011, 11:59

Фильтр в КСУ для всех

Сообщение solkalin »

Подскажите пожалуйста как программно установить для всех пользователей фильтр по архивным МЦ в КСУ - "только рабочие".
Через настройки фильтр накладывается только на каталог МЦ.
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Фильтр в КСУ для всех

Сообщение RAJAH »

По полю KATMCMY.ISARCH = 0 нельзя?
solkalin
Постоянный гость
Сообщения: 60
Зарегистрирован: 23 ноя 2011, 11:59

Re: Фильтр в КСУ для всех

Сообщение solkalin »

Можно, только куда это писать? Реализация будет через alterinterface? Можно пример?
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Фильтр в КСУ для всех

Сообщение RAJAH »

Думаю, так прокатит:

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

#component "L_SKLAD"
alter interface "KARTSTORAGE"
overload
end;
create view as
select *
where katmcmy.isarch = 0;
end.
solkalin
Постоянный гость
Сообщения: 60
Зарегистрирован: 23 ноя 2011, 11:59

Re: Фильтр в КСУ для всех

Сообщение solkalin »

все получилось, при открытии отбирает только рабочие МЦ, но при смене фильтра по архивным - Галка подвисает и вылетает. Думаю это логично. А нельзя как-то повоздействовать на само окно фильтра, чтобы стояло по умолчанию "только рабочие", будто это себе пользователь так настроил?
Последний раз редактировалось solkalin 28 дек 2012, 09:38, всего редактировалось 1 раз.
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Фильтр в КСУ для всех

Сообщение RAJAH »

Специально попробовал: работает. Посмотрите в "Запуске внешнего интерфейса": какой ресурсник указан в скобках у "L_SKLAD::KARTSTORAGE"? Если не L_SKLAD.res, то, возможно, интерфейс был отконфигурирован ранее. Надо поставить опыт, отключив ресурс, указанный в скобках.
KATZ
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49

Re: Фильтр в КСУ для всех

Сообщение KATZ »

Можно еще так попробовать:

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

#component "L_SKLAD"

alter interface KartStorage;
HandleEvent
cmInit:
{
  SaveMyDsk(Word(0), 'KartStor_wArchMC');
  Inherited::HandleEvent(cmInit);
}
end;
end.
solkalin
Постоянный гость
Сообщения: 60
Зарегистрирован: 23 ноя 2011, 11:59

Re: Фильтр в КСУ для всех

Сообщение solkalin »

Вы меня опередили, пока я редактировала предыдущий ответ (мой косяк - при компиляции в vip.prj ошиблась в имени папки) :oops:
solkalin
Постоянный гость
Сообщения: 60
Зарегистрирован: 23 ноя 2011, 11:59

Re: Фильтр в КСУ для всех

Сообщение solkalin »

KATZ, RAJAH, спасибо большое за помощь!

KATZ, ваш совет - то, что нужно!!!
Скажите, а где вы посмотрели название окна фильтра по архивным МЦ? В этом окне конфигуратор запускаться не хотел. А в Консоли управления у меня нет объектов, только системы и компоненты.

Оба варианта сохраняю в копилку знаний!
KATZ
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49

Re: Фильтр в КСУ для всех

Сообщение KATZ »

'KartStor_wArchMC' - это не название окна, это имя переменной в DSK-файле, в которую оригинальный интерфейс сохраняет выбранный пользователем способ фильтрации (и читает потом оттуда же, естественно). Перед тем, как значение будет прочитано и применено, мы его меняем на такое, какое нам нужно.

Имя нашел в исходниках, которыми пару лет назад случайно разжился.
solkalin
Постоянный гость
Сообщения: 60
Зарегистрирован: 23 ноя 2011, 11:59

Re: Фильтр в КСУ для всех

Сообщение solkalin »

Спасибо.
А то я тут уже лопачу инет в поисках читалки dsc-файлов.
Ответить