Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

IDSSFormShortcut Interface Reference

Inherited by IDSSFormShortcut2.

List of all members.


Detailed Description

Normally when we wish to embed an object inside an expression tree we do so by using the IDSSShortcut interface.

This interface identifies the object that was embedded by giving its ObjectID. Usually this is fine.

Unfortunately we run into problems when we try to do this with attributes. When an attribute appears inside an expression (e.g. within the definition of a filter or a metric) we have in mind a particular (base) form of the attribute. We don't say "WHERE CITY LIKE L*'", we say "WHERE CITY_DESC LIKE 'L*'". So it is not enough to record the ObjectID of the attribute, we need to record the ObjectID of the attribute form as well.
Each attribute form represents a collection of one or more base attribute forms. It only makes sense use attribute forms that represent single base attribute forms in an expression. However the same attribute form might be one base form with respect to one attribute, and several with respect to another attribute. We permit the user to specify any combination of attributes and forms. However at validation time we reject a node that shows a form not supported by the attribute, or which is supported but has more than one corresponding base attribute form (or if the attribute/form properties are NULL).


Public Member Functions

HRESULT Attribute ([in] IDSSAttribute *pAttribute)
 The attribute whose forms appear here.
HRESULT Attribute ([out, retval] IDSSAttribute ppAttribute)
 The attribute whose forms appear here.
HRESULT Form ([in] IDSSAttributeForm *pForm)
 The collection of attribute forms in the expression.
HRESULT Form ([out, retval] IDSSAttributeForm ppForm)
 The collection of attribute forms in the expression.
HRESULT Node ([out, retval] IDSSNode ppNode)
 Standard IDSSNode interface.
HRESULT Populate ([in] IDSSFormShortcut *pOriginal)
 Assign the value from another IDSSFormShortcut.


Member Function Documentation

HRESULT IDSSFormShortcut::Attribute [in] IDSSAttribute pAttribute  ) 
 

The attribute whose forms appear here.

This property is the attribute that is the target of the short cut.

This attribute is stored in the shortcut as an ObjectID.
Parameters:
pAttribute A new attribute to be targeted by the shortcut. May be NULL.
Returns:
Usual COM result code:
  • S_OK

HRESULT IDSSFormShortcut::Attribute [out, retval] IDSSAttribute   ppAttribute  ) 
 

The attribute whose forms appear here.

This property is the attribute that is the target of the short cut.

This attribute is stored in the shortcut as an ObjectID.
Parameters:
ppAttribute A reference to the attribute that is the target of the shortcut.
Returns:
Usual COM result code:
  • S_OK

HRESULT IDSSFormShortcut::Form [in] IDSSAttributeForm pForm  ) 
 

The collection of attribute forms in the expression.

This property is the form that is the target of the shortcut. An attribute form is a DSS Object in its own right. Attribute form objects are independent of attributes. The method accepts any attribute form, whether or not it exists on the attribute.

Because the attribute object wraps the attribute forms it supports the user can set both attribute and form in a single action by setting this property. A user does this by taking the attribute form from the Attribute.Forms collection of an attribute. If the user takes the attribute form directly from a folder then we are unable to change the attribute property - since a form alone has no attribute affiliation.
This form is stored in the shortcut as an ObjectID.
Parameters:
pForm An object representing the attribute form. May be NULL. first class attribute form ( the Form property is modified. wrapping from an attribute ( Form and Attribute are both modified.
Returns:
Usual COM result code:
  • S_OK

HRESULT IDSSFormShortcut::Form [out, retval] IDSSAttributeForm   ppForm  ) 
 

The collection of attribute forms in the expression.

This property is the form that is the target of the shortcut. An attribute form is a DSS Object in its own right. Attribute form objects are independent of attributes. The method accepts any attribute form, whether or not it exists on the attribute.

Because the attribute object wraps the attribute forms it supports the user can set both attribute and form in a single action by setting this property. A user does this by taking the attribute form from the Attribute.Forms collection of an attribute. If the user takes the attribute form directly from a folder then we are unable to change the attribute property - since a form alone has no attribute affiliation.
This form is stored in the shortcut as an ObjectID.
Parameters:
ppForm The attribute form associated with this shortcut. We always return the first class object, not the form found in the attribute.
Returns:
Usual COM result code:
  • S_OK

HRESULT IDSSFormShortcut::Node [out, retval] IDSSNode   ppNode  ) 
 

Standard IDSSNode interface.

Node is a read-only property. It returns the IDSSNode interface associated with this expression node. This interface contains methods and properties that are common to all types of nodes in expressions. In particular, it contains methods used to navigate between different nodes in the expression.

Parameters:
ppNode The standard IDSSNode interface on this object.
Returns:
Usual COM result code:
  • S_OK

HRESULT IDSSFormShortcut::Populate [in] IDSSFormShortcut pOriginal  ) 
 

Assign the value from another IDSSFormShortcut.

This method acts like an assignment operator in C++. It replaces the definition of this object with the definition of the argument. It is implements cloning of the argument object.

Parameters:
pOriginal The original object.
Returns:
Usual COM result code:
  • S_OK


Copyright © 1996-2018 MicroStrategy Inc. All Rights Reserved.