EK RTF download

Free evaluation versions without sources.

rtf func
Ek RTF report components v. 4.00 for Visual Studio 2005
Ek RTF assembly and examples for Visual Studio 2005
Help for Visual Studio 2005
   
rtf func
Ek RTF report components v. 4.00 for Delphi 2006.Net
Assembly for Delphi2006.Net
Help for BDS4 IDE
Help in chm format
Demo application
All in one file
   
rtf func
Ek RTF report components v. 3.08
Delphi   5    6    7    2005 Win32    2006 and 2007 Win32   Help file  Demo application 


Note: free version of components fills result document properties "author" and "comments" with information about EK RTF. Procedures like InsertRTFMemo and frtf() format excluded from free version. There is no any time and other functionality limitations.

History of EK RTF report components
Version 4.00 for .Net is based on a source code of components version 3.08 for Win32. Components code is completely rewritten in order to use pure .Net calls wherever it is possible.

What is changed since Win32 version:
Binding data with report. New property ReportData is used to attach data to the report template ;
Report variable methods AsDate AsDateTime work with .Net System.DateTime type instead of Delphi's TDateTime;
All images in this version are inserted as hexadecimal code instead of binary. Scale of image is computed basing on real image size and resolution. It may not coincide with the scale that Word shows in image properties;
No variables available at design time;
EkUDF class - property FunctionName is now used instead of Name for user defined functions;
User functions with udfrImage result type expects that new UDFResult object will be created in function code;
Fdtm() format function works with .Net "Custom DateTime Format Strings" instead of Borland format strings;
New designer for user defined function;
New documentation available in chm and Help2 formats.

Version 3.08
frtf() function improved in order to support new MS Word 2007 rtf tags;
Added additional support of tables rtf attributes to frtf() function;
Fixed bug with fdtm() function - format mask with comma raised an error.

Version 3.07
Report commands were processed in a hidden shape results blocks of rtf document;
frtf() function:
Fixed bug when inserted text was outside of the table on the next page of document;
Some special characters were skipped in result document;
If source rtf has smart tags, it was incorrectly inserted into result rtf;
If source rtf has numbered list, it was inserted with wrong numbers into result rtf.

Version 3.06
frtf() function inside a table. Fixed bug when inserted text was outside of the table in some editors;
Msftedit.dll rich text control. Fixed bug whith incorrect color table in output document;
DataSet, which name is one char length, was parsed as not existing alias name.

Version 3.05
frtf() function improved in order to be compatible with Word 2003 rtf documents.

Version 3.04
Fixed bug with incorrect color table in ftrf() function, when report was executed for the second time;
Optimized behaviour of iif function;
Iif function may be used inside \Scan...\ commands;
New keyword \elsif\:
\if(...)\
\elsif(...)\
\elsif(...)\
\else\
\endif\
New assigment operator :=, for example \a:=4\;
New function pos(substring, string) the same as Delphi pos function;
New option eoKeepFrtfPar. If set to True, ftrf() format function doesn't delete paragraph symbol in inserted rtf text.

Version 3.01
Optimized code to make faster report compilation;
Fixed bug with page breaks missed in inserted rtf text.

Version 3.00
Created DataType property for report variables; Variables previously created in design time will have data type "Unknown";
New design time editor for report variables;
Decimal separator for numeric constants in report template set to ".";
Arithmetical operations and formulas in report template: >, <, =, <=, >=, <>, != (not equal), +, -, *, /, % (mod)
Logical operations and formulas in report template: && (and), || (or), ! (not)

Built-in report functions:

SET(VarName, Value) assigns Value to variable VarName
IIF(Condition, Value1, Value2)

Text functions:

str(Number,[optional length, optional decimals])
if length set to 0, but decimals<>0, result will be equal trim(str(...))
val(s)
upper(s), lower(s)
copy(s,startpos,[optional count]),
mid(s,startpos,[optional count]),
substr(s,startpos,[optional count])
trim(s)
formatfloat - the same as Delphi FormatFloat

Dataset functions:

eof, bof, last, first, next, prior
for example eof(a), next(table1)

Numeric functions:

round(n,decimals)
round is different from Delphi round function
0.5 is always processed to largest integer number, this is not banker rounding

int, frac
power, intpower

Date/time functions:

now, date, time, datetostr, datetimetostr, timetostr,
strtodate, strtodatetime, srttotime, year, month, day,

SYEAR(date)
string representation of year

SMONTH(date)
string representation of month
month<10 have zero in place of first symbol - 01, 02 and so on ...

SDAY(date)
string representation of day
day<10 have zero in place of first symbol - 01, 02 and so on ...

DTOS(date)
the result is string yyyymmdd

STOD(string)
converts string like yyyymmdd to date value


Version 2.02
fixed bugs:
picture inserted trough the frtf() function was duplicated in output file
report generator didn't process MS Word fields inserted through the frtf() function
couldn't set UDFList property to nil
in some cases report executing status was "true" after exception

Version 2.01
fixed bug when some fields with spaces in name didn't work

Version 2.00
new construction \if(...)\ \else\ \endif\
scan "while" keyword now works with report variables and data fields
constants support: \True\ \False\ - boolean, {yyyy-mm-dd} - date constants
new methods: CreateTmpFileName, CreateFileName
symbol "." in field names in this version always considered as ":", scan blocks must be defined only with "scan-endscan" keywords
new format fbool() - boolean
new format frtf() - rich text (works only in full registered version)
new help, integrated with Delphi help system

Version 1.85
new procedure InsertRTFMemoStream in the unit ekrtfstream
new procedure InsertRTFMemo in the unit ekrtfstream
double click on TEkUDFList component opens "Functions" editor window
fixed bug with scan while() function on skipping empty scan block

Version 1.82
fixed bug with fdtm() format and constant parameters with database fields
if dataset is on a eof position after OnScanRecord event, scan block skips the empty record
states of report datasets are returned back to EnableControls if exception raised while processing the report

Version 1.81
format functions and user defined functions accept string and numeric constants as arguments
extended format of scan block with new keyword "while": \\Scan(DataSet), While(UDF(...)), .... \\ scan block terminated if result of UDF(...) is "false"
scan-endscan block works on a single line of text
new report template function VAR(var1, ..., varN) - creates variables var1 - varN if they don't exist
new option eoNumericFormatClearZero - deletes zero numbers in numeric formats output
fixed bug with output blob jpeg images
new method ShellOpenFile

Version 1.70
created new component TEkUDFList for user defined functions
new property UDFList in TEkRTF component
extended syntax of report template in according with UDF support

Version 1.62
fixed bug with incorrect exception in method SetTemplateBuffer
more than 26 datasets support
fixed bug with FormatIndex=0 in event OnImageFormat

Version 1.60
total and count functions sum(), ctn(), cts() for scan block commands
new methods for manipulating with report variables: VarByName, ClearVars, CreateVar, FreeVar
extended format of scan block - new keyword \ScanFooter\
new format functions fdtm, ffixr, fnumr
properties DecimalRSeparator, DecimalRTerminator for using with "ffixr" and "fnumr" formats
new option eoDotAsColon
cached structure of dataset files

IMPORTANT: In this version option eoDotAsColon is True by default. It means that all field names like \DataSet.Field\ will be considered as \DataSet:Field\.
If you use implicit cycles on MS Word table with field inside that has syntax \DataSet.Field\, you should replace it with \DataSet:Field\ and use keywords \Scan(DataSet)\ and \endscan\.
If you still wish to use old (not reliable) method to make cycles, you must set option eoDotAsColon to False.

Version 1.50
"noeof" option in "Scan" keyword \Scan(DataSet)[,page][,noeof]\ scan block will be missed on eof of scanned dataset
new keyword \ScanEntry\ (for using with "noeof" option)
extended syntax for fields with spaces in names
optimized core of report engine
symbol #11 will appear as "line break" control in output file
symbol #12 will appear as "new page" control in output file