FastReport
FastReport copied to clipboard
Null reference exception
I have a problem when i'am trying to create a report with richtextfile block inside. Here is block of richtext
{\colortbl ;\red0\green0\blue0;\red255\green255\blue255;}
{\*\generator Riched20 10.0.19041}\viewkind4\uc1\trowd\trgaph10\trleft-861\trpaddl10\trpaddr10\trpaddfl3\trpaddfr3
\cellx2967\cellx3392\clbrdrt\brdrw10\brdrs\brdrcf2 \cellx7078
\pard\intbl\nowidctlpar\cf1\f0\fs20\'cc\'e8\'ed\'e8\'f1\'f2\'e5\'f0\'f1\'f2\'e2\'ee \'e7\'e4\'f0\'e0\'e2\'ee\'ee\'f5\'f0\'e0\'ed\'e5\'ed\'e8\'ff \'d0\'ee\'f1\'f1\'e8\'e9\'f1\'ea\'ee\'e9 \'d4\'e5\'e4\'e5\'f0\'e0\'f6\'e8\'e8\cell\cell\'ca\'ee\'e4 \'f4\'ee\'f0\'ec\'fb \'ef\'ee \'ce\'ca\'d3\'c4\par
\'ca\'ee\'e4 \'f3\'f7\'f0\'e5\'e6\'e4\'e5\'ed\'e8\'ff \'ef\'ee \'ce\'ca\'cf\'ce\cell\row\trowd\trgaph10\trleft-861\trpaddl10\trpaddr10\trpaddfl3\trpaddfr3
\cellx7078
\pard\intbl\nowidctlpar\qc\par
\'cc\'e5\'e4\'e8\'f6\'e8\'ed\'f1\'ea\'e0\'ff \'e4\'ee\'ea\'f3\'ec\'e5\'ed\'f2\'e0\'f6\'e8\'ff\par
\cell\row\trowd\trgaph10\trleft-861\trpaddl10\trpaddr10\trpaddfl3\trpaddfr3
\cellx2967\clvmgf\cellx3392\clvmgf\cellx7078
\pard\intbl\nowidctlpar\'cd\'e0\'e8\'ec\'e5\'ed\'ee\'e2\'e0\'ed\'e8\'e5 (\'f8\'f2\'e0\'ec\'ef)\par
\'ec\'e5\'e4\'e8\'f6\'e8\'ed\'f1\'ea\'ee\'e9 \'ee\'f0\'e3\'e0\'ed\'e8\'e7\'e0\'f6\'e8\'e8\cell\cell\'d4\'ee\'f0\'ec\'e0 N 107-1/\'f3\par
\'d3\'f2\'e2\'e5\'f0\'e6\'e4\'e5\'ed\'e0 \'ef\'f0\'e8\'ea\'e0\'e7\'ee\'ec\par
\'cc\'e8\'ed\'e8\'f1\'f2\'e5\'f0\'f1\'f2\'e2\'e0 \'e7\'e4\'f0\'e0\'e2\'ee\'ee\'f5\'f0\'e0\'ed\'e5\'ed\'e8\'ff\par
\'d0\'ee\'f1\'f1\'e8\'e9\'f1\'ea\'ee\'e9 \'d4\'e5\'e4\'e5\'f0\'e0\'f6\'e8\'e8\par
\'ee\'f2 24 \'ed\'ee\'ff\'e1\'f0\'ff 2021 \'e3. N 1094\'ed\cell\row\trowd\trgaph10\trleft-861\trrh200\trpaddl10\trpaddr10\trpaddfl3\trpaddfr3
\cellx2967\clvmrg\cellx3392\clvmrg\cellx7078
\pard\intbl\nowidctlpar\cell\cell\cell\row\trowd\trgaph10\trleft-861\trrh1500\trpaddl10\trpaddr10\trpaddfl3\trpaddfr3
\cellx2967\clvmrg\cellx3392\clvmrg\cellx7078
\pard\intbl\nowidctlpar\'cd\'e0\'e8\'ec\'e5\'ed\'ee\'e2\'e0\'ed\'e8\'e5 (\'f8\'f2\'e0\'ec\'ef) \'e8\'ed\'e4\'e8\'e2\'e8\'e4\'f3\'e0\'eb\'fc\'ed\'ee\'e3\'ee \'ef\'f0\'e5\'e4\'ef\'f0\'e8\'ed\'e8\'ec\'e0\'f2\'e5\'eb\'ff (\'f3\'ea\'e0\'e7\'e0\'f2\'fc \'e0\'e4\'f0\'e5\'f1, \'ed\'ee\'ec\'e5\'f0 \'e8 \'e4\'e0\'f2\'f3 \'eb\'e8\'f6\'e5\'ed\'e7\'e8\'e8, \'ed\'e0\'e8\'ec\'e5\'ed\'ee\'e2\'e0\'ed\'e8\'e5 \'ee\'f0\'e3\'e0\'ed\'e0 \'e3\'ee\'f1\'f3\'e4\'e0\'f0\'f1\'f2\'e2\'e5\'ed\'ed\'ee\'e9 \'e2\'eb\'e0\'f1\'f2\'e8, \'e2\'fb\'e4\'e0\'e2\'f8\'e5\'e3\'ee \'eb\'e8\'f6\'e5\'ed\'e7\'e8\'fe)\cell\cell\cell\row
\pard\par
}
Stack Trace
at FastReport.RichTextParser.RTF_DocumentParser.GetFillColor()
at FastReport.RichObject.Convert2ReportObjects(Single& height)
at FastReport.Preview.SourcePages.TranslateRichObjectToBand(RichObject rich)
at FastReport.Preview.SourcePages.RichObjectTranslation(Base source, Base parent)
at FastReport.Preview.SourcePages.CloneObjects(Base source, Base parent)
at FastReport.Preview.SourcePages.CloneObjects(Base source, Base parent)
at FastReport.Preview.SourcePages.CloneObjects(Base source, Base parent)
at FastReport.Preview.SourcePages.Add(ReportPage page)
at FastReport.Preview.PreparedPages.AddSourcePage(ReportPage page)
at FastReport.Engine.ReportEngine.InitializePages()
at FastReport.Engine.ReportEngine.PrepareToFirstPass(Boolean append)
at FastReport.Engine.ReportEngine.Run(Boolean runDialogs, Boolean append, Boolean resetDataState, ReportPage page)
at FastReport.Engine.ReportEngine.Run(Boolean runDialogs, Boolean append, Boolean resetDataState)
at FastReport.Report.Prepare(Boolean append)
at FastReport.Report.Prepare()
It happends because you missed null check here: this.curr_page.Page.sequence.objects[0].pargraph.runs ? .Count
Hello!
Most likely the problem is in the RTF text Here is an example with which everything works:
{\rtf1\ansi\deff0\nouicompat{\fonttbl{\f0\fnil\fcharset0 Courier New;}}
{\colortbl ;\red128\green128\blue0;}
{\*\generator Riched20 10.0.19041}\viewkind4\uc1
\pard\highlight1\f0\fs22\lang1033 lfelf;lef;lelfe\fs44\par
fefef\super\strike\par
\fs22 ef\par
ewf\par
f\par
efe\par
fe\par
f\par
\nosupersub\strike0 efe\par
f\par
\b efe\par
f\par
}
Best regards Marat