Crystal Reports と C# を使用してレポートを作成するのは初めてです。クライアントの手当を表示する ac# プログラムを作成しました。今のところ唯一の問題は、フィールドに必要な情報が表示されないことです。テキスト付きの数値を表示したいので、「varchar」データ型を持つテーブルが sql にあります。私の問題は、値に千の区切り記号がある場合にコンマを入れないことです。私が望むのは、値を 25000/day ではなく 25,000/day として表示することです。これまで可能ですか?どのデータ型を使用すればよいですか?
3 に答える
There is no data type supporting your requirement in SQL Server.
A better approach would be to use decimal
for your numbers and a separate column for your text part i.e. /day
. This will help you run queries requiring averages, minimum, maximum on the decimal field. Later you can format it in C# for your reports.
But if you can't change the database then you may split the string in c# based on character "/" and then you may use ToString() for formatting the number with commas. Something on the following lines:
string str = "25000/day";
string[] tempArray = str.Split('/');
double number = 0;
if(double.TryParse(tempArray[0],out number))
{
Console.WriteLine("Invalid Number");
}
Console.WriteLine(number.ToString("###,###.#######") + "/" + tempArray[1]);
string.Format() メソッドを使用してフォーマットしてみてください。
string disp = String.Format( "{ 0:C}", Convert.ToInt32(value.split(@"/")[0])) + @"/" + value.split(@"/")[1];
ここで、値は表示する必要がある値です (つまり、「25000/日」)
HTH。
ToStringを使用して、10 進数として保存し、表示するときに書式設定を行うことはできませんか
string display = value.ToString("N") + "/day";
小数だけを保存するとスペースが少なくて済み、必要に応じて後でフィールドで簡単に計算を行うことができます