2016-04-01 74 views
0

私はDevExpress XtraGridコントロールを持っていますが、セルの1つに10進数を入れたいのですが、セルから別のセルにジャンプしようとすると、もう一度変更しない限り数値の値を整数に変換します。DevExpress XtraGridセルの小数値

[Image of designer]

と何も私はプログラムでこのプロパティを設定Form.Loadイベントで、起こったが、それだけでは動作しませんようだ: は、私はこのような設計からプロパティを変更しました。

colnBase.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric 
colnBase.DisplayFormat.FormatString = "{0:N4}" 

私はDevExpress社のフォーラムをチェックしてきたが、私は答えを見つけることができない、それは私の最初の質問はここにありますので、皆さんのいずれかが私を助けることができる場合、私はそれを本当にいただければ幸いです。

+0

フォーマットが機能しているので、この番号が入っているセルを残そうとすると小数点以下の桁数の整数を入力するだけです。任意のタイプのマスクを入力用に使用していますか? – dcreight

+0

いいえ、私が設定したのはDisplayFormatだけですが、10進数でセルを残そうとすると、私はそれを聞かせません。私のデータテーブルはデザイナーと同じデータ型を持っているので、問題はありません。 –

+0

'colnBase.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom colnBase.DisplayFormat.FormatString =" n4 "'は動作しますか?私はこれをDevExpressのより古いバージョンで使用していて、うまく動作しているようです。 – dcreight

答えて

0

私はバグが私がいたということでした、「問題」に固定ビューからデータを充電し、すべての製品のレコードが0

select 0 as data1, 0 as data2 from Table 

として返さしかし、SQLが整数として番号を返され、私はそれが小数点として宣言された場合でも、XtraGridに値をmodificateすることはできませんでしたようですまたはDataTableの数値XtraGrid。

私はこのようにそれを修正:答えるため

select convert(decimal(18,4),0) as data1, convert(decimal(18,4),0) as Data2 from Table 

みんなありがとう、私は私の過ちから誰か他の人が恩恵を願っています。

0

基礎となるデータソースに間違ったタイプの値を使用しています。あなたのnBaseフィールドの値は、ここでSingleのような浮動小数点数型の1、DoubleDecimalなど
でなければならない例です。

Dim table = New DataTable() 

table.Columns.Add("ID", GetType(Int32)) 
table.Columns.Add("Value", GetType(Single)) '<= If you change the type to Int32 
' then you will not be able to write floating-point number into your cell 

table.Rows.Add(0, 0) 
table.Rows.Add(1, 1.1) 

gridControl.DataSource = table 

gridView1.PopulateColumns() 

Dim displayFormat = gridView1.Columns("Value").DisplayFormat 
displayFormat.FormatType = FormatType.Numeric 
displayFormat.FormatString = "{0:N4}" 
+0

データセット内のシステムデータ型は、グリッドとして10進数です。 –

+0

@MartinOmarUriasLópezあなたの[回答](http://stackoverflow.com/a/36414783/1805640)によれば、基礎となるデータソース(あなたの場合は 'DataTable')に' Int32'値があります。 – nempoBu4

+0

はい、私の設計データセットではDecimalとして値を設定していたので、私はそれを理解できませんでした。そして、私はDSがDSで既に宣言されていたので、 。 –

関連する問題