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