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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.01.2010, 15:21   #1  
pwp is offline
pwp
Участник
 
76 / 16 (1) ++
Регистрация: 08.07.2008
Адрес: Обнинск
Контроль ввода на форме.
Возможно это просто, но не нашел как. Как стандарно запретить ввод символа или не дать ввести поле в целом, если там встречаются символы при вводе числового поля в Grid (integer или RealEdit).
Старый 13.01.2010, 15:31   #2  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
:)
Цитата:
Сообщение от pwp Посмотреть сообщение
Как стандарно запретить ввод символа или не дать ввести поле в целом, если там встречаются символы при вводе числового поля в Grid (integer или RealEdit).
Стандартно в числовое поле нельзя ввести символы, вы уж сформулируйте, плизз, подробней свой вопрос/задачу
Старый 13.01.2010, 15:44   #3  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,296 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Цитата:
Сообщение от Lemming Посмотреть сообщение
Стандартно в числовое поле нельзя ввести символы...
Можно вводить числовые выражения, например, "2*2" или "50*100/118".
Но проблема автора совершенно непонятна.
__________________
Михаил Андреев
https://www.amand.ru
За это сообщение автора поблагодарили: glibs (2), Lemming (6), driller (1).
Старый 13.01.2010, 15:55   #4  
pwp is offline
pwp
Участник
 
76 / 16 (1) ++
Регистрация: 08.07.2008
Адрес: Обнинск
Цитата:
Сообщение от pwp Посмотреть сообщение
Возможно это просто, но не нашел как. Как стандарно запретить ввод символа или не дать ввести поле в целом, если там встречаются символы при вводе числового поля в Grid (integer или RealEdit).
Уточняю : вместо числа ввожу : <asdert> или <1цу23> - получаю что введенное значение = 0,00. Typeof(xxx) == Types::Real . Поле определено через расширенный тип данных - real.
Старый 13.01.2010, 16:08   #5  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
Cool
Цитата:
Сообщение от pwp Посмотреть сообщение
Уточняю : вместо числа ввожу : <asdert> или <1цу23> - получаю что введенное значение = 0,00. Typeof(xxx) == Types::Real . Поле определено через расширенный тип данных - real.
Хмм... что-то не выходит в стандартной форме ГК ввести в дебет/кредит сочетание "<asdert>", в том поле, куда вы вводите "<asdert>" ничего не программассничали? Контрол вообще какого типа?

пы.сы. и отдельно, о чем тут это?
Цитата:
Сообщение от pwp Посмотреть сообщение
Typeof(xxx) == Types::Real

Последний раз редактировалось Lemming; 13.01.2010 в 16:12. Причина: м
Старый 13.01.2010, 16:17   #6  
pwp is offline
pwp
Участник
 
76 / 16 (1) ++
Регистрация: 08.07.2008
Адрес: Обнинск
Цитата:
Сообщение от Lemming Посмотреть сообщение
Хмм... что-то не выходит в стандартной форме ГК ввести в дебет/кредит сочетание "<asdert>", в том поле, куда вы вводите "<asdert>" ничего не программассничали? Контрол вообще какого типа?

пы.сы. и отдельно, о чем тут это?
1. Контрол на Grid = RealEdit. Напрограммассничать - конечно мог, но не со зла, а по
незнанию.
2. Typeof(xxx) == Types::Real это я уже в методе modified этого поля на Grid пытаюсь
понять тип введенного поля, а он все равно = Real и на цифры и на буквы.
3. Форма Tutorial_Form_Controls. На поле RealEdit запросто пропускает <qwerty> на поле Integer не дает вводить !!

Последний раз редактировалось pwp; 13.01.2010 в 16:23.
Старый 13.01.2010, 16:30   #7  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
А в чем вообще задача? Что нужно сделать и для чего?
__________________
Ivanhoe as is..
Старый 13.01.2010, 16:30   #8  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
?
Цитата:
Сообщение от pwp Посмотреть сообщение
3. Форма Tutorial_Form_Controls. На поле RealEdit запросто пропускает <qwerty> на поле Integer не дает вводить !!
(Задумчиво): да вроде не пропускает, а кидает алерт: "Ошибка в формате числа". Впрочем, давайте уточним, все же, что мы хотим, в данном случае, от этой формы?
Старый 13.01.2010, 16:38   #9  
pwp is offline
pwp
Участник
 
76 / 16 (1) ++
Регистрация: 08.07.2008
Адрес: Обнинск
Цитата:
Сообщение от Lemming Посмотреть сообщение
(Задумчиво): да вроде не пропускает, а кидает алерт: "Ошибка в формате числа". Впрочем, давайте уточним, все же, что мы хотим, в данном случае, от этой формы?
Мы хотим чтобы при вводе в поле RealNumber символов вместо цифр форма также нам говорила об ошибке в формате числа(как в случае с Integer), а не принимала его = 0,00. Только и всего.
Старый 13.01.2010, 16:47   #10  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
!
Цитата:
Сообщение от pwp Посмотреть сообщение
Мы хотим чтобы при вводе в поле RealNumber символов вместо цифр форма также нам говорила об ошибке в формате числа(как в случае с Integer), а не принимала его = 0,00. Только и всего.
Уфф...извините, но тады вам сюда
Старый 13.01.2010, 16:51   #11  
pwp is offline
pwp
Участник
 
76 / 16 (1) ++
Регистрация: 08.07.2008
Адрес: Обнинск
Цитата:
Сообщение от Lemming Посмотреть сообщение
Уфф...извините, но тады вам сюда
Честно говоря не въехал в Вашу подсказку.....
Старый 13.01.2010, 16:51   #12  
Bishop is offline
Bishop
Участник
 
89 / 60 (3) ++++
Регистрация: 12.08.2004
Адрес: Москва
Считайте , что это сделать нельзя (без адских выкрутасов).
Если вы ожидаете ввод значения, отличного от 0,00 - то проверяйте это либо в validate() либо в другом месте (при закрытии формы/при сохранении записи/ и т.д.)
Кстати, RealEdit при вводе некорректных символов принимает ПОСЛЕДНЕЕ значение, а не 0,00... (если поле принадлежит источнику данных)

Последний раз редактировалось Bishop; 13.01.2010 в 17:02.
Старый 13.01.2010, 16:55   #13  
Bishop is offline
Bishop
Участник
 
89 / 60 (3) ++++
Регистрация: 12.08.2004
Адрес: Москва
Что-то вы жостко застебались, ребята
На самом деле это фигово, что IntEdit ругается на формат, а RealEdit - нет.
Старый 13.01.2010, 17:06   #14  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
?
Цитата:
Сообщение от Bishop Посмотреть сообщение
Что-то вы жостко застебались, ребята
На самом деле это фигово, что IntEdit ругается на формат, а RealEdit - нет.
Честно , честно, а пример можно где RealEdit не ругается на формат?
Старый 13.01.2010, 17:09   #15  
Bishop is offline
Bishop
Участник
 
89 / 60 (3) ++++
Регистрация: 12.08.2004
Адрес: Москва
Цитата:
Сообщение от Lemming Посмотреть сообщение
Честно , честно, а пример можно где RealEdit не ругается на формат?
AX 4.0 SP2
Ввожу в любой контрол типа RealEdit букву "A" - сообщения об ошибке нет, значение устанавливается либо 0,00, либо последнее (для источников данных).
Ввожу в любой контрол типа IntEdit букву "A" - получаю сообщение об ошибке.

У вас не так?
Старый 13.01.2010, 17:17   #16  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
AX 3.0 SP6 - ругается и в целом и в вещественном поле.
AX 4.0 и AX 2009 - ругается только в целом, в вещественном не ругается.
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: pwp (1).
Старый 13.01.2010, 17:17   #17  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Насколько я понимаю, автор пытается словами выразить следующее:

IntEdit - при вводе такой последовательности "123abc456" Axapta ругнется на неверные символы, но оставит первые введенные цифры. Т.е. останется "123".

Преобразование соответствует работе str2int()

RealEdit - при вводе такой последовательности "123abc456" Axapta ругнется на неверные символы, и обнулит вообще все поле. Т.е. останется "0,00"

Преобразование НЕ соответствует работе str2num()

Как лечить? Ну, вручную выполнять преобразование в modified() методах введенного значения...
За это сообщение автора поблагодарили: pwp (1).
Старый 13.01.2010, 17:17   #18  
Zodiak is offline
Zodiak
Участник
 
61 / 22 (1) +++
Регистрация: 16.01.2004
Адрес: СПб
о, нашел таки. В 4.0 есть функция strKeep(). Она проверяет, чтобы в данной строке были только допустимые символы, список которых задается в ее параметрах. Можно наверное так выкрутиться
а хотя нет, поторопился малость((

Последний раз редактировалось Zodiak; 13.01.2010 в 17:21.
Старый 13.01.2010, 17:19   #19  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
:(
Цитата:
Сообщение от Bishop Посмотреть сообщение
AX 4.0 SP2
Ввожу в любой контрол типа RealEdit букву "A" - сообщения об ошибке нет, значение устанавливается либо 0,00, либо последнее (для источников данных).
Ввожу в любой контрол типа IntEdit букву "A" - получаю сообщение об ошибке.

У вас не так?
Пилять...(посыпает голову пеплом за шутку со ссылкой ) в 3-ке не так, а в 4-ке видимо привет Биллу Гейтсу и Стиву Би... господину К. Татаринову. Только сейчас понял о чем пишет pwp, прошу прощения.
Старый 13.01.2010, 18:58   #20  
pwp is offline
pwp
Участник
 
76 / 16 (1) ++
Регистрация: 08.07.2008
Адрес: Обнинск
Цитата:
Сообщение от Lemming Посмотреть сообщение
Пилять...(посыпает голову пеплом за шутку со ссылкой ) в 3-ке не так, а в 4-ке видимо привет Биллу Гейтсу и Стиву Би... господину К. Татаринову. Только сейчас понял о чем пишет pwp, прошу прощения.
Ок, нет проблем. Смотрю пока отсутствовал диалог пошел уже без спрашивающего.
У нас ядро 4.0.2501.116
Цитата:
Сообщение от Ivanhoe
AX 4.0 и AX 2009 - ругается только в целом, в вещественном не ругается
Похоже у нас так, но как мне кажется это не есть good. Мне конечно и в голову не пришло бы вводить буквы вместо цифр, но при тестировании мне на это указали. Вот
я и стал искать BestPractice на эту тему... и никак...
Как это обойти-понятно, проверить введенное значение на = 0,00.Может это str2num не работает, как пишет В.Максимов, я не знаю какие в этом случае функции используются.
В общем спасибо всем, принявшим участие, если будут другие идеи - пишите...
За это сообщение автора поблагодарили: Lemming (5).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Итератор с поддержкой методов обратного вызова для обработки контролов на форме gl00mie DAX: Программирование 18 06.08.2013 22:16
Сторно ввода в эксплуатацию ОС Rivez DAX: Функционал 16 25.08.2009 10:46
Использование семейства InventDimCtrl_Frm_* - 2 DS InventDim на одной форме Pavlo AKA Panok DAX: База знаний и проекты 5 22.12.2008 17:15
контроль доступа к форме Antonuch DAX: Администрирование 4 29.11.2007 11:55
последний метод на форме ? slava DAX: Программирование 6 12.03.2003 16:05

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

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

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