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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.01.2015, 04:39   #1  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
Где в AX2012 используются выражения арифметические
Например, можно написать, например (A + B) * C
короче что-то типа формул чтобы вводить можно было
видел давно как-то и забыл, где

p.s. не то, что в Product Configuration
Старый 31.01.2015, 08:15   #2  
d&m is offline
d&m
MCT
Аватар для d&m
MCP
Manzana Group
MCBMSS
 
459 / 186 (7) ++++++
Регистрация: 11.09.2007
Записей в блоге: 6
в ценообразовании по атрибутам партий
__________________
Sometimes there is a moment as you are awakening - when you become aware of the real world around you, - but you are still dreaming. - You may think you can fly but you do better not try.
Старый 31.01.2015, 09:05   #3  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
спасибо
а есть еще места? я вроде в другом месте видел где-то

Последний раз редактировалось lvan; 31.01.2015 в 09:09.
Старый 31.01.2015, 09:45   #4  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,295 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
В Финансовых отчётах. Колонка есть расчётная. Не помню, как сейчас в 2012 называется, в 2009 колонка с типом Расчёт.
__________________
Михаил Андреев
https://www.amand.ru
Старый 31.01.2015, 19:54   #5  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Не очень понятен вопрос - что имеется ввиду "где можно написать". В коде или в интерфейсе?
В X++ в общем-то в любом месте кода. В конфигураторе продукции, в ГФО - пожалуйста (но в топике указано что помимо конфигуратора). В evalBuf можно. Ну и, в общем, в интерфейсе практически в любом поле можно использовать выражения.
Старый 31.01.2015, 21:23   #6  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
evalBuf, runBuf и XppCompiler.execute - не секурно, исключается
юзеры там напишут drop database и привет
Trustworthy Computing надо
короче хочу калькулятор, но с поддержкой переменных и функций
причем функции свои чтобы можно было добавлять, например в специальном классе чтобы программист написал функцию, и её пользователи могли использовать в формулах

Последний раз редактировалось lvan; 31.01.2015 в 21:31.
Старый 31.01.2015, 21:43   #7  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,508 / 432 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
В 3.0 так можно было делать в зарплатных счётчиках
В 2012 русской зарплаты не видел, но не думаю, что сильно изменилось
__________________
С уважением,
Вячеслав
Старый 31.01.2015, 22:00   #8  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
а подскажите путь в меню или в AOT
а то я с payroll не знаком
Старый 31.01.2015, 22:11   #9  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от lvan Посмотреть сообщение
функции свои чтобы можно было добавлять, например в специальном классе чтобы программист написал функцию, и её пользователи могли использовать в формулах
Насчет переменных что-то не припоминается (опять же исключая конфигуратор продукции), а функции, созданные в отдельным классе, а используемые пользователями есть в стандартном фильтре начиная с DAX2009. Какой-то убогий интерпретатор был в Ax3.0, в том функционале, который был до появления AIF (не помню как это называлось), но там что-то уж очень простое.
Старый 01.02.2015, 22:57   #10  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Если хочется добавлять свои функции, то и интерпретатор надо будет писать свой, а не какой-то уже имеющийся. В инете по запросу expression evaluator можно найти вагон и маленькую тележку примеров, типа этого.
Старый 01.02.2015, 23:10   #11  
ppson is offline
ppson
Участник
Аватар для ppson
Ex AND Project
1C
 
2,102 / 114 (8) +++++
Регистрация: 25.06.2002
Адрес: SPb, Msk
ГФО
Счетчики в зарплате и налогах
пересчет складских единиц
__________________
Старый 02.02.2015, 13:24   #12  
pedrozzz is offline
pedrozzz
Молодой, подающий надежды
Аватар для pedrozzz
MCBMSS
Лучший по профессии 2015
 
164 / 218 (8) ++++++
Регистрация: 18.02.2010
Адрес: Краснодар
Класс ProdMathEvaluator дергается, например, из классов PDSAdvancedPricing* (форма PDSCalculationTable)
__________________
Кононов Пётр
За это сообщение автора поблагодарили: gl00mie (2).
Старый 03.02.2015, 04:43   #13  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
Интерпретатор напишу. Не хочу парсер писать - вроде есть в dll
надо только понять, как его использовать
Старый 03.02.2015, 08:37   #14  
novic is offline
novic
Axapta Retail User
Axapta Retail User
 
168 / 25 (0) +++
Регистрация: 14.04.2005
Счетчики в зарплате
Последовательности расчета - Счетчики
Старый 03.02.2015, 09:11   #15  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
Xlnt framework это называется
Старый 18.03.2015, 03:33   #16  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
Цитата:
Сообщение от lvan Посмотреть сообщение
Интерпретатор напишу. Не хочу парсер писать - вроде есть в dll
надо только понять, как его использовать
написал
выглядит примерно так:

X++:
private anytype evalBinary(Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.BinaryExpression _expr)
{
    switch (true)
    {
        case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.AddExpression :
            return this.evalExpression(_expr.get_Left()) + this.evalExpression(_expr.get_Right());

        case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.SubtractExpression :
            return this.evalExpression(_expr.get_Left()) - this.evalExpression(_expr.get_Right());

        case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.MultiplyExpression :
            return this.evalExpression(_expr.get_Left()) * this.evalExpression(_expr.get_Right());

        case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.DivideExpression :
            return this.evalExpression(_expr.get_Left()) / this.evalExpression(_expr.get_Right());


        case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.OrExpression :
            return this.evalExpression(_expr.get_Left()) || this.evalExpression(_expr.get_Right());

        case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.AndExpression :
            return this.evalExpression(_expr.get_Left()) && this.evalExpression(_expr.get_Right());


        case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.EqualExpression :
            return this.evalExpression(_expr.get_Left()) == this.evalExpression(_expr.get_Right());

        case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.NotEqualExpression :
            return this.evalExpression(_expr.get_Left()) != this.evalExpression(_expr.get_Right());

        case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.LessThanExpression :
            return this.evalExpression(_expr.get_Left()) < this.evalExpression(_expr.get_Right());

        case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.LessThanOrEqualExpression :
            return this.evalExpression(_expr.get_Left()) <= this.evalExpression(_expr.get_Right());

        case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.GreaterThanExpression :
            return this.evalExpression(_expr.get_Left()) > this.evalExpression(_expr.get_Right());

        case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.GreaterThanOrEqualExpression :
            return this.evalExpression(_expr.get_Left()) >= this.evalExpression(_expr.get_Right());

        default:
            type = _expr.GetType();
            throw error(strFmt("Expression %1 not implemented", CLRInterop::getAnyTypeForObject(type.get_Name())));
    }
}
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Опыт: синхронизация справочников через AIF в AX2012 EVGL DAX: Функционал 14 28.08.2020 17:52
Ax3 - Модуль Учет затрат egorych DAX: Функционал 15 12.12.2013 17:58
emeadaxsupport: Inventory closing differences between AX4.0 and AX2012 using weighted average costing method Blog bot DAX Blogs 0 27.12.2012 19:11
axblog4u: Display Web Image Content in Forms using Dynamics AX2012 Blog bot DAX Blogs 0 28.05.2012 19:12
emeadaxsupport: AX2012 and AX2009 or AX4 side by side - AOS performance counters overwritten Blog bot DAX Blogs 0 13.03.2012 18:11

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

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

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