AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.12.2011, 13:45   #1  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2161 (81) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Поменяйте процесс.
1. Создаете номенклатуру. По умолчанию она заблокирована.
2. Создаете нужно количество упаковок.
3. Указываете активную упаковку в номенклатуре.
4. Снимаете блокировку с номенклатуры, при этом проверка, что указана активная упаковка. Или автоматическое снятие блокировки при выполнении п.3.

Так и проще запрограммировать, и проще наладить процесс управления номенклатурами. Достаточно часто в компаниях есть целый регламент заведения новой номенклатуры - как раз в него и можно встроить создание этих самых упаковок.

P.S. сорри, но вышеприведенные варианты, имхо, - типично программистский подход
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: Bega (2), Borsugg (1).
Старый 27.12.2011, 14:06   #2  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
P.S. сорри, но вышеприведенные варианты, имхо, - типично программистский подход
Ну не знаю, я исходил из следующих соображений:
1. минимизировать количество действий пользователя.
2. помня о пункте 1, сделать ввод упаковки обязательным.

в общем в любом подходе есть свои плюсы и минусы
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
За это сообщение автора поблагодарили: Pustik (3).
Старый 27.12.2011, 16:26   #3  
Borsugg is offline
Borsugg
Участник
 
22 / 10 (1) +
Регистрация: 09.08.2011
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Поменяйте процесс.
1. Создаете номенклатуру. По умолчанию она заблокирована.
2. Создаете нужно количество упаковок.
3. Указываете активную упаковку в номенклатуре.
4. Снимаете блокировку с номенклатуры, при этом проверка, что указана активная упаковка. Или автоматическое снятие блокировки при выполнении п.3.

Так и проще запрограммировать, и проще наладить процесс управления номенклатурами. Достаточно часто в компаниях есть целый регламент заведения новой номенклатуры - как раз в него и можно встроить создание этих самых упаковок.

P.S. сорри, но вышеприведенные варианты, имхо, - типично программистский подход
Как по мне ваше решение меня полностью устраивает в плане "правильности" что-ли (по моему скромному мнению). Но к сожалению - это будет стоить не малых трудозатрат, что на данный момент неприемлимо.


Предложили еще такой вариант, но он мне никаким образом не нравится и я всеми силами противлюсь:
Заполнить вкладку контроллами, не привязанных к какой-либо таблице (что дает не вызывать лишний раз ValidateWrite) и после заполнения их, пройдя все проверки по этим полям (которые тоже надо писать вручную) и проверки по всем датасорсам, сохранить эти значения в таблицу упаковки.. %)
Вот такое странное решение, с которым я пытаюсь бороться %)
Старый 27.12.2011, 16:35   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,452 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Borsugg Посмотреть сообщение
Предложили еще такой вариант, но он мне никаким образом не нравится и я всеми силами противлюсь
Тогда уж проще будет сворганить диалог для вставки номенклатуры. Вызывать его из метода create датасурса. На диалоге запросить все обязательные значения и потом программно осуществить создание строк во всех связанных таблицах.

Пример: создание заказа на продажу

Последний раз редактировалось S.Kuskov; 27.12.2011 в 16:39.
Старый 27.12.2011, 16:39   #5  
Borsugg is offline
Borsugg
Участник
 
22 / 10 (1) +
Регистрация: 09.08.2011
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Тогда уж проще будет сворганить диалог для вставки номенклатуры. Вызывать его из метода create датасурса. На диалоге запросить все обязательные значения и потом программно осуществить создание строк во всех связанных таблицах.
Тогда получается форма Inventtable нужна только для просмотра и изменения текущих строк. Хм.

Может мастером попробовать? Представляю диалог с адовой тучей контроллов, ужасть..
Старый 27.12.2011, 21:10   #6  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2161 (81) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Цитата:
Сообщение от Borsugg Посмотреть сообщение
Как по мне ваше решение меня полностью устраивает в плане "правильности" что-ли (по моему скромному мнению). Но к сожалению - это будет стоить не малых трудозатрат, что на данный момент неприемлимо.
Блокировка новой номенклатуры - три строки в методе insert().
Проверка при снятии блокировки - еще строк пять в методе validatefield() / validatewrite().

Блокировка стандартная - галка "Остановлено" для закупок, склада, продаж.

Вот если вы про переобучение пользователей - то, возможно, это действительно затратно. Но в любом случае что-то подобное придется делать. Например, мне еще импонирует предложенный вариант с созданием упаковки по умолчанию (сам хотел предложить но там также придется вводить контроль правильного заполнения полей (и, я думаю, контроль этот не только в форме номенклатур, а то успеете продать / купить, когда еще не завели правильную упаковку) - т.е. опять же нужно на некоторое время "заблокировать" недозаполненную номенклатуру.
__________________
Ivanhoe as is..
Старый 27.12.2011, 21:49   #7  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Поменяйте процесс.
1. Создаете номенклатуру. По умолчанию она заблокирована.
2. Создаете нужно количество упаковок.
3. Указываете активную упаковку в номенклатуре.
4. Снимаете блокировку с номенклатуры, при этом проверка, что указана активная упаковка. Или автоматическое снятие блокировки при выполнении п.3.

Так и проще запрограммировать, и проще наладить процесс управления номенклатурами. Достаточно часто в компаниях есть целый регламент заведения новой номенклатуры - как раз в него и можно встроить создание этих самых упаковок.

P.S. сорри, но вышеприведенные варианты, имхо, - типично программистский подход
Полностью согласен, напрашивается процедура одобрения, при которой и будут происходить все проверки. В данном случае снятие блокировки и означает это одобрение. Все другие попытки проверки в связанных данных непосредственно при вводе приведут к отсутствию гибкости, модальности, неудобству для пользователей, возникновению тупиковых ситуаций. Представьте себе, что позже появятся еще данные, которые нужно вводить и проверять для номенклатуры, тогда логика запутается еще больше.

А программировать тут не более получаса.
Старый 28.12.2011, 07:15   #8  
Borsugg is offline
Borsugg
Участник
 
22 / 10 (1) +
Регистрация: 09.08.2011
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Блокировка новой номенклатуры - три строки в методе insert().
Проверка при снятии блокировки - еще строк пять в методе validatefield() / validatewrite().
Блокировка стандартная - галка "Остановлено" для закупок, склада, продаж.
.
Три строки в методе insert таблиц, где используется справочник номенклатур? Это столько таблиц надо пробежать, что не очень быстро Поправьте, если вас не понял.
Хотелось бы поподробнее узнать про галку "Остановлено". На таблице InventTable такого поля не обнаружил. =(
Старый 28.12.2011, 08:23   #9  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,452 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Borsugg Посмотреть сообщение
Три строки в методе insert таблиц, где используется справочник номенклатур? Это столько таблиц надо пробежать, что не очень быстро Поправьте, если вас не понял.
Ещё раз. Ivanhoe правильно вам подсказывает
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Блокировка стандартная - галка "Остановлено" для закупок, склада, продаж.

Цитата:
Сообщение от Borsugg Посмотреть сообщение
Хотелось бы поподробнее узнать про галку "Остановлено". На таблице InventTable такого поля не обнаружил. =(
AX 4:
InventTableModule.Blocked

AX2009:
InventItemPurchSetup.Stopped
InventItemSalesSetup.Stopped
InventItemInventSetup.Stopped

Последний раз редактировалось S.Kuskov; 28.12.2011 в 08:28.
За это сообщение автора поблагодарили: Borsugg (1).
Теги
inventtable

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Не отображаются значения поля на форме InventTable Ulyxess DAX: Программирование 17 07.04.2010 13:27
Передача переменного числа параметров в метод lemchey_white DAX: Программирование 16 14.12.2009 21:21
Как обойти ограничение на количество полей сортировки в DS отчета? Dronas DAX: Программирование 11 30.07.2009 10:19
Работа Range на форме Pustik DAX: Программирование 14 18.07.2005 12:25
Программно записи в InventTable djoker DAX: Программирование 8 02.12.2004 16:59

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:42.