ASP.netでレポートを作成するのは初めてですが、DBに格納されているものとは異なる方法でデータを表示できるものがあるかどうかを知りたいです。
これが私の例です。Activeという列があり、DBテーブルでは、0はアクティブ、-1は非アクティブを表します。
私のレポートでは、リストがアクティブであるかどうかを示すとき、0と-1ではなくアクティブと非アクティブという言葉を使用したいと思います。
これはカスタム式に含まれていますか?どこから始めたらいいのかわからない...
ASP.netでレポートを作成するのは初めてですが、DBに格納されているものとは異なる方法でデータを表示できるものがあるかどうかを知りたいです。
これが私の例です。Activeという列があり、DBテーブルでは、0はアクティブ、-1は非アクティブを表します。
私のレポートでは、リストがアクティブであるかどうかを示すとき、0と-1ではなくアクティブと非アクティブという言葉を使用したいと思います。
これはカスタム式に含まれていますか?どこから始めたらいいのかわからない...
別の解決策:モデル化したくない場合は、dbクエリを変更し、その列が-1と-0のときに「非アクティブ」と「アクティブ」の文字列を返すのが最も簡単です。MS SQL Serverの場合は、「CASEWHEN...」を使用してこれを行うことができます。
レポートまたはCrystalReportsにSSRSを使用している場合は、実行時にテキストを置き換えることができます。Crystal Reportsでは、IF...ELSE条件を使用して数式フィールドを追加できます。
dbテーブルをクラスオブジェクト表現にモデル化します。例えば:
public class MyDataModel
{
public int Active { get; set; }
public string ActiveDisplay
{
get
{
return (this.Active==-1) ? "Inactive" : "Active";
}
}
}
データベースからデータを取得したら、返されたデータからすべての行をロードするモデルのコレクションを作成します。例えば
var myData = new List<MyDataModel>()
このモデルオブジェクトのコレクションをデータグリッドにバインドし、「Active」プロパティの代わりに「ActiveDisplay」プロパティを表示できるようになりました。