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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.12.2012, 14:49   #1  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Цитата:
Сообщение от Kainix Посмотреть сообщение
Добрый день.
Такой вопрос возник, зачем в классе LedgerVoucherTransList, в методе add, используют строковый ключ для мапы?
Цитата:
Сообщение от Kainix Посмотреть сообщение
Если ключ текстовый то перебор идет не в порядке записи проводок.
В Axapta 3.0 сортировка(упорядочивание) символьных строк была идентична сортировке, если бы эти символьные строки можно было бы преобразовать в число. Поэтому в старой версии все работало правильно.В АХ2009 сортировка символьных строк изменилась.Существенную роль в сортировке стал играть символ дефиса и количество символов в строке. Интересную версию рассказал AndyD. Подробнее здесь Не корректная сортировка в Map-e и Set-е. AX2009 RU5.
Скорее всего, при переходе на новую версию, здесь на это просто не обратили внимание.
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
За это сообщение автора поблагодарили: Kainix (1).
Старый 12.12.2012, 15:09   #2  
Kainix is offline
Kainix
Участник
 
47 / 96 (4) ++++
Регистрация: 22.11.2007
Спасибо за ответ, но это пол беды.
На что может повлиять, такое изменение в классе LedgerVoucherTransList. я думаю, не на что, но хочется убедится, если так, то ошибка устраняется, переводом ключа на тип int.
Старый 12.12.2012, 16:28   #3  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Цитата:
Сообщение от Kainix Посмотреть сообщение
Спасибо за ответ, но это пол беды.
На что может повлиять, такое изменение в классе LedgerVoucherTransList. я думаю, не на что, но хочется убедится, если так, то ошибка устраняется, переводом ключа на тип int.
Сложно сходу ответить. Но, предварительно посмотрев, вроде от этого класса никто не унаследован. Там, где к нему обращаются напрямую, используют метод add (где уже все должно быть настроено на int). И в этом классе нет метода, который возвращает этот map.Так что, по первичным предварительным признакам ничего страшного быть не должно.
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
Старый 13.12.2012, 09:27   #4  
Kainix is offline
Kainix
Участник
 
47 / 96 (4) ++++
Регистрация: 22.11.2007
Значит бага с корреспонденцией, одного счета и тогоже счета с одинаковыми аналитиками, исправляется следующим образом.
В классе LedgerVoucherTransList
Метод new
X++:
void new()
{
    // + iau для корректной корреспонденции проводок, необходимо проводки по порядку считывать, для этого используем ключ int
    
    //transObject  = new Map(Types::String, Types::Class);

    transObject  = new Map(Types::Integer, Types::Class); 
    // - iau для корректной корреспонденции проводок, необходимо проводки по порядку считывать, для этого используем ключ int
    
}
Метод add
X++:
public boolean add(LedgerVoucherTransObject _ledgerTransObject)
// </GEEU>
{
    str keyString;
    ;
    // + iau для корректной корреспонденции проводок, необходимо проводки по порядку считывать, для этого используем ключ int    

    //keyString = strfmt('%1', this.elements());
    //transObject.insert(keyString, _ledgerTransObject);
    
    transObject.insert(this.elements(), _ledgerTransObject);
    // - iau для корректной корреспонденции проводок, необходимо проводки по порядку считывать, для этого используем ключ int
    // <GEEU>

    refId_RU = this.elements() - 1;

    // </GEEU>
    return true;
}
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Странное Периодическое и Ручное Сопоставление проводок клиента в Акс 2009 Aquarius DAX: Функционал 3 17.05.2012 01:53
Создание скл проводок при закр склада (AX 3 SP2). VictorSH DAX: Функционал 16 13.02.2008 19:39
Разбиение проводок при сопоставлении по поставщикам lugachy DAX: Функционал 11 24.05.2005 17:10
3.0, Модуль: ОС, операция: Разноска строк журнала ОС (с предварит просм проводок) MagisterLudi DAX: Функционал 2 07.10.2003 18:55
Исследование возможности удаления проводок sguryev DAX: База знаний и проекты 33 06.02.2003 16:42
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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