2011-12-07 97 views
1

在一個表格中,我有2個字段,其中一個是Decimal#,另一個是Amount(Real)。小數精度

十進制#是從1-5和默認值枚舉具有值將是5.

要求:

1)每當值被選擇爲十進制#字段(1-5),這取決於值來選擇

無小數點的應金額字段被允許。

練習1:如果十進制#= 2

 Amount = 1.24 

練習2:如果小數#= 3

 Amount = 1.521 

練習1:如果十進制#= 4

 Amount = 3.0124 

練習1:如果十進制#= 5

 Amount = 8.02145 

解決方案:我在Decimal#控制級別上編寫了修改方法,因此根據爲Decimal#選擇的值,它將允許Amount字段有很多小數。現在,這很好,工作很好。

但正如上面的例子所示網格的所有記錄的金額場的變化,根據小數#在最新的行中輸入。

單元,第一排:如果小數#= 2,則金額= 1.02

第二行:如果小數#= 3,則金額= 4.623

不過那個時候第一排也需要限制爲3雖然十進制#= 2.

請在這方面指導我。

回答

0

對不起,但有在網格控制不同數量的小數沒有可靠的方法。

當前記錄的改變可能會影響在網格中顯示的其他記錄。

對於一組控制的小數位數很容易像這樣調整:

amountCtrl.noOfDecimals(trans.decimalNo); 

在網格中,你可以嘗試使用一個編輯方法與一個字符串值。你將不得不自己做轉換。

edit DecimalStr amountStr(boolean set = false, DecimalStr _amountStr = '') 
{ 
    if (set) 
    { 
     this.Amount = str2num(_amountStr); 
    } 
    return num2str(this.Amount, 0, this.decimalNo, 1, 0) 
} 

擴展數據類型DecimalStr應該右對齊。

不幸的是str2num只接受句點作爲小數點,不接受千分位器,所以它不是數字轉換的「用戶友好」功能。您可能必須讓您自己考慮地區設置。

+0

嗨一月,感謝您的答覆。我已經試過這一點,是的,它會影響所有在網格中顯示的其他記錄... :( –

+0

回答更新。 –