次のC#コードをIronPythonに変換しようとしていますが、強く型付けされた可変配列を処理する方法がわかりません。このコードは、サーバーサイドSSRSレポートをローカルPDFに書き込むためのテストコードであり、C#で正常に動作します。私はIronPythonのSSRSへの呼び出し - 可変配列の処理方法
streamids = Array.CreateInstance(String, 1)
として配列を設定している場合ので、私の呼び出しは、この
bytes = report.Render("PDF", None, mimeType, encoding, filenameExtension, streamids, warnings)
のように見えます
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Data;
using System.Drawing.Imaging;
using System.Drawing.Printing;
using System.Collections.Generic;
using Microsoft.Reporting.WinForms;
namespace ConsoleBooking
{
class Program
{
static void Main(string[] args)
{
ServerReport report = new ServerReport();
report.ReportServerUrl = new Uri("http://192.168.1.29/ReportServer");
report.ReportPath = "/Report Project Media Bookings/Business";
Warning[] warnings;
string[] streamids;
string mimeType;
string encoding;
string filenameExtension;
byte[] bytes = report.Render(
"PDF", null, out mimeType, out encoding, out filenameExtension,
out streamids, out warnings);
string filename = Path.Combine(Path.GetTempPath(), "business.pdf");
using (FileStream fs = new FileStream(filename, FileMode.Create))
{
fs.Write(bytes, 0, bytes.Length);
}
}
}
}
は、その後、私はこのかなり謎めいた未処理の例外が予想
を返しますStrongBox [str]、strを取得
これはどのようにコードする必要がありますか?
上記の報告書は、任意のパラメータを取りませんが、C#ではこれらは再び、関連レポートで私のために正常に動作します
List<ReportParameter> paramList = new List<ReportParameter>();
paramList.Add(new ReportParameter("pBookingID", "6761", false));
report.SetParameters(paramList);
を使用して追加された - 私はIronPythonのでこれを追加するにはどうすればよいですか?
更新:Jeff Hardyが提案したように、バイト、mimeType、encoding、filenameExtension、streamids、warnings = report.Render( "PDF"、null)を使用して即時呼び出しを取得しますが、解凍する 'エラーが表示されます。任意に配列のサイズを拡張したり、余分なパラメータを追加しても、このエラーは変わりません。何がうまくいかないかを知ることは困難です。何か案は?
おかげで、だから何のコードのように第1の部分になりますか? (変数の初期化と呼び出しのみ) – Cruachan
例を追加しましたが、テストしていません。 –