Ведется учет серийных номеров, то есть в Складском учете - Документы - Карточки серийных номеров, можно увидеть, что каждому серийному номеру соответствует партия.
Необходимо в Управлении розничной торговлей - Документы - Накладная на реализацию, при выборе МЦ из текущих остатков в разрезе партий установить фильтр (Ctrl-A) на партии по определенному серийному номеру.
То есть что-то такое: KATPARTY.NREC=CARDSN.CPARTY, где CARDSN.CPARTY определяется через CARDSN.SERIAL, который вводим вручную: CARDSN.SERIAL='10000001'.
Можно ли такой фильтр сделать?
Сложное условие для пользовательского фильтра (Ctrl-A)
Модераторы: m0p3e, edward_K, Модераторы
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Сложное условие для пользовательского фильтра (Ctrl-A)
уже не раз обсуждалось для связи ??????.c!!!!! == !!!!!.nrec - ищите "TxoGetFieldValue" (или идите в настройку тхо - F3 - общеиспользуемые функции).Если сразу не запашет, то InitServTxo(0) в фильтре вам поможет. Будет медленно.
Второй вариант - докомпиляция фейса. Для скорости лучше выгрузить во времянку дочерную таблица по нужным условиям
и уже на временную наложить жесткую подцепку. Ну правда придется написать свой обработчик фильтров
и возможно cmSetDefault. Но зато можно отфильтровать все что угодно.
Второй вариант - докомпиляция фейса. Для скорости лучше выгрузить во времянку дочерную таблица по нужным условиям
и уже на временную наложить жесткую подцепку. Ну правда придется написать свой обработчик фильтров
Код: Выделить всё
cmFilterSave:
{ if message('Установить стандартный фильтр?',YesNo)=cmYes
{ inherited :: handleEvent (cmFilterSave);
}
else
{ runwindowmodal(wnMy_FLTINDOC);
}
}
Re: Сложное условие для пользовательского фильтра (Ctrl-A)
А как получить nrec по другому полю? В фильтре такое можно сделать?edward_K писал(а):уже не раз обсуждалось для связи ??????.c!!!!! == !!!!!.nrec - ищите "TxoGetFieldValue" (или идите в настройку тхо - F3 - общеиспользуемые функции).Если сразу не запашет, то InitServTxo(0) в фильтре вам поможет. Будет медленно.
Код: Выделить всё
select nrec from CARDSN where (CARDSN.SERIAL='001');
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Сложное условие для пользовательского фильтра (Ctrl-A)
В фильтре никак. Разве что вы сделаете Public функцию - где то в viprogr чего то было. а в ней уже каким то объектным фейсом дотянете. Иначе фильтр можно наложить только по тем таблам, что есть в запросе - добавте через докомпиляцию - но работать будет очень и очень медленно.