各レポートのパラメーターに動的コントロールを使用する ASP.NET Web フォーム アプリ (C#) にレポート モジュールがあります。
これらの動的コントロールは、SQL Server 2008 DB の XML 列から構築されます。
XML 構造:
<Report Parameters>
<Parameter>
<Name>CustomerId</Name>
<Control />
</Parameter>
<Parameter>
<Name>Start Date</Name>
<Control>DDL</Control>
</Parameter>
</Report Parameters>
読みやすくするために多くの要素を省略しました。
要素が空でない場合<Control>
(XML の例の Start Date パラメーターの場合のように)、C# ベースの XSLT 変換により、 my form に適切なコントロールが作成されます。
要素が空の場合<Control>
(CustomerId の場合など)、同じ名前の既存の c# プロパティを使用したい (つまり、C# コードで CustomerId が定義されている)。
これらのパラメーター値 (CustomerId と Start Date) は、レポート データの生成に使用されるストアド プロシージャに渡されます。
C# コードで XPathNavigator と関連するクラスを使用して、空の要素の<Name>
要素を削除し<Control>
ます。
問題は、<Name>
要素が文字列の形式であり、それを C# コード形式にしたいことです (これを説明するより良い方法が思い浮かびません!) つまり、this.CustomerId が必要です (this を「CustomerId」ではなく、文字列ではなくコードであることを示します。
このシステムが時間の経過とともにいくつのレポートを作成するかわからないため、「CustomerId」、次に this.CustomerId などの場合、列挙型または switch ステートメントを構築したくありません。動的コードのポイントを無効にしているようです。
おそらく熟考が必要になると思いますが、これについての知識はほとんどないため、この問題に対する別のアプローチに関するアドバイスやアドバイスを歓迎します.
ありがとう、
リッチ。