2

.rdlcレポートの作成に問題があります。このレポートのポイントは、バス路線の乗客数を表示することです(その路線の各駅の乗客数が含まれています)。DataSetにはストアドプロシージャが含まれています(変更できません)。各ルートのデータは2つの部分で構成されています。最初の部分には特定のルートの駅の名前があり(乗客の数を表す列がありますが、その値はnullです)、2番目の部分には乗客の数が含まれています駅ごとに。この両方の部分は同じストアドプロシージャの結果であり、同じテーブルに表示されます。私が抱えている問題は、ルートごとに駅の数が異なることです。だから私の質問は-特定のルート上のステーションの数に適応するレポート(またはサブレポート)を作成するにはどうすればよいですか(列の数はルート上のステーションの数と同じである必要があります)。ステーション数が異なるルートは、同じレポートに表示する必要があることに注意してください。VS 2010とC#を使用して、このレポートを生成するアプリケーションを作成しています。この問題を手伝ってくれませんか。ありがとう

例残念ながら、特定のデータを公開することは許可されていませんが、必要な情報を提供するために最善を尽くします。ストアドプロシージャの結果は次の構造になります。 Route_ID | Departure | DataType | StationName | Passengers1....Passengers61 レポートはRoute_IDごとにグループ化されています。DataType値は、行に駅の名前(結果の最初の部分)または乗客の数(2番目の部分)が含まれるかどうかを定義します。たとえば、ルートに3つの駅と1つの出発がある場合、グループには4つの行があります。最初の3つにはRoute_ID、DataType、およびStationNameが含まれ(各行には異なるStationNameがあり、最初の2つのパラメーターは同じです)、他の列にはnull値。2番目の部分は、Route_ID、DataType(前の部分とは異なります)、および乗客列の値で構成されます(ここでも、他の列はnullになります)。したがって、最初の部分に行があるのと同じ数の列を持つサブレポートが必要です。これは複雑ですが、問題全体は非常に複雑です。

4

1 に答える 1

1

おそらくあなたが聞きたい答えではありませんが、RDLCで列を動的に作成するのはかなり難しいです(少なくとも私はそれを機能させることができませんでした)。

可能であれば、この(やや汚れた)解決策を提案します。できるだけ多くのステーションを使用してテーブルを作成します。

BUS | StationA | StationB | StationC | StationD | ..
X9Z | 4 people | 5 people | 0 people | 9 people | ..

次に、各ステーション列に可視性式を追加しますiif(StationB > -1, true, false)。列は、値が設定されている場合にのみ表示されます。もちろん、これは、すべてのステーションを事前に定義する(そしてそれらを維持する)必要があることを意味します。したがって、50のステーションがある場合、背後で苦痛になります。

ステーションがたくさんある場合は、Crystal Reportsなどの他のレポートジェネレーターを探すことを個人的にお勧めします(RDLCソリューションを検索するときに頻繁にパスを通過しましたが、私自身はその経験がないことに注意してください)。

データをフォーマットする

編集内容を読んだ後、データセット構造はあまり実用的ではないようです。表示したいものにもっと一致するカスタムオブジェクトを入力し、それをRDLCで使用することをお勧めします。

次の質問はそれを参照しています。Microsoftレポート(.rdlc)のソースとしてカスタムオブジェクトを使用する

このリンクが基本的に答えである場合:http ://www.gotreportviewer.com/objectdatasources/index.html

于 2013-01-22T10:11:05.737 に答える