Чтобы выполнить сравнение прайс-листов поставщиков, нужно создать связи между товарами своего прайс-листа, на рисунке отмечено стрелками 1 и товарами в прайс-листах поставщиков. Когда связи настроены, связанные товары выводятся в результатах поиска, на рисунке отмечено стрелкой 4.
Для каждого товара своего прайс-листа создается отдельная связь через строку поиска, на рисунке отмечено стрелкой 2. Анализ данных для текущего товара запускается кнопкой поиска, на рисунке отмечено стрелкой 3.
Связь надо настраивать так, чтобы для каждого товара своего прайс-листа было по одному товару от каждого поставщика.
Чтобы облегчить создание связей, создана функция пакетной настройки связей, кнопка отмечена на рисунке стрелкой 5. Функция пакетной настройки связей позволяет взять слова из любого текстового поля собственного прайс-листа и поместить их в строку поиска, на рисунке отмечено стрелкой 2, в автоматическом режиме.
Слова можно отбирать по различным условиям, длине слова, его порядковому номеру в строке, содержимому используя регулярные выражения.
В данном примере настроем сравнение прайс-листов, задействовав все инструменты. Возьмем уникальный код товара из наименования, на рисунке отмечено стрелкой 1.
Чтобы исключить скобки, воспользуемся правилами замены, этот блок отмечен на рисунке стрелкой 2. Оставляя пустым поле "На что менять" мы уберем скобки из интересующих нас слов.
Интересующие нас коды встречаются во втором или третьем слове наименования, поэтому будем рассматривать только эти слова, в примере на картинке отмечено стрелкой 3.
Добавим анализ длинны слова, что бы отбрасывать слишком длинные и слишком короткие слова, на рисунке это условие отмечено стрелкой 4.
И воспользуемся регулярными выражениями, на рисунке это условие отмечено стрелкой 5. Поставим условие, нужное слово должно содержать цифры и латинские буквы. Возможны любые варианты условий, реализовано с помощью функции СУБД «SIMILAR TO». Подробно описание всех вариантов значений найдете на этой странице http://firebirdsql.su/doku.php?id=similar_to
Для удобства, в списке приводятся часто используемые. Ниже расшифровка этих команд.
%[a-z]% - любая маленькая латинская буква
%[A-Z]% - любая большая латинская буква
%[[:ALPHA:]]% - все латинские буквы
%[0-9]% - любая цифра
%[[:ALNUM:]]% - все латинские буквы и цифры
Знак процентов говорит программе, что слева и справа может встречаться любое количество символов в строке.
Если мы выделим в своем прайс-листе несколько товаров, например стрелками и Shift, то настройки будут применены только к ним, это полезно если интересующие нас слова нужно брать по разным условиям для каждой группы товаров.
Когда связи для всех товаров созданы, нажимаем кнопку «Повтор сценариев поиска для всех товаров», на рисунке отмечена стрелкой 1. Программа выполнит сравнение прайс-листов поставщиков, выбор минимальной цены, расчет наценки, заказ товаров. Результаты качества поиска выводятся для мониторинга, на рисунке отмечена стрелкой 2.