首页 > 解决方案 > 使用 Dynamic AX 2012 创建简单的计算器

问题描述

我是 Dynamic AX 的新手,我想创建一个带有输入值的简单计算器并以下列形式显示结果:

在此处输入图像描述

标签: axaptax++

解决方案


您的问题非常广泛,因为有很多策略可以解决该任务,但是从您提供的屏幕截图来看,您有一个应该包含所有计算逻辑的类和一个向用户提供 UI 的表单,其中包含两个输入字段和一个应该显示操作结果的输出字段。

所以最简单的解决方案是:

  1. 实现Kalkulator类,该类公开了两个parm设置操作数的方法和四个执行操作并返回结果的方法:addsubtract和。multiplydivide
  2. 在表单中创建该类的私有实例,对其Kalkulator进行初始化,在用户单击其中一个按钮时设置操作数,调用适当的方法来运行操作并在表单字段上输出结果。

因此,假设操作数是整数值(出于演示目的),您TRN_Kalkulator可能看起来像这样:

class TRN_Kalkulator
{
    private int value1;
    private int value2;

    public int parmValue1(int _value = value1)
    {
        value1 = _value;
        return value1;
    }

    public int parmValue2(int _value = value2)
    {
        value2 = _value;
        return value2;
    }

    public int Sum()
    {
        return value1 + value2;
    }

    public int Diff()
    {
        return value1 - value2;
    }

    public int Mult()
    {
        return value1 * value2;
    }

    public int Div()
    {
        return value2 == 0 ? 0 : value1 / value2;
    }

}

在表单的类声明中,您必须声明一个私有实例,TRN_Kalkulator该实例将通过覆盖该init()方法进行初始化:

TRN_Kalkulator calculator;
//...
public void init()
{
    super();
    calculator = new TRN_Kalkulator();
}

最后,当单击其中一个按钮时,您可以通过读取表单字段的值来解析用户输入,设置操作数,运行操作并输出结果。所有这些都是通过覆盖click()每个按钮上的方法来完成的:

// read text values of the textboxes and parse them to integer
int a = str2Int(TxtOperand1.text());
int b = str2Int(TxtOperand2.text());

// set up calculator operands
calculator.parmValue1(a);
calculator.parmValue2(b);

// call the operation depending on which button was clicked
int result = calculator.Sum();

// set result textbox text
TxtResult.text(int2Str(result));

请注意,有很多方法可以改进此代码(例如在表单上使用一些显示编辑方法),您绝对应该这样做,但此实现适合您当前的设置,并且应该为您指明正确的方向。


推荐阅读