Apache flex 根据用户选择执行不同公式的组合框

Apache flex 根据用户选择执行不同公式的组合框,apache-flex,datagrid,flex3,combobox,Apache Flex,Datagrid,Flex3,Combobox,我有一个datagrid,用户为3个不同的列输入不同的数字。然后,在用户为每列输入每个值后,计算这些值。我的datagrid中还有一个combobox组件。我想让这个组合框根据用户的选择执行不同的数学公式。例如,在组合框中,如果用户选择“Long”(组合框中的第一个选项),它将执行Column1*(col2-Col3)-col4=total列;如果用户选择“Short”(组合框中的第二个选项),它将执行col1*(Col3-col2)+column4=total列。我该怎么做?我尝试过不同的想法

我有一个datagrid,用户为3个不同的列输入不同的数字。然后,在用户为每列输入每个值后,计算这些值。我的datagrid中还有一个combobox组件。我想让这个组合框根据用户的选择执行不同的数学公式。例如,在组合框中,如果用户选择“Long”(组合框中的第一个选项),它将执行Column1*(col2-Col3)-col4=total列;如果用户选择“Short”(组合框中的第二个选项),它将执行col1*(Col3-col2)+column4=total列。我该怎么做?我尝试过不同的想法,没有一个似乎有效,所以任何例子或建议都将不胜感激

   public function getTotal(item:Object, column:DataGridColumn):String
    {
    switch(comboBox) 
        { 
            case "Long": 
                var sum:int = item.quantity*(item.exit-item.entry)-item.commission;
            return currencyFormatter.format(sum);


            case "Short": 
                sum = item.quantity*(item.entry-item.exit)-item.commission; 
            return currencyFormatter.format(sum);


        }

    }

我接受了你给我的想法,使用函数的参数,但是
就像我之前说的,我一直遇到错误1170。我知道这是说我的函数没有返回值,但我不明白为什么?任何澄清都是非常受欢迎的

你的问题有点让人困惑。用户如何“输入不同的值”,然后“计算”用户通常不输入计算值

也就是说,听起来需要一个大的switch语句来计算值

switch(comboBox.selectedItem) 
{ 
    case ""ong": 
        calculatedValue = Column1*(col2-Col3)-col4; 
        break; 
    case "Short": 
        calculatedValue = col1*(Col3-col2)+column4; 
        break; 
}
我假设DataGrid中显示的所有值都与为该行创建的特定对象相关。您可以将计算函数放入CaluCalated列的渲染器中,并直接引用对象数据提供程序的这些项:

switch(data['comboBoxSelectedItem']) 
{ 
    case ""ong": 
        data['calculatedValue'] = data['Column1Value']*(data['col2Value']-data['Col3Value'])-data['col4Value']; 
        break; 
    case "Short": 
        data['calculatedValue'] = data['col1Value']*(data['Col3Value']-data['col2Value'])+data['column4Value']; 
        break; 
}

好吧,你们把我放在正确的方向上,但我一直得到“函数不返回值”?我将在下面发布代码。将代码添加到原始问题中,格式会更好。好的,我已将其添加到原始问题中。你能解释一下为什么我在这个函数中得到代码错误1170吗?你的函数得到“不会返回”一个值错误,因为值是有条件返回的。无法保证[从Flex编译器]会返回某些内容。在函数末尾添加“return'0”值或类似值。