Crystal Reportsを初めて使用していて、最新のものを使用していない可能性があります。私たちは主なプログラミング環境としてVS2010/ASP.NETを使用していますが、VS2008でCrystal Reports 2008の統合デザイナを使用しているため、レポートを設計する際に2008に切り替える必要があります。私はパラメータのフィールドをIDEで定義し、それを渡すことで、パラメタをレポートに渡しています。並べ替え可能なGridViewを備えたASP.NET画面があります。データはCrystal Reportに表示されますが、ソート方法と一致させる必要があります。私はGoogleで物事を見て、thisとthis 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を渡す方法を知りませんか?どのような形式ですか?
これは私にとってはうまくいかない。レポートには、ソートされたデータセットが表示されます。 –
Sam Gentileさん、投稿したコードはクリスタルクラスを表示していません。私はあなたの質問にリンクしているスニペットをチェックして、それはかなり簡単に見えます。どこのコードでReportDocumentを定義していますか?ソートを行うことができる場所があると思います。 –