0

SAP Crystal Server 2011 と通信するために必要なさまざまなプラグインがインストールされた Visual Studio 2010 を使用しています。

これを、返された InfoObject を ReportDocument.Load にロードしようとするまで動作しているように見える CrystalReportViewer コンポーネントと統合しようとしています。常に次を返します。

不明なエラー 0x80040200。

どんなアイデアでも大歓迎です。私は少し途方に暮れています。これを行う方法に関する他の提案も取り入れます。

明確にするために。ログオンは正常に機能し、InfoObject は有効です (Response.Write は正しい ID とレポートのタイトルを返します)。

SessionMgr ceSessionMgr = new SessionMgr();
EnterpriseSession ceSession = ceSessionMgr.Logon(ConfigurationManager.AppSettings["CrystalUser"].ToString(), ConfigurationManager.AppSettings["CrystalPassword"].ToString(), ConfigurationManager.AppSettings["CrystalServer"].ToString(), "Enterprise");
EnterpriseService ceEnterpriseService = ceSession.GetService("", "InfoStore");
InfoStore ceInfoStore = new InfoStore(ceEnterpriseService);

PluginManager cePluginMgr = ceInfoStore.PluginManager;
PluginInfo ceReportPlugin = cePluginMgr.GetPlugins("Desktop")["CrystalEnterprise.Report"];

InfoObjects ceInfoObjects = ceInfoStore.Query("SELECT * FROM CI_INFOOBJECTS WHERE SI_PROGID='CrystalEnterprise.Report' AND SI_ID=" + Convert.ToInt32(Request["ReportID"]));

InfoObject ceInfoObject = ceInfoObjects[1];

Response.Write(ceInfoObject.ID.ToString() + " = " + ceInfoObject.Title + "<br/>");

CrystalDecisions.CrystalReports.Engine.ReportDocument ceReportDocument = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
ceReportDocument.Load(ceInfoObject, ceSession);

CrystalReportViewer1.Visible = true;
CrystalReportViewer1.EnterpriseLogon = ceSession;
CrystalReportViewer1.ReportSource = ceReportDocument;
4

1 に答える 1

1

代わりに RAS サーバーを使用して、これを回避する必要がありました。Docsによると、上記が機能しない理由がわかりません。

// View the report using page server
PSReportFactory yPSReportFactory = (PSReportFactory)ceSession.GetService("PSReportFactory").Interface;
myReportSource = myPSReportFactory.OpenReportSource(ReportID);
//place the report source in session for use with postbacks
Session.Add("ReportSource", myReportSource);

CrystalReportViewer1.EnterpriseLogon = ceSession;
CrystalReportViewer1.ReportSource = myReportSource;
于 2012-11-05T15:55:13.223 に答える