How do I contact Inabyte Inc.?
The evaluation version is a full version of the product that expires 30 days after installation.
The component integrates expression parsing, evaluating, and dependent formula recalculation. It is useful in two general areas: first, when a formula has to be defined and evaluated at runtime (for example, if the end user is allowed to enter a formula that will be evaluated and used); second, when a set of formulas that depend on each other are defined, configured, and evaluated at run-time.
The component supports conventional math operators and functions and is suitable for heavy-duty number crunching. It also supports other data types, such as string, date-time, logical, and operators and functions for these data types. It allows defining variables and sets of related formulas that implement spreadsheet-like recalculations. The various ways data flow, the custom function support, and the different modes of work give power and flexibility.
The component is released in two editions - Standard and Professional.
The standard edition supports single formula evaluation, all set of operators and built-in functions, and allows using variables in formulas. The professional edition supports spreadsheet-like multiple formula recalculation, as well as custom function support and virtual variables.
To add the InaCalcPro control to your project, select Project | References... Select InaCalcPro from the list.
Dim obCalc As INACALCPROLib.InaCalcPro
Set obCalc = CreateObject("Inabyte.InaCalcPro")
If obCalc Is Nothing Then
To add the InaCalcPro control to your project use the #import directive in stdafx.h.
#import "InaCalcPro.dll" no_namespace
hResult = pCalc.CreateInstance(__uuidof(InaCalcPro));
if (hResult != S_OK)
To add the InaCalcStd control to your project, select Project | References... Select InaCalcStd from the list.
Dim obCalc As INACALCSTDLib.InaCalcStd
Set obCalc = CreateObject("Inabyte.InaCalcStd")
If obCalc Is Nothing Then
To add the InaCalcStd control to your project use the #import directive in stdafx.h.
#import "InaCalcStd.dll" no_namespace
hResult = pCalc.CreateInstance(__uuidof(InaCalcStd));
if (hResult != S_OK)
Built-in functions are managed by InaCalcFuncs interface, supporting the enumeration of the whole set of built-in functions. Each individual function is managed by the InaCalcFunc interface, which supplies its name, category, format and brief description.
The InaCalc Professional edition offers the ability for user defined functions to be parsed and evaluated in formulas. To do this, first the function must be registered in an InaCalcFuncs object by calling its Add method. For example, Add (MyFunc). It is also possible to specify the category, format and description string for this function by stating these values in an Add method call. For example, Add (MyFunc, inaFuncCustom, MyFunc(value1, value2),User Defined Function). This will make the function appear in the correct place and with the correct helpers in the Formula Builder Dialog. Note that the format string does not specify the format of function arguments it is only used as a helper template when this function is inserted in the Formula Builder Dialog. After a custom function is registered, it can be used anywhere in formulas like all other built-in functions.
The built-in functions are listed bellow grouped by category:
Custom functions are evaluated using a number of events and methods of the InaCalc component. When a custom function is to be evaluated, InaCalc fires the event EvalCustomFunction (strFunction, argValues, vntValue). strFunction contains the name of the custom function. argValues is an array of the function argument values vntValue is a variant variable passed by reference where the result of function evaluation will be placed. In the above example, if MyFunc sums its two parameters, the implementation of EvalCustomFunction handler will look like this:
Sub OnEvalCustomFunction (strName, argVals, vntValue)
If EvalCustomFunction event is not handled or if no value is supplied as a result of function evaluation, the result is an empty value.
There is another event related to custom functions called CheckCustomFunction. It is fired after the formula is parsed and before it is evaluated. This is the place where some preliminary checks can be performed, for example the proper count of arguments, the proper argument types and etc. The parameters of CheckCustomFunction are similar to the EvalCustomFunction parameters. The event handler receives the name of the function, an array of function argument types, and a value type variable passed by reference where the result value type of function evaluation will be placed. If this event is not handled, InaCalc assumes that the function arguments are correct and the function returns an empty value.
You are required to purchase a license in order to distribute applications that contain one or more InaCalc controls. Without this license, the InaCalc control is considered under evaluation.
If you are writing web applications then additional server licenses would also be required. See below.
You are required to purchase a license in order to run InaCalc on a server. Without this license, the InaCalc control is considered under evaluation. One license per server is required.
A developer is a license that everyone pays regardless of subsequent deployment. A 3 man team means 3 licenses. If the product is subsequently deployed on a Server Node/PC for Client Server or on a Web Server Node/PC you need to buy a license per node. A 10 node web site with the component on 6 of the nodes requires 6 licenses to be purchased.
See what InaCalc can do for you. Download InaCalc and its samples (MFC, VB, J++ and ASP) and see its capabilities