如何将 web.config (appsettings) 文件中的值获取到我的 rdlc 报告中?我需要在我的 rdlc 发票中显示多个值,它们来自 web.config 文件?我怎样才能上这个?
<add key="siteName" value="desktopapplications" />
<add key="companyName" value="ProSoftware Limited" />
我可以在哪里编写RDLC中的代码以及如何实现上述值?
我知道如何将值从 web.config 获取到.cs页面
string siteName= WebConfigurationManager.AppSettings["siteName"]
它在 rdlc 中是如何工作的?任何帮助谢谢
在 RDLC 设计器的"报表数据"面板中,添加 siteName 和 companyName 的参数。在后面的代码中:
Dim myReport As New LocalReport
Dim params() As ReportParameter = New ReportParameter(1) {}
params(0) = New ReportParameter("siteName", siteName)
params(1) = New ReportParameter("companyName", companyName)
With myReport
.ReportPath = ReportPath '"MyReport.rdlc"
.DataSources.Clear()
.DataSources.Add(mydatasource)
.Refresh()
.SetParameters(params)
End With
来自 Lon Prosser Answer
using (var lr = new LocalReport())
{
var path = Path.Combine(HttpRuntime.AppDomainAppPath, "Report", "MyInvoice.rdlc");
lr.ReportPath = path;
var siteName = ConfigurationManager.AppSettings["siteName"];
var companyName = ConfigurationManager.AppSettings["companyName"];
var @params = new ReportParameter[2];
@params[0] = new ReportParameter("siteName", siteName);
@params[1] = new ReportParameter("companyName",companyName);
var usersinv = db.Invoices.Where(i => i.Id == invoiceid.Id);
var invoice = usersinv.SingleOrDefault();
if (invoice != null)
{
var invoiceitems = db.InvoiceItems.Where(i => i.InvoiceId == invoiceid.Id);
var rd1 = new ReportDataSource("Invoice", usersinv);
var rd2 = new ReportDataSource("InvoiceItems", invoiceitems.ToList());
lr.DataSources.Add(rd1);
lr.DataSources.Add(rd2);
lr.SetParameters(@params);
}
string encoding;
string fileNameExtention;
const string deviceInfo =
"<DeviceInfo>" +
" <OutputFormat>PDF</OutputFormat>" +
" <PageWidth>21cm</PageWidth>" +
" <PageHeight>29.7cm</PageHeight>" +
" <MarginTop>0.0cm</MarginTop>" +
" <MarginLeft>0.0cm</MarginLeft>" +
" <MarginRight>0.0cm</MarginRight>" +
" <MarginBottom>0.0cm</MarginBottom>" +
"</DeviceInfo>";
Microsoft.Reporting.WebForms.Warning[] warnings;
string[] streams;
renderedBytes = lr.Render("PDF",
deviceInfo,
out mimeType,
out encoding,
out fileNameExtention,
out streams,
out warnings);
}
return File(renderedBytes, mimeType);
现在,PDF 发票中的参数将由 web.config 文件调用