2012-04-23 3 views
0

私は現在、ユーザーがGUIを使って独自のSQLクエリを "ビルド"できるシステムを構築しています。Crystal ReportsのようなコントロールをC#で動的データで塗りつぶす

私は、ユーザーがフルコントロールの上に持っているので(クエリから返される何列かわからないのでなど

を報告クリスタルレポート、レポートビューアまたはTelerikなどのレポートに結果を表示する必要が

どの列を選択するか)、このデータをレポートに表示することが可能かどうかを知る必要があります。

私の質問です:どの列が実際に返されたり表示されるのかを知らずに、クエリの結果をレポートコントロールに表示できますか?そしてどうやって?

答えて

1

ウェブアプリケーションまたはデスクトップ?私は、これはあなたが私が前に、次のようなものを使用しているWebアプリケーションのためではなく、中に探しているまさにだとは思わない

:これが最善のアプローチであれば

SqlDataReader reader = cmd.ExecuteReader(); 
List<string> cols = new List<string>(); 
for (int i = 0; i < reader.FieldCount; i++) 
{ 
    cols.Add(reader.GetName(i)); 
} 

StringBuilder sb = new StringBuilder(); 
sb.Append("<table><tr>"); 
foreach (string s in cols) 
{ 
    sb.Append("<th>"+s+"</th>"); 
} 
sb.Append("</tr>"); 

while (reader.Read()) 
{ 
    sb.Append("<tr>"); 
    foreach (string s in cols) 
    { 
     sb.Append("<td>"+reader[s]+"</td>"); 
    } 
sb.Append("</tr>"); 

} 
sb.Append("</table>"); 

知りません。書式設定とすべての機能を備えたエクセルエクステンションを提供すれば、Excelのような便利な機能がhtmlテーブルを開くことができるので、Excelのオプションを簡単に開くことができます。

デスクトップの場合は、データグリッドに列を追加してから、ブラウザウィンドウでhmtlを開いたり開くことができます。

古典的なASPのために実際には別があるので、あなたが必要なものだけ持って答え:これは私のために動作するかどうかの答えのための

https://stackoverflow.com/a/1662143/359135

+0

おかげで、私が表示されます。それはWebアプリケーションですが、ASPです。だから私はあなたのデスクトップのアプローチを使用してC#の部分を処理する必要があります。 – Pieter888

+0

私は古典的なASPで何度も同じことをやってきました。私は良いリファレンスを探して答えを更新します – gordatron

関連する問題