Вернуться   Андрей Панько. Заметки про Dynamics NAV > Dynamics NAV (Navision)
Справка Пользователи Календарь Поиск Сообщения за день Все разделы прочитаны

Dynamics NAV (Navision) Заметки про Dynamics NAV (ранее Navision) и аддон LS Retail

Ответ
 
Опции темы Поиск в этой теме
  #1  
Старый 04.04.2007, 10:51
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
Про форму подбора и свойство TableRelation

Решено, что продавать стоит только то, что есть в наличии. Чтобы увеличить удобство работы – при выборе товарных позиций в документе типа счет или заказ продажи (поле Но.), в форме списка товаров должны быть показаны только те товары, по которым остатки не 0.

Фильтровать по полю Наличие, было не целесообразно, уж больно медленно. Попробовал добавить вычисляемое поле «В наличии» где применил формулу Exist (по товар книга операций, поле Открыта=Да). Когда операций станет побольше сравним, какой вариант лучше.

Но создать поле – пол дела, теперь по нему нужно фильтровать. Для этого непосредственно в таблице 37 Sales Line вполе “No.” изменим значение свойства TableRelation
Код:
IF (Type=CONST(" ")) "Standard Text" ELSE IF (Type=CONST(G/L Account)) "G/L Account" ELSE IF (Type=CONST(Item)) Item WHERE (В Наличии=CONST(Yes)) ELSE IF (Type=CONST(Resource)) Resource ELSE IF (Type=CONST(Fixed Asset)) "Fixed Asset" ELSE IF (Type=CONST("Charge (Item)")) "Item Charge"
.

Таким образом, если требуется продать Товар, то будет открываться форма списка товаров, предварительно отфильтрованная по полю В Наличии = Да. Однако может потребоваться проверять наличие по конкретному складу, тогда

Код:
IF (Type=CONST(" ")) "Standard Text" ELSE IF (Type=CONST(G/L Account)) "G/L Account" ELSE IF (Type=CONST(Item)) Item WHERE (В Наличии=CONST(Yes),Location Filter=FIELD(Location Code)) ELSE IF (Type=CONST(Resource)) Resource ELSE IF (Type=CONST(Fixed Asset)) "Fixed Asset" ELSE IF (Type=CONST("Charge (Item)")) "Item Charge"
.

Правда есть нюанс, делающий подобное улучшение бесполезным – поле Location Code в табличной части заполняется после того как выбрали товар, но никак не наоборот.

Последний раз редактировалось apanko, 05.04.2007 в 11:14.
Ответить с цитированием
  #2  
Старый 05.04.2007, 11:16
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
Про поиск в поле Но

В дополнение к предыдущей заметке поговорим о свойстве поля таблицы AltSearchField.

Представим себе, что мы заполняем заказ продажи. Шапка заполнена. Как быстрее заполнить табличную часть товарами предполагаемыми к отгрузке?
Обычно, пользователь становиться на поле «Но.», нажимает F6, в открывшемся списке товаров выбирает нужную позицию используя функцию поиска, подтверждает выбор нажав несколько раз Enter (один раз чтобы закрыть окно Поиска, второй чтобы выбрать товар и перейти в заказ продажи, третий чтобы подтвердить выбор уже в самом заказе продажи).
Быстро? Да быстро, но можно еще быстрее.
Для это достаточно стать в поле «Но.» заказа продажи и не нажимая F6 начать набирать название товара. Как только будет набрана часть названия, которая однозначно позволяет идентифицировать товар, можно нажимать Enter.

Пример
В номенклатурном справочнике есть следующие позиции (сортировка по коду):
Цитата:
1 Макароны
2 Хлеб
3 Молоко Домик
4 Молоко Веселый
5 Домашний творог

В заказе продажи мы наберем:
«Х» Enter, и этого достаточно, чтобы система поняла, что нам нужен Хлеб.
«М» Enter, и получим Макароны. Почему макароны? Ведь на «М» начинается также и Молоко? Все просто, поиск осуществляется по алфавиту, а Макароны при данной сортировке идут раньше, чем Молоко.
Соответственно набрав «Мо» Enter, получим Молоко Веселый, чтобы получить Молоко Домик нужно набрать уже «Молоко Д» Enter.
Сложно – ничуть, если знаешь номенклатуру.
Стоит знать, что система ищет по началу поля, т.е. набрав «Творог» мы лишь получим сообщение о том, что такого товара нет.
Также система не умеет исправлять орфографические ошибки, поэтому набрав Мокороны или Малако не стоит рассчитывать на успех.

Я немного лукавил, когда говорил, что система ищет по названию (описанию). На самом деле, поиск осуществляется по полю «Описание Поиска». Однако, учитывая, что данное поле заполняется копированием значения из поля Описание, и особого смысла его изменять нет, то данной неточностью можно пренебречь.

Посмотрим теперь на технологию изнутри.
С помощью дизайнера откроем таблицу 27 и посмотрим свойства поля «No.». Что написано в поле AltSearchField? Search Description – это и есть поле по которому будет осуществляться альтернативный поиск. Кстати для его ускорения создан и соответствующий ключ в данной таблице.

Вопрос – а как это связано с предыдущей заметкой. А вот как. Представим себе, что в наличии у нас есть только Молоко Домик и Хлеб, остальных товаров в наличии нет.
Как писал выше, чтобы однозначно его идентифицировать нужно набрать «Молоко Д» Enter. Но если модифицировать таблицу 37 как было указано, то будет достаточно набрать только «М» Enter. И именно Молоко Домик, а не Макароны будет предожено к откгрузке. Т.е. система будет осуществлять поиск не по всему справочнику товаров, а предварительно отфильтрует его по полю В Наличии = Да.

Ответить с цитированием
Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 02:43.

Контакты: e-mail, телефон: +7(926)1805967 - Архив - Вверх

Microsoft Most Valuable Professional
vBulletin v3.5.4, Copyright ©2000-2020, Jelsoft Enterprises Ltd.
Русский перевод: zCarot, Vovan & Co
Права на все материалы, опубликованные на блогофоруме принадлежат Андрею Панько, если в самом материале не указано иное.
Рейтинг@Mail.ru Rambler's Top100