2010-09-28 89 views
0

我有一個數據網格,用戶在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之前,我認爲這是說我的函數沒有返回值的想法但我不明白爲什麼?任何澄清都是值得歡迎的。

回答

0

你的問題有點混亂。用戶如何「輸入不同的值」以「隨後計算」用戶通常不會輸入計算值!

這就是說,這聽起來像你需要一個大的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