その場でテーブルを構築することはうまくいくでしょう。私はそのテクニックを頻繁に使用しますが、それは私にはハックのようです。私が使用するのは、ビジネスニーズが「美しい」ではなく「十分に良い」ことと迅速なターンアラウンドを必要とすることが非常に多いためです。
私は自分自身がサードパーティのコンポーネントに対して強い偏見を持っていると言って、これから提案しようとしていることを優先します。
私はほとんどの場合、それらを使用することを拒否し、アップグレード/ライセンスに頻繁に悩まされてきたため、別の解決策を考え出すのに邪魔になります。
そうは言っても...
幸い、.NETでは、すべてのサードパーティコンポーネントをクライアントPCにインストールする必要はありません。XCOPYデプロイメントでは、多くの場合、ソリューションで.DLLまたはプロジェクトを参照し、[常にコピー]または[新しい場合はコピー]オプションを指定して、dll(またはクラスライブラリプロジェクトを参照している場合は結果のdll)を含めることができます。 )そして、.dllが実行可能ファイルと同じディレクトリに存在する限り、サードパーティコンポーネントは機能します。
これらすべてを念頭に置いて、CodeProjectでWindowsフォームからDataGridViewを印刷するために使用したプロジェクトがあります。これは、ソースを取得して参照し、クライアントに実際に何もインストールしなくても使用できるものです。私はそれを複数のアプリで使用しました、そしてそれは私のお気に入りのツールの1つです。
DataGridViewのみが印刷されますが、画面に表示されているとおりに正確に印刷されるため、それが必要な場合は、少なくともチェックアウトすることをお勧めします。
3番目のオプションとして、ASP.NETの使用を検討できます。HTMLを生成する場合は、WinFormsアプリよりもASP.NETを使用して生成するのが同じくらい簡単です(実際には簡単です)。ASP.NETを使用すると、リピーター、リストビューなどを取得できます。これらはすべて、レポートを簡単に作成できるようにします。
主にWinFormsアプリですが、関連するレポートサイトがある実際のアプリが複数あります。
たとえば、小売店で受け入れられているクーポンのスキャンに使用されるWinFormsアプリがあります。COMポートでスキャナーと直接対話する必要があるため、これはWINFormsアプリです。ただし、レポート部分については、ASP.NETWebサイトを設定しました。WinFormsアプリでは、レポートメニューオプションを作成してページをポイントするのは非常に簡単です。私たちのユーザーは一般的に、これが2つの異なるアプリケーションであるという事実についてさえ考えていません。彼らはそれを1つとして見ています-彼らのクーポンスキャンアプリ。
すべてのポイントは、通常、任意のツールで物事を行うことが可能であるということですが、その仕事のために意図されたツールを使用する方がはるかに簡単です。HTMLレポートを生成する場合、ASP.NETはレポートを手動で作成するよりも優れたツールであり、ほとんどのUIにWinFormsアプリが必要な場合でも、それを実行してWebサイトを使用できます。レポート-各タスクに最適なツールを使用します。