The IliFormat Class
The
IliFormat class is used to format values into character strings using specific rules. A format can be user-defined or predefined. Once an
IliFormat has been created, it can be named and referenced whenever required. This can be done using the aliasing mechanism provided in the
IliFormat class.
You can specify formats for numbers, dates, or character strings.
// Create a predefined format named "MyFormat".
IliFormat::AddAlias(“MyFormat”,
“#,##0.00 FF.”,
IliNumberFormatType);
IliFormat fmt(“MyFormat”);
IliValue val = someField->f_getValue();
const char* txt = val.getFormatted(fmt);
IlvPrint("Here is the formatted value : %s", txt);
The IliFormat class controls the format specification and uses some global settings. These settings include properties such as the character that is used to represent a decimal point. Consequently, the IliFormat class contains a set of static member functions that can be used to query and set the global settings.
IliFormat::SetDecimalPoint(’,’);
IliFormat::SetThousandsSeparator(’ ’);
IliFormat::SetCurrencySymbol("F.");
...
For more information on the syntax used to specify a format, see
Format Syntax.
It is also possible to code formats in C++ by subclassing the
IliFormatIpl class as the following code extract shows:
#include <ctype.h> #include <ilviews/dataccess/format.h> const char* MyFormatAlias = "FancyFormat"; const char* MyFormatName = "FancyFormat"; // This format reverses the case of alphabetic // characters: lowercase are displayed uppercase and // vice-versa. class FancyFormat : public IliFormatIpl { public: FancyFormat() : IliFormatIpl(MyFormatName) {} virtual IliFormatType getType() const { return IliStringFormatType; } virtual void formatString(IliString& dest, const char* src) const { if (src) { if (isEditModeOn()) dest << src; else while (*src) { if (isalpha(*src)) { if (isupper(*src)) dest << (char)tolower(*src); else dest << (char)toupper(*src); } else dest << *src; ++src; } } } }; int main() { ... IliFormatIpl::AddCustomFormat(new FancyFormat()); IliFormat::AddAlias(MyFormatAlias, MyFormatName, IliStringFormatType); ... } |
Published date: 05/24/2022
Last modified date: 02/24/2022