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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.11.2003, 08:33   #1  
puz is offline
puz
Участник
 
37 / 11 (1) +
Регистрация: 01.09.2003
Адрес: Новосибирск
? как повлиять на число десятичных знаков в формах?
Добрый всем день!

Есть такая проблема: нужно чтобы числовые поля в форме отображались (и вводились) с точностью более чем 2 знака по умолчанию.
Можно
1) поменять NoOfDecimals в соответствующем EDT (тогда придется менять этот параметр в "самом базовом" EDT и, в итоге, это будет вылезать в ненужных местах)

2) на Controlе формы поменять не дает (либо 0, либо Auto)

Как будет умнее всего сделать?

P.S. Зачем нужна таблица Unit? На что она влияет? Она по смыслу вроде относится к рассматриваемой проблеме, но по перекрестным ссылкам получается, что она используется только в InventTable и нескольких классах...

P.P.S Где определяется то, что по умолчанию отображаются именно 2 знака после запятой (при установленном NoOfDecimals == Auto у EDT)?
Старый 12.11.2003, 08:56   #2  
andreynikolai is offline
andreynikolai
Участник
 
133 / 10 (1) +
Регистрация: 11.04.2002
А не проще ли св-во noOfDecimals изменить только у конкретного EDT для конкретного
поля конкретной таблицы, то есть для этой цели создать свой EDT.
а если не нужно вводить, а только отображать, то можно сделать просто
display_метод возвращающий значение с EDT более чем 2 знака.
Старый 12.11.2003, 09:04   #3  
Ser is offline
Ser
NavAx
 
99 / 14 (1) ++
Регистрация: 04.03.2002
Адрес: Москва
Цитата:
2) на Controlе формы поменять не дает (либо 0, либо Auto)
А заместо нуля не пробовали чего ввести?
Старый 12.11.2003, 09:08   #4  
puz is offline
puz
Участник
 
37 / 11 (1) +
Регистрация: 01.09.2003
Адрес: Новосибирск
Цитата:
А заместо нуля не пробовали чего ввести?
пробовали - не дает .
Попытка подставить что-нибудь вместо Auto приводит к тому, что подставляется "пустое место" и, в итоге, 0

2andreynikolai:
Цитата:
то есть для этой цели создать свой EDT
возможно, что тогда придется менять не одно поле и не в одной таблице...
Старый 12.11.2003, 10:43   #5  
andreynikolai is offline
andreynikolai
Участник
 
133 / 10 (1) +
Регистрация: 11.04.2002
Да чего же пытлив русский ум. У меня все-таки получилось !

Экспериментировал я на пробной формочке на базе SalesLine.
В качестве поля-кролика было взято поле LineAmount.
Лично у нас оно с EDT, где NoOfDecimals 2 знака.

Последовательность действий такая.
Не переносите на грид поле с датасорса а просто создайте на гриде realEdit.

1) в поле extendedDataType выберите EDT у которого например 4 знака,
если такого нет то сами создайте.
2) Затем выберите dataSource - salesLine, dataField - lineAmount.
3) В поле noOfDecimals кликните на квадратик справа и система подставит
noOfDecimals по умолчанию - 2.
4) Внаглую поставьте 4.

Запускайте - фурычит !
За это сообщение автора поблагодарили: NickMDAX (0).
Старый 12.11.2003, 11:00   #6  
puz is offline
puz
Участник
 
37 / 11 (1) +
Регистрация: 01.09.2003
Адрес: Новосибирск
спасибо!!
попробовал. отлично.
наверное руки кривые с утра были

А теперь самое интересное: а каким боком сюда стоит таблица Unit?
Старый 12.11.2003, 12:03   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Re: как повлиять на число десятичных знаков в формах?
Цитата:
Изначально опубликовано puz
Зачем нужна таблица Unit? На что она влияет? Она по смыслу вроде относится к рассматриваемой проблеме, но по перекрестным ссылкам получается, что она используется только в InventTable и нескольких классах...
Это единицы измерения. Это понятно.
Самое интересное, что у единиц измерения есть поле Десятичные знаки.
Это поле указывает Аксапте как надо округлять количество для номенклатуры с разными единицами измерения.

Например.
Пусть Единица хранения - Кг. Десятичных знаков 3.
Пусть Единица продажи - г. Десятичных знаков 0
Пусть есть правила пересчета 1 Кг = 1000 г.

Тогда, если в заказе ввести 4 г. То в складскую проводку будет введено 0.004 Кг. Самое интересное, что в стандартной Аксапте этого не увидеть, поскольку при выводе на экран значения округляются до 2 знаков (повторяю, в стандартно настроенной)

Что самое интересное, ввести без пересчета единиц 0.004 кг в стандартной Аксапте нельзя - надо изменять типы.

Таким образом, может быть перед тем как лезть в АОТ стоит подумать о единицах измерения и о правилах пересчета?

Цитата:
Изначально опубликовано puz
Где определяется то, что по умолчанию отображаются именно 2 знака после запятой (при установленном NoOfDecimals == Auto у EDT)?
Базовый EDT, отвечающий за количество Qty. Это вы вроде нашли.
У Qty действительно установлено Auto.
А почему в этом случае показывается 2? Не знаю. Видимо где то в ресурсах прописано. Региональные настройки на это не влияют.
Старый 12.11.2003, 12:28   #8  
puz is offline
puz
Участник
 
37 / 11 (1) +
Регистрация: 01.09.2003
Адрес: Новосибирск
Спасибо большое всем за ответы.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Количество знаков отображения после запятой в формах и отчетах AX3.0 SP3 ksenia DAX: Функционал 4 07.04.2008 17:27
Количество знаков после запятой для количества в Закупке. dimit DAX: Функционал 18 20.11.2006 17:23
Кол-во десятичных знаков в EDT chi DAX: Программирование 1 20.10.2006 11:49
Разделитель десятичных знаков в отчетах dirigente DAX: Функционал 0 20.11.2003 12:28
Число десятичных знаков отображения в Report Ser DAX: Программирование 8 21.08.2003 15:37
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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