我正在做一些应用程序开发(CRM解决方案),它需要在运行时以图形方式生成RDLC文件.我怎么做?
使用ASP.NET 4.0,我通过实例化a Microsoft.ReportingServices.RdlObjectModel.Report,设置Code属性并使用the返回流来创建RDLC流RdlSerializer.
然后我将该流传递给ReportViewer,如下所示:
ReportViewer1.LocalReport.LoadReportDefinition(rdlcStream);
Run Code Online (Sandbox Code Playgroud)
如果我没有设置Code属性,我没有收到任何错误,报告显示正确,但是当我Code为需要自定义代码的报告设置属性时,我得到了下面提到的'RequestMinimum' is obsolete错误.
编译表达式时发生意外错误.本机编译器返回值:'[BC40000]'RequestMinimum'已过时:'程序集级声明式安全性已过时,默认情况下不再由CLR强制执行.有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=155570.'.'.
在winforms应用程序中使用Report Viewer控件不会发生此错误.
有没有人见过/解决过这个问题?
我正在尝试使用@CustomerSignRDLC报告中的参数()显示图像(base64字符串)(我从报告中呈现PDF文件,我看到的是PDF文件)
我已经配置了如下图像属性:
选择图像源:Database
使用此字段:
=Convert.FromBase64String(Parameters!CustomerSign.Value)
Run Code Online (Sandbox Code Playgroud)
使用此MIME类型: image/png
并传递参数:
ReportParameter CustomerSign = new ReportParameter("CustomerSign", obj.SignImage);
rptvw.LocalReport.SetParameters(CustomerSign);
Run Code Online (Sandbox Code Playgroud)
但图像显示红十字[X]而不是图像,并没有给出错误!
可能是什么问题?
如何在rdlc报告中的特定行(如15行)之后分页.
如何设置ConsumeContainerWhitespace = true/false.在报告属性我没有找到它.我在report属性中获得了pageSetup,Code,References,Variables.
我想将动态数据集绑定到rdlc.如果我在ASPX文件中使用内联DataSource(静态绑定),我可以查看报告.但是,如果我使用以下代码,报表查看器将继续显示"正在加载..."图像.
我已经检查了数据集名称,如果我将数据集名称更改为"Orders2",则表明我没有提供所需的数据集"Orders".所以,我在表单上添加GridView并测试我的DataSet.数据集包含数据并与GridView很好地显示.
问题只出在报告中,我无法动态地将数据绑定到ReportViewer.请帮我.谢谢.
protected void Page_Load(object sender, EventArgs e)
{
DataSet ds = GetDataSet();
ReportDataSource rds = new ReportDataSource("Orders", ds.Tables[0]);
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.Refresh();
GridView1.DataSource = ds;
GridView1.DataBind();
}
private DataSet GetDataSet()
{
var conString = ConfigurationManager.ConnectionStrings["dotnetConnectionString"];
string strConnString = conString.ConnectionString;
SqlConnection conn = new SqlConnection(strConnString);
conn.Open();
string sql = "Select * FROM Orders";
SqlDataAdapter ad = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
ad.Fill(ds);
return ds;
}
Run Code Online (Sandbox Code Playgroud)
ASPX代码如下:
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<rsweb:ReportViewer ID="ReportViewer1" runat="server" …Run Code Online (Sandbox Code Playgroud) 我在报告中为日期范围添加了两个文本框.要填充文本框中的值,我将参数设置为文本框.
现在,日期范围来自名为DateRange的表单,该表单具有两个DateTimePickers.
如何设置rdlc中的文本框的值等于这些DataTimePickers?
我正在尝试在 ASP.NET 中生成 RDLC 报告,其中数据集的列将是动态的并且仅在运行时确定。
我创建了一个返回 DataTable 的函数,通过在 RDLC 报告向导中选择此函数,我可以成功生成报告。
public DataTable GetTable()
{
// Here we create a DataTable with four columns.
DataTable table = new DataTable();
table.Columns.Add("Dosage", typeof(int));
table.Columns.Add("Drug", typeof(string));
table.Columns.Add("Patient", typeof(string));
table.Columns.Add("Date", typeof(DateTime));
table.Columns.Add("testColumn", typeof(DateTime));
// Here we add five DataRows.
table.Rows.Add(25, "Indocin", "David", DateTime.Now);
table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);
return table;
}
Run Code Online (Sandbox Code Playgroud)


但是,如果我通过填充数据库中的列对函数进行轻微更改,使我的数据表真正动态,则我的函数不会显示在报告向导中。
这是我改变的功能
public DataTable GetTable2()
{
// Here we create a DataTable …Run Code Online (Sandbox Code Playgroud) 我有两个Tablix(表格)和一个数据集.它们与此数据集绑定
Serial No. | Name
______________|________________
SN0003 | Beckham
SN0005 | Henry
SN0012 | Rooney
SN0119 | Ji Sung
SN0200 | Gerrard
Run Code Online (Sandbox Code Playgroud)
在我的报告中,我需要拆分两个tablix它将显示如下...
(在"Up to Buttom"之前它是"从左到右")
Serial No. | Name || Serial No. | Name
______________|________________ || _______________|______________
SN0003 | Beckham || SN0005 | Henry
SN0012 | Rooney || SN0119 | Ji Sung
SN0200 | Gerrard || |
Run Code Online (Sandbox Code Playgroud)
左表是Tablix1,右表是Tablix2
我想对每个tablix使用这个FilterExpression.
= RowNumber(Nothing) mod 2 = 0
Run Code Online (Sandbox Code Playgroud)
for Tablix1(左表)
= RowNumber(Nothing) mod 2 = 1
Run Code Online (Sandbox Code Playgroud)
对于Tablix2(右表)
但这个消息是错误的......
"A FilterExpression for tablix …Run Code Online (Sandbox Code Playgroud) 正如问题所述,我想在 RDLC 报告中添加多个表格。我在几份报告中添加了一张表格。但是不知道如何在一个报表中添加多个表。我正在使用objectsas添加表格DataSource。我的数据库是SQLite.
我发现了一个教程,使rdlc使用object作为datasource 在这里。但这并不能说明多个表。怎么做?
我制作了一份RDLC报告,该报告根据我提供的数据集生成其Tablix.我需要单元格的内容(Tablix中的每个文本框)根据其内容更改其backColor.
例如:
Name | Val
Joe | 80
Lee | 60
Fred | 30
Bill | 57
Run Code Online (Sandbox Code Playgroud)
我有一个小于60的条件应该将其背色改为红色.(因此,30和57将使其背景颜色为红色).
注意:由于它是从数据集加载的,因此无法直接设置.如果我们将条件作为参数传递给rdlc并自行工作,有什么办法吗?
我想将特定图像分配给我的 RDLC 报告,以便生成的收据应带有适当对齐的背景图像,标题和数据应打印到特定区域。