Тема: Поиск номенклатуры по значению параметров

Добрый день.
Подскажите, пожалуйста.  В разделе справки SimpleNomenclaturesSearching написано, что
"NmkSearchConditions - условия поиска в виде массива строк CSDNStrings , где каждая строка условия должна состоять из: обозначение уникального кода параметра + "%=%" + значение параметра, вместо знака равенства "=" можно использовать другие знаки сравнения ( >, >= и т.п. )"

1. Как задать условие "существует", которое присутствуется среди прочих.

2. С подключением параметров, выраженных числами, проблем не возникло. А вот присоединять фильтр по текстовым параметрам не хочет, т.е. условия типа
I = Conditions.Add( "TIP_INSTR%=%РИ")
не срабатывают. Может у меня ошибка в синтаксисе?

Re: Поиск номенклатуры по значению параметров

А зачем % ставите?

Re: Поиск номенклатуры по значению параметров

Прошу прощения, пропустил тему, и в хелпе описание хорошее отсутствует. Возможные условия

  • %EXISTS%

  • %=%

  • %<>%

  • %>%

  • %>=%

  • %<%

  • %<=%

  • %TRUE%

  • %FALSE%

  • %LIKE%

  • %STARTWITH%

2. С подключением параметров, выраженных числами, проблем не возникло. А вот присоединять фильтр по текстовым параметрам не хочет, т.е. условия типа

Исследуем, но очень похоже на нашу ошибку (со строковыми параметрами не работают условия никакие).

Спасибо сказали: Ю.Пестова1

Re: Поиск номенклатуры по значению параметров

Спасибо большое за подсказку.
Возник ещё один вопрос.
Предположим, мне, с помощью макроса, надо предложить подходящие по диаметру и фирме-производителю свёрла. Поскольку по параметру "Фирма" из SimpleNomenclaturesSearching не отфильтруешь, пытаюсь сделать по другому: ограничить зону поиска инструментов только нужной веткой, и, присоединив нужные параметры, включить фильтр по ним. Вручную, из номенклатурного справочника - получается. А вот как описать подключенный параметр в фильтре (и можно ли это вообще сделать) - не знаю. Т.е. что писать на месте "????????" в:
        Call Nmks.Filter.ClearFilter
        Call Nmks.Filter.NewFilterItem( Nmks.Properties( "NAME" ), 9, "Сверло")
        Call Nmks.Filter.NewFilterItem( ????????, 0, D_otv)     
        Call Nmks.Filter.ApplyFilter
не понимаю. Может подскажете...

Re: Поиск номенклатуры по значению параметров

Скореее всего не получится с присоединёнными параметрами... Интерфейс IAttachedParams не поддерживает установку фильтра.
Насколько я понимаю, у вас TechnologiCS версии 5.7? Почему бы не воспользоваться пользовательскими наборами данных (IUserRecordset)?

Спасибо сказали: Ю.Пестова1

Re: Поиск номенклатуры по значению параметров

Действительно начиная с 5.7 и выше можно использовать Наборы данных https://help.technologics.ru/6.2/TCSHelp/_91.htm и через АПИ https://help.technologics.ru/6.2/TCSAPI … Set_13.htm.
В демо ролике есть пример http://www.technologics.ru/node/64

C SimpleNomenclaturesSearching  мы конечно разберемся, это в общем то некий аналог выборок в документообороте (правда сильно упрощенный). Там мы пытаемся оптимизировать запрос своими средствами чтобы ускорить поиск данных.
Для простых запросов (с параметрами) использование Наборов данных порой значительно проще и гибче.

Спасибо сказали: Ю.Пестова1

(изменено: Ю.Пестова, 17 апреля 2013 09:20:02)

Re: Поиск номенклатуры по значению параметров

Олег Зырянов пишет:
  • %EXISTS%

  • %=%

  • %<>%

  • %>%

  • %>=%

  • %<%

  • %<=%

  • %TRUE%

  • %FALSE%

  • %LIKE%

  • %STARTWITH%

Последние два условия перепутаны (не здесь, а в принципе): когда выбираешь вариант "Содержит" в списке остаются только те записи, которые начинаются с введённого значения параметра. И наоборот.

Re: Поиск номенклатуры по значению параметров

спасибо, на 6-ке уже поправили http://technologics.ru/node/239, на 5.7 как СП будем делать тоже постараемся пронести.