ActiveReport 12 报Bad code path的错误
请教一下 ActiveReport 12 很随机的报 Bad code path ,可能是由什么原因引起的?Exception details:
System.InvalidOperationException: Bad code path
在 GrapeCity.Enterprise.Data.DataEngine.Extensions.EnumerableExtensions.MemoizedBuffer`1.GetNext(Boolean& hasValue)
在 GrapeCity.Enterprise.Data.DataEngine.Extensions.EnumerableExtensions.MemoizedBuffer`1.<GetEnumerator_>d__9.MoveNext()
在 System.Linq.Enumerable.<SelectManyIterator>d__23`3.MoveNext()
在 GrapeCity.ActiveReports.Extensibility.Rendering.Components.ItemCollectionExtensions.LazyItemCollection`1.CacheItem()
在 GrapeCity.ActiveReports.Extensibility.Rendering.Components.ItemCollectionExtensions.LazyItemCollection`1.<GetEnumerator>d__1.MoveNext()
在 System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
在 System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
在 GrapeCity.ActiveReports.Layout.TocBuilder.CreateToc(IMetadataDictionary metadata, DocumentMapNode node, ILayoutArea area)
在 GrapeCity.ActiveReports.Layout.TocBuilder.Build(IReport report, IMetadataDictionary metadata)
在 GrapeCity.ActiveReports.Layout.PageGenerator.CreatePage(LayoutScope context, Point`1 loc, PaginateResult pageFragment, Boolean isLastPage, Boolean isUpdatePageNumber, Int32 limit)
在 GrapeCity.ActiveReports.Layout.LayoutEngine.<>c__DisplayClassf.<BuildPages>b__a(PaginateResult page, Boolean _, Boolean isLast)
在 GrapeCity.Enterprise.Data.DataEngine.Extensions.EnumerableExtensions.<Select>d__3`2.MoveNext()
在 System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
在 GrapeCity.ActiveReports.Layout.LayoutTree.SetPages(ITargetDevice targetDevice, IEnumerable`1 pages, LayoutNotificationCallback callback)
在 GrapeCity.ActiveReports.Layout.LayoutEngine.BuildLayout(LayoutInfo layoutInfo)
在 #GPr.#RLf.#NNf(IReport report, TargetDeviceCapabilities targetDevice, LayoutNotificationCallback callback)
在 GrapeCity.ActiveReports.Export.Image.Page.ImageRenderingExtension.Render(IReport report, StreamProvider streams, NameValueCollection settings)
在 GrapeCity.ActiveReports.Document.PageDocument.Render(IRenderingExtension renderingExtension, StreamProvider streams, NameValueCollection settings, Boolean forceDataRefresh, Boolean forceParameterDataRefresh, CancellationToken token)
在 GrapeCity.ActiveReports.Viewer.Win.Rdlx.RdlReport.<>c__DisplayClass13.#czz()
在 System.Threading.Tasks.Task.InnerInvoke()
在 System.Threading.Tasks.Task.Execute()
很随机的包,你使用的是矩表中的那个控件,是在报表设计器中报这个问题,还是在项目运行的时候出现这个问题,在设计器中可以正常运行。 KearneyKang 发表于 2019-8-16 13:42
很随机的包,你使用的是矩表中的那个控件,是在报表设计器中报这个问题,还是在项目运行的时候出现这个问题 ...
矩表 Tablix ,是在项目运行过程中,展示时偶然会出现,刷新一下又可以正常显示了,但很随机的不知道什么时候又出现了,更奇怪的是同样的错误还遇到过一闪而过的时候,若不是录屏都看不到这个错误,报表的模板是存放在我的文档的目录下的(每次展示时自动将模板拷贝到该目录,在更新数据源后在展示) 你报表中使用了矩表出现 这个问题的话,那么你使用最新版本的V13看看。V13在矩表方面进行了加强,V13的下载链接:https://downloads.grapecity.com.cn/ActiveReports/13.1/ActiveReports.zip :@ 坑啊,ar16.4又随机报这个错了,从反编译的源码来看应该是内部逻辑有问题,报错位置应该是 Gcef.Data.DataEngine.dll\DataProcessing\TablixImpl.cs :
public static TablixImpl.IdFn<T> MakeIdFn<T>(Func<IEnumerable<T>> getLeafMembers) where T : class
{
IEnumerator<T> iterator = null;
Dictionary<T, int> map = new Dictionary<T, int>(TablixImpl.ObjectRefComparer<T>.Instance);
int index = 0;
return delegate(T member)
{
if (iterator == null)
{
iterator = getLeafMembers().GetEnumerator();
}
int result;
Dictionary<T, int> map;
if (map.TryGetValue(member, out result))
{
return result;
}
while (iterator.MoveNext())
{
T t = iterator.Current;
int index;
if (t == member)
{
index = index;
index++;
return index;
}
map = map;
T key = t;
index = index;
index++;
map = index;
}
throw new InvalidOperationException("Bad code path");
};
} xingtian 发表于 2023-5-26 16:28
坑啊,ar16.4又随机报这个错了,从反编译的源码来看应该是内部逻辑有问题,报错位置应该是 Gcef.Data.Da ...
目前看是代码抛出的错误,为了更高定位问题,方便咱们具体描述一下使用场景,一般报错做了什么操作,具体是预览还是导出还是设计器操作?
其次可以的话,可以给我们上传一个您这边经常报错的报表Demo。 sqlite和报表见附件,随机的报错 xingtian 发表于 2023-5-30 14:15
sqlite和报表见附件,随机的报错
我这边试了好几次,应该都是没有问题的:
要不您试一下我这个Demo,看会不会出现,如果没有,应该还是集成项目影响的,可以进一步对比:
页:
[1]