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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.08.2009, 11:48   #1  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Привет всем
С какого перепугу в Договоре в полях с пустыми (например ) значениям идет перенос???
Простая логика - у меня 1 Клиент и 2 договора (Товары и услуги). Настройки ОДИНАКОВЫЕ в обоих случаях. Различия только в Но договора!!
Зачем кучу рутинных операций по заполнению полей договора в данном случае???
Неужели трудно было сделать вместо:
Код:
	  IF "Gen. Bus. Posting Group" <> CustAgr."Gen. Bus. Posting Group" THEN
		VALIDATE("Gen. Bus. Posting Group",CustAgr."Gen. Bus. Posting Group");
	  IF "VAT Bus. Posting Group" <> CustAgr."VAT Bus. Posting Group" THEN
		VALIDATE("VAT Bus. Posting Group",CustAgr."VAT Bus. Posting Group");
	  IF "Customer Posting Group" <> CustAgr."Customer Posting Group" THEN
		VALIDATE("Customer Posting Group",CustAgr."Customer Posting Group");
	  IF "Currency Code" <> CustAgr."Currency Code" THEN
		VALIDATE("Currency Code",CustAgr."Currency Code");
	  IF "Customer Price Group" <> CustAgr."Customer Price Group" THEN
		VALIDATE("Customer Price Group",CustAgr."Customer Price Group");
	  IF "Customer Disc. Group" <> CustAgr."Customer Disc. Group" THEN
		VALIDATE("Customer Disc. Group",CustAgr."Customer Disc. Group");
	  IF "Language Code" <> CustAgr."Language Code" THEN
		VALIDATE("Language Code",CustAgr."Language Code");
	  IF "Salesperson Code" <> CustAgr."Salesperson Code" THEN
		VALIDATE("Salesperson Code",CustAgr."Salesperson Code");
такой простой код:
Код:
	  IF ("Gen. Bus. Posting Group" <> CustAgr."Gen. Bus. Posting Group") AND (CustAgr."Gen. Bus. Posting Group" <> '') THEN
		VALIDATE("Gen. Bus. Posting Group",CustAgr."Gen. Bus. Posting Group");
	  IF ("VAT Bus. Posting Group" <> CustAgr."VAT Bus. Posting Group") AND (CustAgr."VAT Bus. Posting Group" <> '') THEN
		VALIDATE("VAT Bus. Posting Group",CustAgr."VAT Bus. Posting Group");
	  IF ("Customer Posting Group" <> CustAgr."Customer Posting Group") AND (CustAgr."Customer Posting Group" <> '') THEN
		VALIDATE("Customer Posting Group",CustAgr."Customer Posting Group");
	  IF ("Currency Code" <> CustAgr."Currency Code") AND (CustAgr."Currency Code" <> '') THEN
		VALIDATE("Currency Code",CustAgr."Currency Code");
	  IF ("Customer Price Group" <> CustAgr."Customer Price Group") AND (CustAgr."Customer Price Group" <> '') THEN
		VALIDATE("Customer Price Group",CustAgr."Customer Price Group");
	  IF ("Customer Disc. Group" <> CustAgr."Customer Disc. Group") AND (CustAgr."Customer Disc. Group" <> '') THEN
		VALIDATE("Customer Disc. Group",CustAgr."Customer Disc. Group");
	  IF ("Language Code" <> CustAgr."Language Code") AND (CustAgr."Language Code" <> '') THEN
		VALIDATE("Language Code",CustAgr."Language Code");
	  IF ("Salesperson Code" <> CustAgr."Salesperson Code") AND (CustAgr."Salesperson Code" <> '') THEN
		VALIDATE("Salesperson Code",CustAgr."Salesperson Code");
.. дальше по коду..
Заняла максимум 5 минут!
Старый 10.08.2009, 19:20   #2  
GalaM is offline
GalaM
Moderator
Лучший по профессии 2009
 
640 / 42 (3) +++
Регистрация: 13.03.2008
Адрес: Москва
Наверное давно не программировала, читаю и не могу понять суть вопроса...

Да и "улучшения" после изменения кода то же
Может быть поясните?

Пока я вижу, что если CustAgr."Gen. Bus. Posting Group" = '' (а при определенных условиях это очень даже реально), то VALIDATE не выполниться. То есть ошибка возникнет у пользователя не в момент выбора/перевыбора договора, а в момент учета заказа, когда ее исправить конечному пользователю сложнее.....


И потом, кто Вам сказал, что функционал предполагает два одинаковых договора у клиента? Если используется функционал договоров, то предполагается, что любое из полей может быть переопределено в карточке договора и уже в заказе берем поля из договора.
А может договора различных типов требуют разной учетной группы или за них отвечают разные менеджеры (самый простой пример, комиссонка и купля-продажа).


P.S. И еще, на мой взгляд, вопросы програмирования все-таки стоит обсуждать в соответствующей ветке. Это хоть и локальная функциональность, но совсем не демо-данные или методология внедрения.
Старый 10.08.2009, 19:51   #3  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от gala Посмотреть сообщение
Наверное давно не программировала, читаю и не могу понять суть вопроса...

Да и "улучшения" после изменения кода то же
Может быть поясните?

Пока я вижу, что если CustAgr."Gen. Bus. Posting Group" = '' (а при определенных условиях это очень даже реально), то VALIDATE не выполниться. То есть ошибка возникнет у пользователя не в момент выбора/перевыбора договора, а в момент учета заказа, когда ее исправить конечному пользователю сложнее.....
Ну как мне кажется, что если значение равно "", то оно не определено и по логике наследования нужно брать "родительские данные". А по поводу "а при определенных условиях это очень даже реально" - скажите, когда реально - заполнять ПОВТОРНО кучу полей (тоесть дублировать информацию в нескольких местах) или вводить данные в одном месте? И данные поэтому и копируются в Заказ, что их можно переопределить на уровне Заказа, а не Договора или Клиента.

И что значит фраза "а в момент учета заказа,"? Разве система берёт данные не из Заказа,а переопределяет из договора в момент учета? Тогда в в мусор нужно такое решение!!

Цитата:
И потом, кто Вам сказал, что функционал предполагает два одинаковых договора у клиента? Если используется функционал договоров, то предполагается, что любое из полей может быть переопределено в карточке договора и уже в заказе берем поля из договора.
А может договора различных типов требуют разной учетной группы или за них отвечают разные менеджеры (самый простой пример, комиссонка и купля-продажа).
Не факт, что ДОЛЖНО. И если это ОБЯЗАТЕЛЬНО, то тогда по моему мнению в мусор такое решение и спасибо что сказали - я сам исправлю у себя, чтобы End Customer не шумел потом @>-\--

Цитата:
P.S. И еще, на мой взгляд, вопросы програмирования все-таки стоит обсуждать в соответствующей ветке. Это хоть и локальная функциональность, но совсем не демо-данные или методология внедрения.
Вот именно, что это не вопрос программирования, в вопрос концепции работы функционала, которая по идее, должна помогать уменьшить объем рутинных операций для запуска!! А теперь представте, что у Заказчика на каждую Ship-to Code (пишу англ., чтобы понятее было и не прицепились к переводу), которых в сети может быть более 100, должен быть договор и все эти 100 договоров нужно заполнить.. Могу предположить, что скажет Заказчик...

P.S. Так что я просто привел пример того, что не трудно сделать "счастье".. Нужно лишь немного поговорить с End Customer, а не с "консалтинговым агенством"
 


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

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

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