2011-01-11 27 views
0

Crystal Reportsを初めて使用していて、最新のものを使用していない可能性があります。私たちは主なプログラミング環境としてVS2010/ASP.NETを使用していますが、VS2008でCrystal Reports 2008の統合デザイナを使用しているため、レポートを設計する際に2008に切り替える必要があります。私はパラメータのフィールドをIDEで定義し、それを渡すことで、パラメタをレポートに渡しています。並べ替え可能なGridViewを備えたASP.NET画面があります。データはCrystal Reportに表示されますが、ソート方法と一致させる必要があります。私はGoogleで物事を見て、thisthis articleを見つけました。私はこれらのコードスニペットの使い方を理解できません。私たちの最善の策は、Crystal Reportsオブジェクトが利用できるC#の唯一の場所である「レポートコントローラ」クラスのようです。クラスは次のようになります:Crystal Reportsパラメータで渡された2つのパラメータを使用してプログラムでソート

これを行うにはどのようにこれらのクラスを使用できますか? 1つのパラメータは並べ替えるフィールドになり、別のパラメータは方向になります。ありがとう。コードで私を示すことは本当に役立ちます。

ティアゴ、私のブラウザはロックされていて、コメントを追加できません。クリスタルコードがある唯一の場所は、各レポートに付随する自動生成されたC#クラスです。たとえば、上で参照されているReports.CRMOCContacts()クラスです。これはツールによって自動生成され、変更することはできません: // ---------------------------------- -------------------------------------------- // //このコードはツールによって生成されたものです。 //ランタイムバージョン:2.0.50727.3603 // //このファイルへの変更は、不正な動作を引き起こす可能性と //コードが再生成された場合に失われてしまいます。 // // -------------------------------------------- ----------------------------------

私が見ReportDocumentをへの参照のみが存在している: 公衆仮想CrystalDecisions.CrystalReports.Engine.ReportDocument CreateReport(){ CRMOCContacts rpt =新しいCRMOCContacts(); rpt.Site = this.Site; return rpt; }

私は何かを考え出しました。 this.ReportをReportDocumentとして扱い、これらのライブラリを追加すると、CRMOCContactsControllerのコードをCrystalコードにすることができます。 CrystalDecisions.Shared; CrystalDecisions.ReportSourceを使用しています。 CrystalDecisions.CrystalReports.Engineを使用しています。

その後、私は何ができる: のFieldDefinition FieldDef = nullを;; FieldDef = this.Report.Database.Tables [0] .Fields []; this.Report.DataDefinition.SortFields [0] .Field = FieldDef; this.Report.DataDefinition.SortFields [0] .SortDirection = CrystalDecisions.Shared.SortDirection.AscendingOrder;

私はsortFieldを渡す方法を知りませんか?どのような形式ですか?

答えて

-1

サム、あなたのヘルパークラスがどのように機能しているかわかりませんでした。 ReportDocumentにデータセットを渡しているようですね。この場合、ReportDocumentにソートされたデータ型を渡すことができ、行の順序が保持されます。

ここでは、データセットをレポートに渡します。これは、ストアドプロシージャから作成され、注文をパラメータとして受け取ります。データセットがソートされるので、ソートされた情報もレポートに表示されます。

+0

これは私にとってはうまくいかない。レポートには、ソートされたデータセットが表示されます。 –

+0

Sam Gentileさん、投稿したコードはクリスタルクラスを表示していません。私はあなたの質問にリンクしているスニペットをチェックして、それはかなり簡単に見えます。どこのコードでReportDocumentを定義していますか?ソートを行うことができる場所があると思います。 –

0
ReportDocument objReport = new ReportDocument(); 
objReport.Load("Your report path"); 
FieldDefinition FieldDef; 
FieldDef = objReport .Database.Tables[0].Fields[sortField]; 
objReport.DataDefinition.SortFields[0].Field = FieldDef; 
objReport.DataDefinition.SortFields[0].SortDirection = CrystalDecisions.Shared.SortDirection.DescendingOrder; 
関連する問題