Ошибка "В данный момент объект используется другим процессом." при рендеринге отчета

Обсуждение Stimulsoft Reports.NET
Ответить
qwerty_ram
Сообщения: 3
Зарегистрирован: 08 ноя 2018, 14:54

Ошибка "В данный момент объект используется другим процессом." при рендеринге отчета

Сообщение qwerty_ram »

Здравствуйте

При попытке рендеринга отчета - вызова метода l_kp.Render(false); в какой то момент выскакиевает исключение:
В данный момент объект используется другим процессом.

В приложенном проекте ошибка воспроизводится.
Отчет работал в версии 2014.3, сейчас используем 2018.3.2

StackTrace:

в System.Drawing.Graphics.get_Transform()
в Stimulsoft.Base.Drawing.StiTextRenderer.DrawTextBase(Graphics g, String& text, Font font, RectangleD bounds, Color foreColor, Color backColor, Double lineSpacing, StiTextHorAlignment horAlign, StiVertAlignment vertAlign, Boolean wordWrap, Boolean rightToLeft, Double scale, Double angle, StringTrimming trimming, Boolean lineLimit, SizeD& measureSize, Boolean needDraw, List`1 textLinesArray, List`1 textLinesInfo, Boolean allowHtmlTags, List`1 outRunsList, List`1 outFontsList, StiTextOptions textOptions) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Base\Drawing\StiTextRender.cs:строка 566
в Stimulsoft.Base.Drawing.StiTextRenderer.MeasureText(Graphics g, String text, Font font, RectangleD bounds, Double lineSpacing, Boolean wordWrap, Boolean rightToLeft, Double scale, Double angle, StringTrimming trimming, Boolean lineLimit, Boolean allowHtmlTags, StiTextOptions textOptions) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Base\Drawing\StiTextRender.cs:строка 487
в Stimulsoft.Report.Components.StiWysiwygTextRender.MeasureString(Double width, Font font, StiText textBox) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Components\StiWysiwygTextRender.cs:строка 143
в Stimulsoft.Report.Components.StiText.GetActualSize() в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Components\SimpleComponents\StiText.cs:строка 1652
в Stimulsoft.Report.Components.StiContainerHelper.CheckSize(StiComponent component) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Components\ComplexComponents\StiContainerHelper.cs:строка 113
в Stimulsoft.Report.Engine.StiContainerV2Builder.InternalRender(StiComponent masterComp) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\Builders\StiContainerV2Builder.cs:строка 233
в Stimulsoft.Report.Components.StiComponent.InternalRender() в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Components\StiComponent.cs:строка 1332
в Stimulsoft.Report.Engine.StiEngine.InternalRenderBand(StiBand band, Boolean ignorePageBreaks, Boolean allowRenderingEvents, Boolean& isChildsEnabled) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 2103
в Stimulsoft.Report.Engine.StiEngine.RenderBand(StiBand band, Boolean ignorePageBreaks, Boolean allowRenderingEvents) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 1896
в Stimulsoft.Report.Engine.StiEngine.RenderBand(StiBand band) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 1856
в Stimulsoft.Report.Engine.StiStaticBandsHelper.RenderPageHeaderBands() в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiStaticBandsHelper.cs:строка 233
в Stimulsoft.Report.Engine.StiStaticBandsHelper.RenderHeaderBeforeTitle() в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiStaticBandsHelper.cs:строка 194
в Stimulsoft.Report.Engine.StiStaticBandsHelper.Render() в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiStaticBandsHelper.cs:строка 93
в Stimulsoft.Report.Engine.StiEngine.NewList(Boolean skipStaticBands) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 425
в Stimulsoft.Report.Engine.StiEngine.NewList() в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 409
в Stimulsoft.Report.Engine.StiEngine.NewPage(Boolean ignoreKeepContainers) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 652
в Stimulsoft.Report.Engine.StiEngine.NewDestination(Boolean ignoreKeepContainers) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 735
в Stimulsoft.Report.Engine.StiEngine.NewDestination() в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 722
в Stimulsoft.Report.Engine.StiEngine.CheckFreeSpace(Double value) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 1741
в Stimulsoft.Report.Engine.StiEngine.CheckFreeSpace(StiContainer container) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 1679
в Stimulsoft.Report.Engine.StiEngine.InternalRenderContainer(StiContainer container, Boolean isPrintAtBottom, Boolean isFooterOnAllPages) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 2582
в Stimulsoft.Report.Engine.StiEngine.RenderContainer(StiContainer container, Boolean isPrintAtBottom, Boolean isFooterOnAllPages) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 2426
в Stimulsoft.Report.Engine.StiEngine.InternalRenderBand(StiBand band, Boolean ignorePageBreaks, Boolean allowRenderingEvents, Boolean& isChildsEnabled) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 2164
в Stimulsoft.Report.Engine.StiEngine.RenderBand(StiBand band, Boolean ignorePageBreaks, Boolean allowRenderingEvents) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 1896
в Stimulsoft.Report.Engine.StiDataBandV2Builder.RenderBand(StiDataBand masterDataBand, StiBand band, Boolean ignorePageBreaks, Boolean allowRenderingEvents) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\Builders\StiDataBandV2Builder.cs:строка 1694
в Stimulsoft.Report.Engine.StiDataBandV2Builder.RenderMaster(StiDataBand masterDataBand) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\Builders\StiDataBandV2Builder.cs:строка 1958
в Stimulsoft.Report.Components.StiDataBand.RenderMaster() в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Components\Bands\StiDataBand.cs:строка 1585
в Stimulsoft.Report.Engine.StiPageHelper.RenderPage(StiPage page) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiPageHelper.cs:строка 458
в Stimulsoft.Report.Engine.StiRenderProviderV2.RenderReport(StiReport report, StiReport masterReport, StiRenderState state) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiRenderProviderV2.cs:строка 1192
в Stimulsoft.Report.Engine.StiRenderProviderV2.Render(StiReport report, StiRenderState state) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiRenderProviderV2.cs:строка 391
в Stimulsoft.Report.Engine.StiReportV2Builder.RenderSingleReport(StiReport masterReport, StiRenderState renderState) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\Builders\StiReportV2Builder.cs:строка 129
в Stimulsoft.Report.StiReport.RenderReport(StiRenderState renderState) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\StiReport.Render.cs:строка 321
в Stimulsoft.Report.StiReport.Render(StiRenderState renderState, StiGuiMode guiMode) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\StiReport.Render.cs:строка 199
в Stimulsoft.Report.StiReport.Render(StiRenderState renderState) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\StiReport.Render.cs:строка 89
в Stimulsoft.Report.StiReport.Render(Boolean showProgress, Int32 fromPage, Int32 toPage) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\StiReport.Render.cs:строка 81
в Stimulsoft.Report.StiReport.Render(Boolean showProgress) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\StiReport.Render.cs:строка 72
в WindowsFormsApplication1.Form1.button1_Click(Object sender, EventArgs e) в c:\Users\boykov\Documents\Visual Studio 2013\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs:строка 28
Вложения
WindowsFormsApplication1.rar
(241.86 КБ) 140 скачиваний
Aleksey
Сообщения: 2761
Зарегистрирован: 22 апр 2010, 06:57

Re: Ошибка "В данный момент объект используется другим процессом." при рендеринге отчета

Сообщение Aleksey »

Здравствуйте,

Необходимо дополнительное время для анализа проблемы.

Спасибо.
qwerty_ram
Сообщения: 3
Зарегистрирован: 08 ноя 2018, 14:54

Re: Ошибка "В данный момент объект используется другим процессом." при рендеринге отчета

Сообщение qwerty_ram »

Хорошо, пока мы решили проблему заменой <TextQuality>Wysiwyg</TextQuality> на <TextQuality>Typographic</TextQuality>
Ivan
Сообщения: 641
Зарегистрирован: 10 авг 2006, 05:40
Откуда: Stimulsoft Office

Re: Ошибка "В данный момент объект используется другим процессом." при рендеринге отчета

Сообщение Ivan »

Здравствуйте.
qwerty_ram писал(а): При попытке рендеринга отчета - вызова метода l_kp.Render(false); в какой то момент выскакиевает исключение:
Проблема решена.
Патч будет включён в следующий билд.
qwerty_ram писал(а): Отчет работал в версии 2014.3, сейчас используем 2018.3.2
Несколько лет назад была добавлена поддержка мультипоточности при включенном кэшировании отчёта для ускорения построения отчёта.
Как оказалось, не предусмотрели вариант использования свойства ShrinkFontToFit.

Спасибо.
qwerty_ram
Сообщения: 3
Зарегистрирован: 08 ноя 2018, 14:54

Re: Ошибка "В данный момент объект используется другим процессом." при рендеринге отчета

Сообщение qwerty_ram »

Ivan писал(а): 14 ноя 2018, 17:52 Здравствуйте.
qwerty_ram писал(а): При попытке рендеринга отчета - вызова метода l_kp.Render(false); в какой то момент выскакиевает исключение:
Проблема решена.
Патч будет включён в следующий билд.
qwerty_ram писал(а): Отчет работал в версии 2014.3, сейчас используем 2018.3.2
Несколько лет назад была добавлена поддержка мультипоточности при включенном кэшировании отчёта для ускорения построения отчёта.
Как оказалось, не предусмотрели вариант использования свойства ShrinkFontToFit.

Спасибо.
Большое спасибо!

Я так понимаю это войдет в билд 2018.3.5?
Можно ли как то из отчета выключить многопоточность обработки?
Aleksey
Сообщения: 2761
Зарегистрирован: 22 апр 2010, 06:57

Re: Ошибка "В данный момент объект используется другим процессом." при рендеринге отчета

Сообщение Aleksey »

Здравствуйте,

Да, следующая опция:
StiOptions.Engine.ReportCache.ThreadMode == StiReportCacheThreadMode.Off;

Спасибо.
Ответить