Axapta 使用Dynamic AX 2012创建简单计算器

Axapta 使用Dynamic AX 2012创建简单计算器,axapta,x++,Axapta,X++,我是Dynamic AX新手,我想创建一个带有输入值的简单计算器,并以以下形式显示结果: 你的问题很难回答,因为有很多策略可以解决这个问题,但从您提供的屏幕截图来看,您有一个类,该类应包含所有计算逻辑,以及一个表单,该表单向用户提供两个输入字段和一个输出字段,该字段应显示操作结果 因此,最简单的解决方案是: 实现Kalkulator类,该类将两个parm方法公开给 设置操作数和四个执行 操作并返回结果:添加,减去,乘和除 在表单中创建Kalkulator类的私有实例, 初始化它,当用户单击其中一

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


你的问题很难回答,因为有很多策略可以解决这个问题,但从您提供的屏幕截图来看,您有一个类,该类应包含所有计算逻辑,以及一个表单,该表单向用户提供两个输入字段和一个输出字段,该字段应显示操作结果

因此,最简单的解决方案是:

  • 实现
    Kalkulator
    类,该类将两个
    parm
    方法公开给 设置操作数和四个执行 操作并返回结果:
    添加
    减去
  • 在表单中创建
    Kalkulator
    类的私有实例, 初始化它,当用户单击其中一个按钮时设置操作数, 调用适当的方法来运行操作并输出结果 在表单字段上
  • 因此,假设操作数是整数值(出于演示目的),您的
    TRN\u 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\u 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));
    

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

    要了解有关表单的更多信息,请看一下名为“Tutorial_uu2;fx”的表单<代码>教程\u表单\u控件。你需要用你尝试过的和没有成功的来扩展你的问题。非常感谢你,事实上我已经创建了第一点,但我可以执行它,你的答案非常有用。当然,如果你的两个控件是
    FormRealControl
    ,你可以使用
    operan1.realValue()
    直接获取值。