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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.03.2007, 15:06   #1  
fialka is offline
fialka
Участник
 
347 / 16 (1) ++
Регистрация: 05.10.2006
Адрес: Екатеринбург
? добавление только чисел
Подскажите как лучше добавлять в таблицу только числа.
Например...
table.telefon = Tel;

в Tel могут быть и пробелы, и буквы, и подчеркивания. А нужны тупо только цифры выбрать...

И ещё, значение должно быть с 12 знаками, т.е если 8 знаков всего , то нужно впереди четыре 0 добавлять...
подскажите как лучше сделать?

Последний раз редактировалось fialka; 15.03.2007 в 15:13.
Старый 15.03.2007, 15:14   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
есть замечательная функция, называется strKeep() - результат, полученный после использования этой функции преобразуйте просто в число. Но будьте внимательный, нули пропадут, если они были вначале числа
Старый 15.03.2007, 15:15   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от fialka Посмотреть сообщение
подскажите как лучше сделать?
написать код в методе validatefield.

но учтите, что этот метод не вызывается, если:
1. обновлять через doinsert, doupdate
2. до записи вызвать метод skipmethods()
3. обновлять записи в обход аксапты (прямая запись, например, через запрос sql)

задать пользовательских constraint на уровне базы данных Аксапта не позволяет, к сожалению (хотя сама свои системные создает)
а если вы зададите такой constraint вручную, то обработка ошибок в Аксапте превращается в пытку.
__________________
полезное на axForum, github, vk, coub.
Старый 15.03.2007, 15:15   #5  
fialka is offline
fialka
Участник
 
347 / 16 (1) ++
Регистрация: 05.10.2006
Адрес: Екатеринбург
Цитата:
Сообщение от kashperuk Посмотреть сообщение
есть замечательная функция, называется strKeep() - результат, полученный после использования этой функции преобразуйте просто в число. Но будьте внимательный, нули пропадут, если они были вначале числа
Tel= strkeep(Tel,"0123456789");
так примерно должно выглядеть?
Старый 15.03.2007, 15:18   #6  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от fialka Посмотреть сообщение
Tel= strkeep(Tel,"0123456789");
так примерно должно выглядеть?
угу
PS. По второму вопросу:
X++:
Tel = strRep('0', 12 - strLen(Tel)) + Tel;
где-то так. Правда еще доп. проверка нужна, что Tel таки минимум 8 знаков. чтобы не было больше 4 нулей

Последний раз редактировалось kashperuk; 15.03.2007 в 15:21.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Добавление финаналитик ZhanR DAX: Функционал 15 21.06.2011 19:16
Добавление аналитики if_maks DAX: Функционал 3 03.02.2005 10:39
Ошибка при переименование номенклатуры и не только Роман Кошелев DAX: Функционал 11 22.10.2004 16:51
Хочу видеть только итоги AKIS DAX: Функционал 1 19.08.2002 11:49
Ошибка при переименование номенклатуры и не только Роман Кошелев DAX: База знаний и проекты 0 19.04.2002 20:32

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

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

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