Can we use Active Reports 7.0 in C++/CLI? I have just started using active reports. I tried building a report in C# without any problem. I tried doing the same in C++/CLI, but I am unable to use the Active reports toolbox. And also when running the application, it is giving licensing errors.
1 に答える
コードベースで生成するデザイナーは、C++/CLI では機能しません。また、C++ を使用してレポート内に「スクリプト」を記述することもできません。ただし、代わりにXML ベースのレポート (rpx)としてレポートを設計できます。そうすれば、 SectionReportクラス (たとえば)を介して C++ からレポートをインスタンス化して呼び出すときに問題が発生することはありません。次のようなもの:
GrapeCity::ActiveReports::SectionReport ^sectionReport = gcnew GrapeCity::ActiveReports::SectionReport();
System::Xml::XmlTextReader ^xtr = new System::Xml::XmlTextReader("..\\..\\rptScript.rpx");
sectionReport->LoadLayout(xtr);
xtr->Close();
viewer1->LoadDocument(sectionReport);
...
ActiveReports のユーザーはほとんどが C# と VB.NET のユーザーであるため、C++ コードのサンプルは見つかりませんが、コードを C# から C++/CLI に変換するのは簡単なことです。
この例は PageReport ではなくSectionReportに基づいていますが、 PageReport は完全に xml ベースであるため、簡単に動作するはずです。
明確にするために、C++ のみのソリューションが必要な場合は、次の手順を実行する必要があります。
ActiveReports のインストール時にスタート メニューにインストールされる「スタンドアロン」デザイナー アプリケーションを使用して、レポートを XML ベースのレポート (*.rpx ファイル) として作成します。レポートはスタンドアロンの独立した .rpx ファイルとして保存できるため、C#/VB.NET DLL を使用する必要はありません。上記のコード例に示されているように、C++ から直接ファイルから .rpx ファイルを読み込むことができます (たとえば)。
この手法では C# または VB.NET DLL/EXE は必要ありませんが、スタンドアロンの .rpx レポート ファイル内でスクリプト機能を使用する場合、スクリプトは C# または VB スクリプトである必要があります。ただし、自分でコンパイルする必要はありません。ActiveReports がスクリプトを内部で処理します。