rbWiki > Data Access > JIT Data > How To...Access RTF Data via the JITPipeline

How To...Access RTF Data via the JITPipeline

Table of contents
  1. 1. Question 
  2. 2. Solution

Question 

"How can I use a JITPipeline to provide access to a DBRichtext component on my report?" 

Solution

The following example implements the JITPipeline GetfieldAsString event to access RTF data. For this example a Delphi TRichEdit is placed on a form and used as the source of the rich text. Another solution could use an .rtf file as the source of the rich text - in which case a FileStream would be used rather than the MemoryStream that is used here.

Download: RtfViaJIT.zip 

Sample Delphi code:

function TForm1.ppJITPipeline1GetFieldAsString(aFieldName: String): String;
begin

  if (aFieldName = 'RichTx') then
    Result := GetRichEdAsString(RichEdit1);

end;

function TForm1.GetRichEdAsString(aRichEd: TRichEdit): String;
var
  lRTFStream: TMemoryStream;
begin

  Result := '';

  {create temp memory stream}
  lRTFStream := TMemoryStream.Create;

  try

    {save the TRichEd's rtf data to the memory stream}
    aRichEd.Lines.SaveToStream(lRTFStream);

    SetLength(Result, lRTFStream.Size);

    {copy the rtf stream to the buffer}
    lRTFStream.Position := 0;
    lRTFStream.Read(Result[1], lRTFStream.Size);

  finally

    {free the memory stream}
    lRTFStream.Free;

  end;


end;
Tags
none

Files (0)

 
You must login to post a comment.