2009-05-06 8 views
0

私は、1つの大きな情報テーブルを生成するプログラムを作成しています。テーブルは、2種類の列、数量を含む列、およびプロパティを含む列で構成されています。数量は合計することができる数値であり、プロパティは数量値を表す質的な値です。ユーザーがテーブルのカスタムクエリを作成できるようにする

データがデータベース内のテーブルにある場合、特定のプロパティと量を選択し、選択したプロパティと同じ値を持つ量を合計するクエリを作成できます。

例:

表:

Quanity1 Quanity2 Quanity3 Property1 Property2 Property3 
12   43   12   RED  Long  Rough 
43  23   23   Blue  Short  Smooth 
43  90   34   RED  Fat  Bumpy 

問合せ:

SELECT sum(Quanity1), sum(Quanity2), Property1 FROM Table Group By Property1 

結果:

Quanity1 Quanity2 Property1 
43   23   Blue 
55   133   Red 

私がしたいことは、SQLクエリやそのようなコードを書く方法を知っているユーザーに、これを行うためのグラフィカルインターフェイスを与えることです。表示するプロパティと量を選択するリストボックスのセットなど、選択されたフィールドに合計量を表示するテーブルが表示されます。私は後で、特定の条件に基づいてフィルタリングするなどのアクションのような、他のSQLクエリを実行するためのユーザの機能を追加することもできます。また、後でこれらのユーザークエリに基づいて見栄えのよいレポートを生成する必要があることもわかっています。

私は、一般的にADOと.NETの新機能です。しかし、私はこれを行う最善の方法は、私のデータをSystem.Data.DataTableにエクスポートして、それがRowFilterプロパティの文字列を生成することによってSystem.Data.DataViewを作成するためのインタフェースを作成することだと考えています。ただし、DataTableのフィルタリングと並べ替えだけでなく、大きなマスターテーブルの特定の列のみを含む別のテーブルやビューの生成方法はわかりません。

全体的にこのサウンドは最適ですか、それとも私が検討すべき別の方法がありますか?誰も私はこれを実装する必要がありますどのような具体的なヒントや提案がありますか?私はLINQでこれが簡単にできるかどうかも疑問を呈していました。

更新 は、私がアクセスまたは他の利用可能なツールを使用しての提案に感謝し、それは本当にオプションではありません。アクセスはあまりにも複雑で、ここでユーザーが理解しようとすると、実際にはもっと必要です。私は常に上級ユーザーのためのオプションとしてAccessを残したいと思います。しかし、ユーザーが希望する列を選択し、ソフトウェアが自動的に適切な列を選択して合計するビュー/クエリを作成する、基本的なクエリ機能をセットアップしたいと思います。

複雑であることを除けば、Accessのもう1つの問題は、データ構造内の何かを変更してレポートの変更を見ることが多くのクリックにあります。私はユーザーが何かを変えたり、アクセスするために再エクスポートしたり、別のプログラムを開いたりして、レポートを開いてその変更の効果を確認する必要はありません。

答えて

2

車輪を再発明するのではなく、既製のクエリツールを購入することを検討してください。この種のことを行うことができる最も安価なものは、ExcelのMS AccessまたはMSQueryです。レポートビルダ(データベースがSQL Serverをベースにしている場合は、これを無料で利用できます)や、Business ObjectsやBrioなどのサードパーティのツールを使用すると、より綿密にレポートビルダを使用できます。

緊密に統合されていなければ、独自のアドホッククエリツールを構築するよりもはるかに簡単です。

0

私は強くお勧めです - 特に早い段階で。後で明らかになった場合は、ユーザがあなたにカスタムソリューションを書く必要があります。しかし、これは早い段階で、あなたが費やす時間と努力の価値があるとは思いません。