FastReport icon indicating copy to clipboard operation
FastReport copied to clipboard

Null reference exception

Open yadanilov19 opened this issue 3 years ago • 1 comments

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

yadanilov19 avatar Mar 15 '22 18:03 yadanilov19

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

MaratAlaev avatar Jul 06 '22 10:07 MaratAlaev