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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.07.2015, 13:38   #1  
Start is offline
Start
Участник
 
39 / 9 (1) +
Регистрация: 21.07.2015
Адрес: Москва
Преобразование ФИО в краткое
Подскажите функцию, чтобы Фио из полного превратилось в ФИО с инициалами?
Всем спасибо!
Старый 21.07.2015, 14:07   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Быстрее будет самому написать, чем пытаться найти )
Старый 21.07.2015, 14:08   #3  
rootx is offline
rootx
Участник
 
28 / 18 (1) ++
Регистрация: 17.02.2008
X++:
public server display EmplName getFIO_RU()
{
EmplName strRet;
;
strRet = this.dirPartyTable().LastName;
if (this.dirPartyTable().FirstName)
{
strRet += ' ' + substr(this.dirPartyTable().FirstName, 1, 1) + '.';
}
if (this.dirPartyTable().MiddleName)
{
strRet += ' ' + substr(this.dirPartyTable().MiddleName, 1, 1) + '.';
}
return strRet;
}
За это сообщение автора поблагодарили: Start (1).
Старый 21.07.2015, 14:12   #4  
axm2013
Гость
 
n/a
Цитата:
Сообщение от Start Посмотреть сообщение
Подскажите функцию, чтобы Фио из полного превратилось в ФИО с инициалами?
OfficialsTable_RU getFIO
За это сообщение автора поблагодарили: Владимир Максимов (2), Start (1).
Старый 21.07.2015, 14:13   #5  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,654 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Стандартной функции нет, поскольку в Axapta фамилия, имя и отчество - это 3 разных поля. Соответственно, либо из этих 3 полей "складывается" полное ФИО, либо ФИО с инициалами

Для Ax2009

Tables \ EmplTable.emplFullName_RU() - полное
Tables \ EmplTable.getFIO_RU() - с инициалами

Для Ax2012

Tables \ HcmWorker.getFIO_RU() - с инициалами
Tables \ RHRMPersonTable.fio(boolean shorten = true) - в зависимости от параметра - полное или с инициалами

Если же Вам надо именно из строки, содержащей несколько слов "вырезать" инициалы, то это придется писать самому, поскольку никто крое Вас не знает, где именно там фамилия, имя и отчество. И что делать в случае разных исключений... Возможно, Вам подойдет функция global::str2con(), чтобы быстро выделить "слова", если в качестве разделителя указать пробел.

-----------------

Не знал, про метод, указанный axm2013, который как раз и делает подобный разбор...

\Data Dictionary\Tables\OfficialsTable_RU\Methods\getFIO
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...

Последний раз редактировалось Владимир Максимов; 21.07.2015 в 14:27.
За это сообщение автора поблагодарили: Start (1).
Старый 29.04.2016, 21:42   #6  
G.Menshikh is offline
G.Menshikh
Участник
 
16 / 11 (1) +
Регистрация: 25.04.2006
Адрес: Брн
Сегодня подкинули задачку небольшую, надо как раз из строки выдернуть инициалы
накидал джобик
X++:
    str         s = 'фАМИЛИЯ имя отчество      ';
    str         fio;
    container   c;
    int         i;
    ;

    s = strRTrim(strLTrim(s));  //удалим пробелы в начале и в конце строки, если есть
    s = str2CapitalWord(s);    //первая буква слова Заглавная, остальные прописные
    c = str2con(s, ' ');           //в контейнере разобьем по словам 

    for(i = 1; i <= conlen(c); i++)
    {
        if(fio)
        {
            fio += substr(conpeek(c, i), 1, 1) + '.';
        }
        else
        {
            fio += conlen(c) > 1 ? conpeek(c, i) + ' ' : conpeek(c, i);
        }
    }
    info(strfmt("%1", s));
    info(strfmt("%1", fio));
За это сообщение автора поблагодарили: AlGol (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Преобразование в real без округления? АртемМелихов DAX: Программирование 12 15.01.2014 08:55
Преобразование типов данных novic DAX: Программирование 1 28.03.2011 22:09
Поиск сотрудников по наименованию (ФИО) в AX 2009 propeller DAX: Программирование 12 15.11.2010 12:42
склонение ФИО и использование dll библиотеки NetBus DAX: Программирование 11 23.10.2007 14:00
Преобразование оплаты в предоплату для поставщиков yuranio DAX: Функционал 1 30.03.2006 17:42

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:10.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.