MESCIUS InputMan for ASP.NET 10.0J
書式の設定

数値コントロールの特長的な機能である数値書式の設定と活用について解説します。

概要の説明



数値コントロールの書式は、FormatプロパティとDisplayFormatプロパティが参照するNumberFormatオブジェクトおよびNumberDisplayFormatを使って設定します。このオブジェクトの5つのプロパティ(DigitPositivePrefixPositiveSuffixNegativePrefixNegativeSuffix)にキーワードを設定することで、書式を作成します。

1.リテラル文字列

数値コントロールには、キーワード以外の文字列をリテラル文字列として表示させることができます。ただし、リテラル文字列のみをFormatプロパティまたはDisplayFormatプロパティに設定することはできません。また、キーワードをリテラル文字として表示させるには、キーワードの前に円記号(\、Chr(92))を付けます。円記号を表示させる場合は \\ とします。

2. フィールド

数値コントロールのフィールドには、次の2種類があります。これらのフィールドのほかにリテラル文字列を設定することもできます。

3. 入力と表示の桁数が異なる場合

NumberFormat.DigitプロパティとNumberDisplayFormat.Digitプロパティの設定値は、互いの書式の桁数が異なる場合でも、Valueプロパティの値には影響を与えません。

たとえば、NumberDisplayFormat.Digitプロパティに設定された書式の小数部の桁数が、NumberFormat.Digitプロパティの小数部の桁数よりも少ない場合、フォーカス喪失時に0として表示されることがあります。この場合でも、Valueプロパティには元の値が保持されます。
入力書式
数値コントロールの入力書式は、Formatプロパティが参照するNumberFormatオブジェクトを使って設定します。このオブジェクトの5つのプロパティにキーワードとリテラル文字列を設定することで、入力書式を作成します。

NumberFormatのプロパティ 説明
Digit 数値の桁数、および小数点と桁区切り記号の位置を設定します。リテラル文字列は設定できません。
PositivePrefix 正の数値の前に配置する通貨記号などのリテラル文字を設定します。
PositiveSuffix 正の数値の後に配置するリテラル文字を設定します。
NegativePrefix 負の数値の前に配置する通貨記号や負号などのリテラル文字を設定します。また、NegativeColorプロパティを使って負の数値の表示色を設定することもできます。
NegativeSuffix 負の数値の後に配置するリテラル文字を設定します。

上記の各プロパティを空の文字列(""またはString.Empty)に設定すると、数値コントロールの動作は次のようになります。デフォルトでは、Digit、NegativePrefix以外のすべてのプロパティが空の文字列に設定されています。

対象となるプロパティ 数値コントロールの動作
Digit DisplayFormatプロパティで設定したDigitの書式が適用されます。
PositivePrefix 数値の前には何も表示されません。
(通貨記号も表示されません)
PositiveSuffix 数値の後には何も表示されません。
NegativePrefix 数値の前には何も表示されません。
(負号も通貨記号も表示されません)
NegativeSuffix 数値の後には何も表示されません。

入力書式で使用できるキーワードは以下のとおりです。なお、各キーワードは特定のプロパティでしか使用できません。各キーワードを使用できるプロパティは、下表内の「対象」に記載しています。

キーワード 説明
# 数値の桁を指定します。値が0の場合は何も表示されません。
(対象:Digit)
0 数値の桁を指定します。値が0の場合は0を表示します。
(対象:Digit)
.(ピリオド) 小数点の表示位置を指定するプレースホルダです。実際に表示される小数点は、DecimalPointプロパティで設定します。
(対象:Digit)
,(コンマ) 桁区切り記号の表示位置を指定するプレースホルダです。実際に表示される桁区切り記号は、Separatorプロパティで設定します。
(対象:Digit)
$ 通貨記号の表示位置を指定するプレースホルダです。実際に表示される通貨記号は、CurrencySymbolプロパティで設定します。
(対象:PositivePrefix、NegativePrefix)
\ キーワードをリテラル文字として表示させます。
(対象:Digit以外のすべての有効なプロパティ)

以下に、Digitプロパティで設定可能な数値書式の設定例をいくつか上げます。

書式 表記例 説明
##.## 10
10.1
99.99
整数部2桁、少数部2桁を表します。値が 0 の時は何も表示されません。
#0.## 0
10.1
99.99
整数部2桁、少数部2桁を表します。値が 0 の時は 0 が表示されます。
00 00
99
整数部2桁を表します。
値が1桁の場合には、十の位には 0 が表示されます。
###,##0 0
100,000
整数部6桁を表します。千の位には区切り記号が表示されます。
表示書式
数値コントロールの表示書式は、DisplayFormatプロパティが参照するNumberDisplayFormatオブジェクトを使って設定します。このオブジェクトの7つのプロパティにキーワードとリテラル文字列を設定することで、表示書式を作成します。

NumberDisplayFormatのプロパティ 説明
Digit 数値の桁数、および小数点と桁区切り記号の位置を設定します。リテラル文字列は設定できません。
PositivePrefix 正の数値の前に配置する通貨記号などのリテラル文字を設定します。
PositiveSuffix 正の数値の後に配置するリテラル文字を設定します。
NegativePrefix 負の数値の前に配置する通貨記号や負号などのリテラル文字を設定します。また、NegativeColorプロパティを使って負の数値の表示色を設定することもできます。
NegativeSuffix 負の数値の後に配置するリテラル文字を設定します。

上記の各プロパティを空の文字列(""またはString.Empty)に設定すると、数値コントロールの動作は次のようになります。デフォルトでは、Digit、NegativePrefix、およびNull以外のすべてのプロパティが空の文字列に設定されています。

対象となるプロパティ 数値コントロールの動作
Digit Formatプロパティで設定したDigitの書式が適用されます。
PositivePrefix 数値の前には何も表示されません。
(通貨記号も表示されません)
PositiveSuffix 数値の後には何も表示されません。
NegativePrefix 数値の前には何も表示されません。
(負号も通貨記号も表示されません)
NegativeSuffix 数値の後には何も表示されません。

表示書式で使用できるキーワードは以下のとおりです。なお、各キーワードは特定のプロパティでしか使用できません。各キーワードを使用できるプロパティは、下表内の「対象」に記載しています。

キーワード 説明
# 数値の桁を指定します。値が0の場合は何も表示されません。
(対象:Digit)
0 数値の桁を指定します。値が0の場合は0を表示します。
(対象:Digit)
.(ピリオド) 小数点の表示位置を指定するプレースホルダです。実際に表示される小数点は、DecimalPointプロパティで設定します。
(対象:Digit)
,(コンマ) 桁区切り記号の表示位置を指定するプレースホルダです。実際に表示される桁区切り記号は、Separatorプロパティで設定します。
(対象:Digit)
[DBNum1]G 数値を漢数字で表示します。(例:一億二千三百四十五万六千七百八十九)
(対象:Digit)
[DBNum2]G 数字を漢数字(大字)で表示します。(例:壱億弐阡参百四拾伍萬六阡七百八拾九)
(対象:Digit)
[DBNum3]G 数字を漢数字と全角の数字を組み合わせて表示します。(例:1億2千3百4十5万6千7百8十9)
(対象:Digit)
[DBNum4]G 小数点以下の数字を漢数字を使って表示します。(例:〇.九分八厘七毛六糸五忽四微三纖二沙一塵)
(対象:Digit)
$ 通貨記号の表示位置を指定するプレースホルダです。実際に表示される通貨記号は、CurrencySymbolプロパティで設定します。
(対象:PositivePrefix、NegativePrefix)
\ キーワードをリテラル文字として表示させます。
(対象:Digit以外のすべての有効なプロパティ)

以下に、Digitプロパティで設定可能な数値書式の設定例をいくつか上げます。

書式 表記例 説明
##.## 10
10.1
99.99
整数部2桁、少数部2桁を表します。値が 0 の時は何も表示されません。
#0.## 0
10.1
99.99
整数部2桁、少数部2桁を表します。値が 0 の時は 0 が表示されます。
00 00
99
整数部2桁を表します。
値が1桁の場合には、十の位には 0 が表示されます。
###,##0 0
100,000
整数部6桁を表します。千の位には区切り記号が表示されます。
###.###[###:千] 123千
12,345千
下の3桁を文字列"千"に置き換えます。
サンプルコード
次のサンプルコードは、FormatプロパティとDisplayFormatプロパティを使って数値書式を設定する方法を示します。
' 入力書式の設定
GcNumber1.Format.Digit = "######.##"
GcNumber1.Format.PositivePrefix = "+"
GcNumber1.Format.NegativePrefix = "-"
GcNumber1.Format.PositiveSuffix = ""
GcNumber1.Format.NegativeSuffix = ""

' 表示書式の設定
GcNumber1.DisplayFormat.Digit = "###,##0.00"
GcNumber1.DisplayFormat.PositivePrefix = "$"
GcNumber1.DisplayFormat.NegativePrefix = "$-"
GcNumber1.DisplayFormat.PositiveSuffix = "(税別)"
GcNumber1.DisplayFormat.NegativeSuffix = "(税別)"

' 記号などの設定
GcNumber1.CurrencySymbol = "\"
GcNumber1.DecimalPoint = "."
GcNumber1.Separator = ","
GcNumber1.NegativeColor = Color.Red

' 入力許可範囲の設定
GcNumber1.MinValue = -99999.99D
GcNumber1.MaxValue = 99999.99D
// 入力書式の設定
GcNumber1.Format.Digit = "######.##";
GcNumber1.Format.PositivePrefix = "+";
GcNumber1.Format.NegativePrefix = "-";
GcNumber1.Format.PositiveSuffix = "";
GcNumber1.Format.NegativeSuffix = "";

// 表示書式の設定
GcNumber1.DisplayFormat.Digit = "###,##0.00";
GcNumber1.DisplayFormat.PositivePrefix = "$";
GcNumber1.DisplayFormat.NegativePrefix = "$-";
GcNumber1.DisplayFormat.PositiveSuffix = "(税別)";
GcNumber1.DisplayFormat.NegativeSuffix = "(税別)";

// 記号などの設定
GcNumber1.CurrencySymbol = "\\";
GcNumber1.DecimalPoint = '.';
GcNumber1.Separator = ',';
GcNumber1.NegativeColor = Color.Red;

// 入力許可範囲の設定
GcNumber1.MinValue = -99999.99M;
GcNumber1.MaxValue = 99999.99M;

次のサンプルコードは、上記と同じ設定をNumberFormatオブジェクトを明示的に生成することで行います。
Imports GrapeCity.Web.Input.IMNumber

' 入力書式の設定
GcNumber1.Format = New NumberFormat("######.##", "+", "-", "", "")

' 表示書式の設定
GcNumber1.DisplayFormat = New NumberDisplayFormat("###,##0.00", "$", "$-", "(税別)", "(税別)")

' 記号などの設定
GcNumber1.CurrencySymbol = "\"
GcNumber1.DecimalPoint = "."
GcNumber1.Separator = ","
GcNumber1.NegativeColor = Color.Red

' 入力許可範囲の設定
GcNumber1.MinValue = -99999.99D
GcNumber1.MaxValue = 99999.99D
using GrapeCity.Web.Input.IMNumber;

// 入力書式の設定
GcNumber1.Format = new NumberFormat("######.##", "+", "-", "", "");

// 表示書式の設定
GcNumber1.DisplayFormat = new NumberDisplayFormat("###,##0.00", "$", "$-", "(税別)", "(税別)");

// 記号などの設定
GcNumber1.CurrencySymbol = "\\";
GcNumber1.DecimalPoint = '.';
GcNumber1.Separator = ',';
GcNumber1.NegativeColor = Color.Red;

// 入力許可範囲の設定
GcNumber1.MinValue = -99999.99M;
GcNumber1.MaxValue = 99999.99M;
関連トピック

 

 


© MESCIUS inc. All rights reserved.