GetOwnerData and
It's the developer's responsibility to ensure the message text has been properly localized.
It's the developer's responsibility to ensure the message text has been properly localized.
It's the developer's responsibility to ensure the message text has been properly localized.
It's the developer's responsibility to ensure the message text has been properly localized.
A external reference has the form "//object_name/object_specific_part". The control identified by object_name must implement IUltraCalcReference and be able to parse object_specific_part.
An internal reference is a reference within the same control that implements this instance of the interface. An internal reference can be absolute or relative. Absolute references must begin with the "/" character. Such references must be created relative to the root object in the control. Relative references are created relative to this reference.
Note that in complex reference models, multiple reference strings may point to the same underlying object. The reference string used to create the reference must be available to other methods such as ResolveReference, References and MarkRelativeIndicies. Consequently, if the reference string is relative, a proxy reference object should be returned that retains the relative reference string.
This method must be able to handle external, absolute and relative references as described in the CreateReference method.
Note that both references in the range must be local to each other.
The last element of the input reference replaces the last element of this reference.
This method is used by the evaluator to take an unscoped reference, such as a column reference, and merge into a fully scoped reference, such as a row reference, to yield a cell reference.
Note that this method must operate on the reference string used to create the reference. When a reference with relative scope is created by CreateReference, such as [Price(-1)], the underlying reference is a column reference. The reference string used to create the refernce is required to properly apply the scope to the merged result.
Returns a meaningful object context for the reference. This could be an UltraGridCell, UltraGridColumn, NamedReference, Control, etc.
An instance of this class may contain one of several base data types including doubles, singles, integers, booleans, strings, and error values.
The class implements the IConvertible interface providing methods to perform conversions between the basic data types. Additionally the class provides methods to perform basic arithetic operations and comparisons between UltraCalcValue objects.If there is no meaningful conversion to an integer this method will throw an InvalidCastException
The instance value's underlying data type must be reference to return a reference, else a UltraCalcReferenceError is returned.
If there is no meaningful conversion to a reference, this method will throw an InvalidCastException
This method returns an
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
When using the 1900 date system in Excel, dates before 3/1/1900 must be corrected, because Excel incorrectly assumes 1900 is a leap year. This overload assumes the 1900 date system is being used as so it corrects the date values.
When using the 1900 date system in Excel, dates before 3/1/1900 must be corrected, because Excel incorrectly assumes 1900 is a leap year. This overload assumes the 1900 date system is being used as so it corrects the date values.
If this is being called to use the resolved value in a calculation,
Base reference associated with the formula. For example, in the case of a column formula, BaseReference would be the column reference.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly one operand/argument.
Note: This operator must take exactly one operand/argument.
Note: This operator must take exactly one operand/argument.
Returns an instance of IUltraCalcFormula. IUltraCalcFormula has information on any syntax or reference errors.
Returns an instance of IUltraCalcFormula. IUltraCalcFormula has information on any syntax or reference errors.
RemoveReference removes the specified reference from the calculation network. If the reference has a formula, the formula is also removed.
RemoveRowReference removes the specified reference from the calculation network. This method should be used when removing the reference for an item in a collection, such as an UltraGridRow. For other (non-collection) objects, use RemoveReference. If the reference has a formula, the formula is also removed.
AddReference adds the specified reference to the calculation network.
AddRowReference adds the specified reference to the calculation network. This method should be used when adding a reference for an item in a collection, such as an UltraGridRow. For other (non-collection) objects, use AddReference.
The context is the target object of the formula. It could be an UltraGridCell, a Control, a NamedReference, etc.
The error text to be displayed. The display of the error text will vary depending on the Context. A Control on a form will display the ErrorDisplayText as the tooltip to an ErrorProvider icon (if ErrorProviders are being used). A NamedReference will not display the ErrorDisplayText. A Grid cell will display the ErrorDisplayText in the cell, if possible.
If a Calculation or Reference Error occurs during a calculation, ErrorValue can be used to specify a default value to be used for display or saving. When an error occurs in a calculation, this value will be assigned to the appropriate property of the Context object. For example, in the case of a TextBox's Text property, the property itself will be set to the error value so that it both displays in the TextBox and is saved if the Text property is bound. In the case of an UltraGrid cell, this value will not be displayed, but will be saved to the underlying data source. Objects that do not display or bind, such as a NamedReference, will ignore the ErrorValue.
Provides detailed information about the error, such as the exact type of error.
The display of the icon varies depending on the context. A control on a form will show the icon as part of an ErrorProvider. NamedReferences show no icons. UltraWinGrid will not show the icon.
This is neccessary when the name of the control (and therefore the reference name) changes. The UltraCalcManager will automatically call this method at Design-time when the name of the control changes.
The Set implementation of this property must call AddParticipant on the IUltraCalcManager to add itself into the CalcManager's participants collection.
Also, the implementor should call RemoveParticipant when it is disposed.
This property should return a root reference whose CreateReference implementation can return a given child reference based on an absolute name.
Return true to tell the CalcManager not to extend the participant with an UltraCalcSettings property.
This method must be overridden by the Root reference object to deal with external or root references. The Root referece object must advance past the optional control name in a Fully Qualified Reference before calling RefLoop
Returns a meaningful object context for the reference. This could be an UltraGridCell, UltraGridColumn, NamedReference, Control, etc.
This always throws an exception. This method should never be called on a Range because a Range is never created by BuildReference
This always throws an exception. This method should never be called on a Range because a Range is never created by BuildReference
This always throws an exception. This method should never be called on a Range because a Range is never created by BuildReference
This always throws an exception. This method should never be called on a Range because a Range is never created by BuildReference
This always throws an exception. This method should never be called on a Range because a Range is never created by BuildReference
A Range returns a RefRangeCollection.
ResolveReference for a Range is from.ResolveReference
The ElementName for a Range is from.ElementName + ":" + to.ElementName
The Parent of a Range is this.from
A Range is always a Data Reference.
The AbsoluteName for a Range is from.AbsoluteName + ":" + to.AbsoluteName
The HasRelativeIndex for a Range is from.HasRelativeIndex
A Range returns a RefRangeCollection.
State = New York, City = New York
State = "New York", City = "New York"
State=New York,City=New York
A\/B = C\/D (column name is A/B and value is C/D.)
A = 10 miles\/hour, B = "20 miles/hour" (Withing double quotes only double quotes and backward slash have to be escaped.)
P1 = 10\, 20, P2 = "10, 20"
Returns an array of NameValuePair objects. Note: Names and values will be unescaped and also stripped of surrounding quotes.
State=New York where as example
of a standalone string value is New York. Standalone text values are used to
specify the scope in group-by rows. Example of a reference using standalone scope and a
name value pair scope is //ultraGrid1/Customers/State(NY)/Customers(CustomerID=ABCD).
If the scope was name-value pairs then sets the nameValuePairs to an array of parsed name-value
pairs. If the scope was a standalone text then sets the nonNameValuePairScope parameter.
If there was an error, returns an error string. If there was no error, returns null.
RefUnAnchored forwards this to the base reference.
RefUnAnchored forwards this to the base reference.
RefUnAnchored forwards this to the base reference.
RefUnAnchored forwards this to the base reference.
RefUnAnchored forwards this to the base reference.
RefUnAnchored forwards this to the base reference.
RefUnAnchored forwards this to the base reference.
RefUnAnchored forwards this to the base reference.
RefUnAnchored forwards this to the base reference.
RefUnAnchored forwards this to the base reference.
RefUnAnchored forwards this to the base reference.
RefUnAnchored forwards this to the base reference.
RefUnAnchored always returns false.
RefUnAnchored forwards this to the base reference.
RefUnAnchored forwards this to the base reference.
RefUnAnchored returns a reference constructed from merging the relative reference into the base reference.
RefUnAnchored returns the relative reference. When setting the relative reference, the merge reference is constructed by merging the relative reference into the base reference.
Returns a meaningful object context for the reference. This could be an UltraGridCell, UltraGridColumn, NamedReference, Control, etc.
RefUnAnchored forwards this to the base reference.
RefUnAnchored forwards this to the base reference.
RefUnAnchored forwards this to the base reference.
RefUnAnchored uses the relative rp.
RefUnAnchored uses the relative rp.
RefUnAnchored returns the baseRef enumeration scoped to the merged reference.
RefUnAnchored forwards this to the base reference.
UCReference wraps an internal IUltraCalcReference class instance that points to the underlying object. That is, each method simply passes the IUltraCalcReference request to the underlying reference if the object is connected, else it returns, or throws, an appropriate error. UCReference has storage for the reference string and its underlying reference object.
There are two additional methods on UCReference: Connect and Disconnect. Connect will attempt to obtain a reference to the object it refers to given a base reference and it's reference string by calling the base reference's CreateReference method passing it the reference string. If its successful, it will store the newly created reference and use it to dispatch IUltraCalcReference requests against it. Disconnect will simply free the internal reference object after which its IUltraCalcReference methods will deal with a disconnected state. Virtually all references can be in a disconnected state at some point in their lifetime, therefore the CalcEngine uses UCReference instances to connect to all references. That is, the UltraCalcFormulaCompiler.Compile method creates UCRefernces for the all references in the formula string. The CalcEngine exposes a TopoChange event that objects used to notify it of topological changes. The TopoChange event passes a reference to the CalcEngine that describes the object that changed (e.g. column, row, grid, etc) along with a Create / Delete action argument. On Delete events, the CalcEngine will track down all formulas whose LHS is contained by the disconnected reference and delete them. This will clean up the recalc chain and ancestor map of any references including sub-references under the deleted reference. That is, column formulas will be deleted when the event's deleted reference is an entire grid, or cell references that are on the recalc chain when the deleted reference is a column. The ContainsReference on the reference passed with the TopoChange event determines whether the event affects a given reference. Secondly, all formulas who reference the deleted reference will be recalculated. On Create events, the CalcEngine will track down all references contained by the created reference and call the Connect method passing in the their formula's BaseReference. This will cause the CalcReference to reconnect to the underlying reference. Secondly, each re-connected reference's ancestor's will be recalculated.Returns a meaningful object context for the reference. This could be an UltraGridCell, UltraGridColumn, NamedReference, Control, etc.
Note: This method may not be invoked if the
Note: This method checks the collection for the specific
instance of the object that is provided. It does not check the collection for
an object with a particular key. If this collection is a
The returned string is used to optimize case insensitive comparisons.
Note: This property is only used when
Provides a dropdown list of primitive types (e.g. string, int, datetime etc.).
When a new type is selected, the editor will attempt to convert the existing property value to that type.
If the conversion fails the property will be set to a default value appropriate for the selected type.
The editor is specified as the
Normally the
There is an instance of this class exposed by the
It allows for customization/substitution of strings that would normally be loaded from resources.
The PropChangeInfo structure contains the context information for a state change. It is passed into the SubObjectPropChanged event.
It also allows us to chain relavent context information about a property change so the a listener can get information as granular as it wants to determine what it should do when an object's state changes.
There may be several of these state changes forming a chain. For example, if a Cell's Appearance's backcolor property changes, the Appearance object will fire an event notifying any of its listeners, in this case the Cell object, that a state change has occurred (passing null for the trigger and the propId relating to BackColor).
When the Cell gets the state change notification it will do whatever it needs to do and will forward the Appearance's PropChangeInfo as the trigger and the propId idntifying the Appearance property to notify all of its listeners, in this case perhaps the corresponding row.
Then the row will do the same (using the propId identifying its Cell property). This process will continue until the main object is reached or there are no listeners.
The advantage of this approach is that we have created efficient notification infrastructure that can supply detailed context information (as granular as the listener may want) with little overhead.
Provides a dropdown list of items
Note: This method may not be invoked if the