We use below code to compile report at runtime:
Code: Select all
report = new StiReport();
var data = System.IO.File.ReadAllBytes(StiNetCoreHelper.MapPath(this, "Reports/WeaponStatus.mrt"));
report.Load(data);
report.ReferencedAssemblies = new List<string>(report.ReferencedAssemblies)
.Where(x => !x.Equals("System.Windows.Forms.Dll"))
.ToArray();
report.Script = report.Script.Replace("using System.Windows.Forms;", "");
Directory.CreateDirectory(folder);
report.Compile(compiledReportFile);
but at last line when call report.Compile get this exception:
Stimul Ver: 2019.1.1System.NotSupportedException
HResult=0x80131515
Message='DateTimeConverter' is unable to convert 'System.DateTime' to 'System.ComponentModel.Design.Serialization.InstanceDescriptor'.
Source=System.ComponentModel.TypeConverter
StackTrace:
at System.ComponentModel.TypeConverter.GetConvertToException(Object value, Type destinationType)
at System.ComponentModel.TypeConverter.ConvertTo(ITypeDescriptorContext context, CultureInfo culture, Object value, Type destinationType)
at System.ComponentModel.DateTimeConverter.ConvertTo(ITypeDescriptorContext context, CultureInfo culture, Object value, Type destinationType)
at Stimulsoft.Report.CodeDom.StiCodeDomSerializator.GetArgumentsWithParent(Type type, Object value, Object parentValue)
at Stimulsoft.Report.CodeDom.StiCodeDomSerializator.GetObjectCreateExpressionWithParent(Type type, CodeTypeReference createType, Object value, Object parentValue)
at Stimulsoft.Report.CodeDom.StiCodeDomSerializator.GetObjectCreateExpressionWithParent(Type type, Object value, Object parentValue)
at Stimulsoft.Report.CodeDom.StiCodeDomSerializator.AddCreate(Int32 index, String parent, Object value, String name, Type type, Boolean isList)
at Stimulsoft.Report.CodeDom.StiCodeDomSerializator.SerializeProps(StiPropertyInfoCollection props, Boolean isList, String parentName, String referenceName)
at Stimulsoft.Report.CodeDom.StiCodeDomSerializator.Serialize(StiReport report, String name, StiLanguage language, Boolean serializeData, Boolean saveForInheritedReports, Object standaloneReportType)
at Stimulsoft.Report.StiReport.ScriptUpdate(Object standaloneReportType, Boolean allowUseResources)
at Stimulsoft.Report.StiReport.Compile(String path, Stream stream, StiOutputType outputType, Boolean autoCreate, Object standaloneReportType)
at Stimulsoft.Report.StiReport.Compile(String path)
at WebApplication.Controllers.ReportsController.GetReport(String id) in C:\Users\Alireza\Desktop\Web\WebApplication\Controllers\ReportsController.cs:line 59
at Microsoft.Extensions.Internal.ObjectMethodExecutor.Execute(Object target, Object[] parameters)
at Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor.SyncActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeActionMethodAsync>d__12.MoveNext()
OS: Win 10
.Net Core Ver: 2.2.100