我非常接近完成我的上一份报告并运行。我在任何其他报告中都没有遇到过这个问题。我正在尝试根据数据库记录创建报告。当我通过 LocalReport 创建报告并为报告创建参数时,我收到错误消息“托管调试助手‘PInvokeStackImbalance’:‘调用 PInvoke 函数‘Microsoft.ReportViewer.Common!Microsoft.ReportingServices.Rendering.ImageRenderer。 FontPackage::CreateFontPackage' 使堆栈不平衡。这可能是因为托管 PInvoke 签名与非托管目标签名不匹配。检查 PInvoke 签名的调用约定和参数是否与目标非托管签名匹配。这是我的 MVC 项目的 .rdlc 报告。记录是正确的并且值被插入但是当我去显示它/创建它时报告错误。在 'renderedBytes = localReport.Render(
/* TRACKER_TEST Database Connection ~ Debugging & Testing */
TRACKER_TESTDataSet dataSet = new TRACKER_TESTDataSet();
TRACKER_TESTDataSetTableAdapters.Service_Report_FieldsTableAdapter adapter = new TRACKER_TESTDataSetTableAdapters.Service_Report_FieldsTableAdapter();
LocalReport localReport = new LocalReport();
localReport.ReportPath = Server.MapPath("~/ReportForms/VirtualService2.rdlc");
List<TRACKER_TESTDataSet.Service_Report_FieldsRow> report = new List<TRACKER_TESTDataSet.Service_Report_FieldsRow>();
foreach(var row in list)
{
report.Add(adapter.GetDataBy(row.SN1, row.SN2).First());
}
ReportDataSource rds = new ReportDataSource("Service_Data", report);
localReport.DataSources.Add(rds);
// command specifies whether its a PDF EXCEL WORD IMAGE doc
string reportType = command; …Run Code Online (Sandbox Code Playgroud) 在Visual Studio 2005中,如何在Print-Preview模式下直接在ReportViewer控件中显示报表?
我有一个RDLC报告,并希望此报告表格中的一列显示图像.我的报告的数据源是一个具有名为Image of type的属性的类System.Drawing.Image.
在我的报告中,我将图像控件拖到列上,然后设置以下属性:
MIMEType: image/png
Source: Database
Value: =Fields!Image.Value
Run Code Online (Sandbox Code Playgroud)
当我运行我的报告时,我得到一个破碎的图像.
我真的很感激任何建议!
在此先感谢:o)
我在Visual Studio 2008上创建了我的项目,以及它上面的RDLC文件.但现在,当我在Visual Studio 2010上打开解决方案并想要打开RDLC文件时,它会向我显示警告.
那有点好笑.该报告是在VS2008上创建的,VS2010要求转换为2008格式.也许在我的VS2008安装中出现了一个问题,即使用一些古老的格式创建了RDLC文件(2005 ??!)
问题是,当您使用"确定"按钮确认时,执行一些设计调整并运行应用程序,它会在"主报表"上引发错误:
ex.InnerException
{"The definition of the report 'Main Report' is invalid."}
[Microsoft.Reporting.DefinitionInvalidException]: {"The definition of the report 'Main Report' is invalid."}
Data: {System.Collections.ListDictionaryInternal}
HelpLink: null
InnerException: {"The report definition is not valid. Details: The report definition has an invalid target namespace 'http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition' which cannot be upgraded."}
Message: "The definition of the report 'Main Report' is invalid."
Source: "Microsoft.ReportViewer.Common"
StackTrace: " at Microsoft.Reporting.ReportCompiler.CompileReport(CatalogItemContext context, Byte[] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ReportSnapshotBase& snapshot)\r\n at Microsoft.Reporting.StandalonePreviewStore.StoredReport.CompileReport()\r\n at Microsoft.Reporting.StandalonePreviewStore.StoredReport.get_Snapshot()\r\n …Run Code Online (Sandbox Code Playgroud) 是否可以为RDLC字段后面的表达式编写扩展方法?
例如,假设我的数据源中有一个DateTime字段,该字段可能具有有效值,也可能为null.我将TextBox拖放到我的RDLC上,并使用ToShortDateString()方法格式化其值.这适用于填充的DateTime值,但如果我尝试在NULL字段上执行.ToShortDateString(),这显然也会在运行时抛出异常.
我想知道我是否可以编写一个可以在我的RDLC表达式中使用的扩展方法,这样当我处理?DateTime值时,我可以调用类似.ConvertFromNullToEmptyString()的方法.
当然还有其他方法可以解决这个问题,但我想知道在RDLC表达式中使用的扩展方法是否可能是解决我的业务问题的方法.
谢谢大家!
通过右键单击文本框 - >选择表达式,表达式窗口不需要是可以打开的表达式窗口.文本框具有一些表达式窗口,这些窗口是与字体相关的表达式窗口,与对齐相关的表达式窗口,与可见性相关的表达式窗口,与边界相关的表达式窗口以及与值相关的表达式窗口.
在与值相关的表达式窗口中,我不需要引用当前文本框的值,因为它正是表达式用于文本框的值.但是我想知道是否有办法在文本框的其他表达式窗口中引用此值?或者只是使用文本框的确切值表达式?
例如,文本框的值表达式=Fields!ID.Value在另一个表达式窗口(例如,颜色表达式窗口)中,我希望通过某个关键字引用此值,如果可能的话=IIF(this.Value > 0, "Green", "Red").目前我必须使用文本框的确切表达式,其颜色的表达式如下所示=IIF(Fields!ID.Value > 0, "Green", "Red").
我希望有一种简单的方法可以引用当前文本框的值,而不是通过它的确切表达式,因为有时表达式太长而无法重新键入它,甚至复制 - 粘贴表达式并不比短关键字更好.
谢谢!
我通过主窗口的设计者ReportViewer在WPF应用程序中添加了一个XAML,我想添加一个现有的rdlc文件.
我希望我的reportviewer在启动时显示一个空的rdlc文件(没有参数),稍后从我的datagrid中选择一行(绑定到observablecollection)相应地更改其参数并显示填充的报告定义而不是空的报告定义.
我将创建一个按钮,将所选行作为命令参数和相关事件以及所有内容,我只需要能够将数据传递给报表.我意识到这不是一个简单的问题所以我会尝试简化:
我希望我已经清楚了.谢谢你提前回答!
Visual Studio 2017的最新报表查看器存在一些阻止我们使用它的错误.我们已降级为适用于Web窗体的Microsoft ReportViewer Runtime 2015(v 12.0.2402.15).但是,Visual Studio中的报表设计器以新的"2016"格式创建新报表,甚至编辑旧报表也会将它们升级为新格式.较旧的Report Viewer无法理解新格式和炸弹.
新的报表设计器是Visual Studio的扩展,"Visual Studio的Microsoft Rdlc报表设计器",版本14.2.我们还没有找到设计器的早期版本作为扩展.
我们已经尝试安装早期版本的SQL Set Data Tools,但报表设计器仍然是相同的.我们还没有找到早期报表设计器的单独下载.
有没有办法将旧的报表设计器添加到VS 2017?或者我们是否必须降级到VS 2015?
(此处类似的问题:在Visual Studio 2017中更改RDLC报告的RDL版本)
我们开始使用 Visual Studio 2022,但几天后我们得到了这个可怕的消息:VS2022 不支持 RDLC 设计器。
有解决方法吗?当然我们可以继续并行使用VS2019,但是这太不舒服了。
rdlc ×10
c# ×3
reportviewer ×3
.net-2.0 ×1
.net-3.5 ×1
asp.net ×1
asp.net-mvc ×1
expression ×1
localreport ×1
mvvm ×1
report ×1
winforms ×1
wpf ×1