Страница 1 из 1

Сложное условие для пользовательского фильтра (Ctrl-A)

Добавлено: 23 июл 2010, 20:16
empyros
Ведется учет серийных номеров, то есть в Складском учете - Документы - Карточки серийных номеров, можно увидеть, что каждому серийному номеру соответствует партия.
Необходимо в Управлении розничной торговлей - Документы - Накладная на реализацию, при выборе МЦ из текущих остатков в разрезе партий установить фильтр (Ctrl-A) на партии по определенному серийному номеру.
То есть что-то такое: KATPARTY.NREC=CARDSN.CPARTY, где CARDSN.CPARTY определяется через CARDSN.SERIAL, который вводим вручную: CARDSN.SERIAL='10000001'.
Можно ли такой фильтр сделать?

Re: Сложное условие для пользовательского фильтра (Ctrl-A)

Добавлено: 24 июл 2010, 09:35
edward_K
уже не раз обсуждалось для связи ??????.c!!!!! == !!!!!.nrec - ищите "TxoGetFieldValue" (или идите в настройку тхо - F3 - общеиспользуемые функции).Если сразу не запашет, то InitServTxo(0) в фильтре вам поможет. Будет медленно.
Второй вариант - докомпиляция фейса. Для скорости лучше выгрузить во времянку дочерную таблица по нужным условиям
и уже на временную наложить жесткую подцепку. Ну правда придется написать свой обработчик фильтров

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

cmFilterSave:
{ if message('Установить стандартный фильтр?',YesNo)=cmYes
  { inherited :: handleEvent (cmFilterSave);  
  }
  else
  { runwindowmodal(wnMy_FLTINDOC);
  }
} 
и возможно cmSetDefault. Но зато можно отфильтровать все что угодно.

Re: Сложное условие для пользовательского фильтра (Ctrl-A)

Добавлено: 24 июл 2010, 13:25
empyros
edward_K писал(а):уже не раз обсуждалось для связи ??????.c!!!!! == !!!!!.nrec - ищите "TxoGetFieldValue" (или идите в настройку тхо - F3 - общеиспользуемые функции).Если сразу не запашет, то InitServTxo(0) в фильтре вам поможет. Будет медленно.
А как получить nrec по другому полю? В фильтре такое можно сделать?

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

select nrec from CARDSN where (CARDSN.SERIAL='001');

Re: Сложное условие для пользовательского фильтра (Ctrl-A)

Добавлено: 26 июл 2010, 10:38
edward_K
В фильтре никак. Разве что вы сделаете Public функцию - где то в viprogr чего то было. а в ней уже каким то объектным фейсом дотянете. Иначе фильтр можно наложить только по тем таблам, что есть в запросе - добавте через докомпиляцию - но работать будет очень и очень медленно.