私の質問は重複した質問のようですが、ここで奇妙な問題があります。RDLCレポートをPDF形式にレンダリングするWebアプリケーションがあります。これには、コードで設定されるパラメーターがあり、レポートに追加してPDFにレンダリングします。私はこのコードビハインドを持っています:
LocalReport rep = new LocalReport();
rep.ReportPath = "ReimbursementClaimForm.rdlc";
List<ReportParameter> param = new List<ReportParameter>();
param.Add(new ReportParameter("NameofthePatient", txtNameofthePatient.Text));
param.Add(new ReportParameter("MBASIDNo", txtMBASIDNo.Text));
param.Add(new ReportParameter("DateofBirth", string.Format("{0:dd MMMM, yyyy}", Convert.ToDateTime(txtDateofBirth.Text))));
param.Add(new ReportParameter("CompleteHomeAddress", txtCompleteHomeAddress.Text));
param.Add(new ReportParameter("EmailAddress", txtEmailAddress.Text));
param.Add(new ReportParameter("ContactNos", txtContactNos.Text));
param.Add(new ReportParameter("ExpenseClaim", txtExpenseClaim.Text));
param.Add(new ReportParameter("AccountHolderName", txtAccountHolderName.Text));
param.Add(new ReportParameter("AccountHolderName2", txtAccountHolderName2.Text));
param.Add(new ReportParameter("AccountNoandAccountType", txtAccountNoandAccountType.Text));
param.Add(new ReportParameter("BankName", txtBankName.Text));
param.Add(new ReportParameter("BankBranch", txtBankBranch.Text));
param.Add(new ReportParameter("BankContactNo", txtBankContactNo.Text));
param.Add(new ReportParameter("BankAddress", txtBankAddress.Text));
param.Add(new ReportParameter("BICSwiftCode", txtBICSwiftCode.Text));
param.Add(new ReportParameter("RTGSCode", txtRTGSCode.Text));
param.Add(new ReportParameter("IBAN", txtIBAN.Text));
rep.SetParameters(param);
rep.DisplayName = "ReimbursementClaimForm";
rep.Refresh();
HttpContext.Current.Response.Buffer = true;
//HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AppendHeader("content-disposition", "attachement filename=" + Rep.DisplayName + ".pdf");
HttpContext.Current.Response.ContentType = "application/PDF";
Warning[] warnings;
string[] streamids;
string mimeType;
string encoding;
string extension;
byte[] bytes = item.Render("Pdf", null, out mimeType, out encoding, out extension, out streamids, out warnings);
HttpContext.Current.Response.BinaryWrite(bytes);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
ここでの問題は、このコードを使用してアプリを展開するたびに、ASP のテキスト ボックスの値から設定された ReportParameter の値が、生成された PDF ファイルに反映されないことです。最初はレンダリングされた値を試しますが、2 回目は PDF で値が更新されません。これは IE および Opera ブラウザーで発生しますが、他のブラウザーでは問題なく、Web アプリが IIS に展開された後は注意してください。ただし、私のローカル マシンでは、すべてのブラウザーで正常に動作します。前もって感謝します。