组合框执行基于用户选择的不同公式

问题描述:

我有一个数据网格,用户在3个不同的列中放入不同的数字。然后在用户输入每列的每个值后计算这些值。我的数据网格中还有一个组合框组件。我想要这个组合框要做的是根据用户选择的内容执行不同的数学公式。例如,在组合框中,如果用户选择“长”(组合框中的第一个选项),它将执行Column1 *(col2-Col3)-col4 = total列或者如果用户选择“Short”(组合框中的第二个选项) )它执行col1 *(Col3-col2)+ column4 =总列。我会怎么做?我尝试了不同的想法,没有哪个似乎能够工作,因此任何示例或建议都将不胜感激。组合框执行基于用户选择的不同公式

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中显示的所有值都与为该行创建的特定对象相关。你可以把你的计算功能中渲染你的caluclated列,并直接引用你的对象的dataProvider中的项目:

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; 
} 
+0

好了,所以你把我在正确的方向,但我不断收到“功能没有返回值”?生病发布下面的代码。 – Louie 2010-09-30 16:27:25

+0

将代码添加到原始问题中,并且可以更好地格式化。 – JeffryHouser 2010-09-30 18:16:37

+0

好吧,我把它添加到原来的问题。你能解释为什么我在这个函数中得到代码错误1170吗? – Louie 2010-09-30 21:27:54