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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.10.2008, 03:18   #1  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
Angry Деление на ноль в финансовых отчетах
Постоянно выскакивала проблема с делением на ноль. Как от этого избавиться красиво?
Что испробовано:
- Сначала в методе checkDivisionByZero была добавлена проверка на
textBuffer.find('/(((0)+(0))-((0)+(0)))'), но это оказалось как мертвому припарка, потому что тут де выскочило сообщение типа
"((a+b)/((a+b) - (a+b)) - деление на ноль.
- Тогда в метод calculateColumnCalcListColumn был добавлен код

X++:
ZeroDivider = false;
        dividerpos = strscan(str2, '/',1,999);
        divider = substr(str2,dividerpos+1,strlen(str2)-dividerpos-1);
        if (dividerpos != 0 && divider != '')
        {
            bufdevider = strfmt(buf, divider);
            if (compiler.compile(bufdevider) && (! this.checkDivisionByZero(bufdevider)))
            {
                //BP Deviation documented
                tmpAmount = runbuf(bufdevider);
            }
            else
            {
              //  info(strfmt("@SYS85024", str2, _ledgerBalColumnsDim.Column, idx_calc));
                tmpAmount = 0;
            }
        if (tmpAmount == 0)
            ZeroDivider = true;
        }       
        //if (compiler.compile(buf2) && (! this.checkDivisionByZero(buf2))) 
        if (compiler.compile(buf2) && (! this.checkDivisionByZero(buf2)) && !ZeroDivider)         
{
...
и далее по тексту, но ведь если разобраться, то может быть вложенное деление на ноль...
Как же это сделать красиво, может кто нибудь уже боролся с этим?
__________________
Может быть выйдет, а может не-е-е-ет...
Новая песня вместо штиблет..
Старый 18.10.2008, 09:51   #2  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Я в отчете пишу что-то вроде

#1 / (#2 + 1 / 1000000)

Обычно, этого хватает.
__________________
С уважением,
glibs®
За это сообщение автора поблагодарили: mazzy (2), Ivanhoe (2), Qaz Qwerty (1), максон (0).
Старый 21.10.2008, 00:51   #3  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
Так это ж гениально! Спасибо!
__________________
Может быть выйдет, а может не-е-е-ет...
Новая песня вместо штиблет..
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
сопоставление по клиенту с учетом финансовых аналитик? Aquarius DAX: Функционал 3 20.12.2008 10:05
Как организовать суммирование в финансовых отчетах Qaz Qwerty DAX: Функционал 2 11.06.2008 21:58
Вопрос о финансовых отчётах longson DAX: Функционал 2 16.03.2007 04:08
Сальдо в финансовых отчетах ViV DAX: Функционал 2 19.12.2005 09:35
ИТОГИ для строк финансовых отчетов AlexR DAX: Программирование 2 31.05.2004 12:00
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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