作成日: 2026/03/25 最終更新日: 2026/03/25
文書種別
使用方法
詳細
小数点以下の値を持つ数値をTextBoxコントロールに表示する際に、整数部や小数部の桁数が異なっても、常に同じ位置に小数点を表示したい場合には、PadLeftメソッドを使用して、値の前に空白を出力して位置を調整する方法が考えられます。
具体的な方法は以下をご確認ください。
ただし、いずれの形式についても、当該コントロールのフォントにはプロポーショナルフォントではなく、固定ピッチフォント(等幅フォント)を設定する必要があります。あらかじめご注意ください。
セクションレポートの場合
コントロールを配置したセクションのFormatイベントに、文字列を編集する処理を追加します。
◆サンプルコード (C#)
private void Detail_Format(object sender, EventArgs e)
{
this.TextBox1.Text = PaddingSpace(this.TextBox1.Text);
}
// 整数部の桁数を9桁に設定します。
private string PaddingSpace(string s)
{
string ret = "";
// 文字列内の小数点の位置を取得します。
int i = s.IndexOf(".");
// 文字列を編集します。
if (i > -1)
{
// 【文字列内に小数点が存在する場合】
// 整数部と小数部の文字列をそれぞれ取得します。
string strInteger = s.Substring(0, i);
string strDecimal = s.Substring(i);
// PadLeftメソッドで整数部の文字列長を固定し、小数部と結合します。
ret = strInteger.PadLeft(9, ' ') + strDecimal;
}
else
{
// 【文字列内に小数点が存在しない場合】
// PadLeftメソッドで文字列長を固定します。
ret = s.PadLeft(9, ' ');
}
// 編集結果を返します。
return ret;
}◆サンプルコード (VB.NET)
Private Sub Detail_Format(...) Handles Detail.Format
Me.TextBox1.Text = PaddingSpace(Me.TextBox1.Text)
End Sub
' 整数部の桁数を9桁に設定します。
Private Function PaddingSpace(ByVal s As String) As String
Dim ret As String = ""
' 文字列内の小数点の位置を取得します。
Dim i As Integer = s.IndexOf(".")
' 文字列を編集します。
If i > -1 Then
' 【文字列内に小数点が存在する場合】
' 整数部と小数部の文字列をそれぞれ取得します。
Dim strInteger As String = s.Substring(0, i)
Dim strDecimal As String = s.Substring(i)
' PadLeftメソッドで整数部の文字列長を固定し、小数部と結合します。
ret = strInteger.PadLeft(9, " ") + strDecimal
Else
' 【文字列内に小数点が存在しない場合】
' PadLeftメソッドで文字列長を固定します。
ret = s.PadLeft(9, " ")
End If
' 編集結果を返します。
Return ret
End Function
ページレポート/RDLレポートの場合
文字列を編集する処理をスクリプトとして記述し、それをTextBoxコントロールのValueプロパティから「式」として呼び出します。
具体的には以下のような手順になります。
-
文字列を編集するメソッドをスクリプトとして記述する
レポートのデザイナ画面からスクリプトタブを開き、以下のコードを記述します。
' 整数部の桁数を9桁に設定します。 Public Function PaddingSpace(ByVal s As String) As String Dim ret As String = "" ' 文字列内の小数点の位置を取得します。 Dim i As Integer = s.IndexOf(".") ' 文字列を編集します。 If i > -1 Then ' 【文字列内に小数点が存在する場合】 ' 整数部と小数部の文字列をそれぞれ取得します。 Dim strInteger As String = s.Substring(0, i) Dim strDecimal As String = s.Substring(i) ' PadLeftメソッドで整数部の文字列長を固定し、小数部と結合します。 ret = strInteger.PadLeft(9, " ") + strDecimal Else ' 【文字列内に小数点が存在しない場合】 ' PadLeftメソッドで文字列長を固定します。 ret = s.PadLeft(9, " ") End If ' 編集結果を返します。 Return ret End Function※ページレポート/RDLレポートのスクリプトは、VB.NET形式でしか記述できません。これは、プロジェクト自体がC#であっても同様です。
-
TextBoxコントロールのValueプロパティに「式」を設定する
適用したいTextBoxコントロールのValueプロパティに以下の式を設定します。
=Code.PaddingSpace(Fields!FieldName.Value)なお、この場合、Fields!FieldName.Valueの値は自動的に文字列に変換されます。そのため、Formatプロパティによる書式設定は適用されません。書式を設定したい場合には、以下のように
ToStringメソッドを使用してください。=Code.PaddingSpace(Fields!FieldName.Value.ToString("0.000"))