%ZEN.DataModel.DataModel
deprecated abstract class %ZEN.DataModel.DataModel extends %Library.RegisteredObject
This is the abstract base class used by all model classes within the Zen Model-View-Controller mechanism.Subclasses of this class are used to implement the Model portion of the Zen Model-View-Controller mechanism.
A DataModel class provides a generic mechanism to take data values from one or more sources (such as from a persistent object, external database, or directly from a global) and place these values into the properties of the DataModel.
Property Inventory
Method Inventory
- %DeleteModel()
- %GetPropertyInfo()
- %InvokeAction()
- %IsReadOnly()
- %OnDeleteModel()
- %OnDeleteSource()
- %OnGetPropertyInfo()
- %OnInvokeAction()
- %OnLoadModel()
- %OnNewSource()
- %OnOpenSource()
- %OnSaveSource()
- %OnStoreModel()
- %OnSubmit()
- %OpenModel()
- %SaveModel()
- %SubmitHandler()
Parameters
parameter READONLYMODEL = 0;
If this parameter is true, then this is a read-only data model.
Instances of this data model cannot be saved or deleted.
Properties
property %id as %ZEN.Datatype.string (XMLPROJECTION = "NONE") [ Transient ];
The ID value used to identify a specific instance of DataModel object.
The form and possible values of the ID are up the implementor of a specific DataModel class.
The form and possible values of the ID are up the implementor of a specific DataModel class.
Property methods: %idDisplayToLogical(), %idGet(), %idIsValid(), %idLogicalToDisplay(), %idLogicalToOdbc(), %idNormalize(), %idSet()
property %seriesCount as %ZEN.Datatype.integer (XMLPROJECTION = "NONE") [ InitialExpression = 1 , Transient ];
Number of data series contained within the data model.
Property methods: %seriesCountDisplayToLogical(), %seriesCountGet(), %seriesCountIsValid(), %seriesCountLogicalToDisplay(), %seriesCountLogicalToOdbc(), %seriesCountNormalize(), %seriesCountSet()
property %seriesNames as %ZEN.Datatype.string (XMLPROJECTION = "NONE") [ MultiDimensional , Transient ];
An array containing the display names for data series subscripted by series number (1-based).
Property methods: %seriesNamesDisplayToLogical(), %seriesNamesGet(), %seriesNamesIsValid(), %seriesNamesLogicalToDisplay(), %seriesNamesLogicalToOdbc(), %seriesNamesNormalize(), %seriesNamesSet()
Methods
Delete a given DataModel instance.
This is implemented by the subclasses of this class.
This is implemented by the subclasses of this class.
classmethod %GetPropertyInfo(Output pList As %String, pExtended As %Boolean = 0, pContainer As %String = "") as %Status
Return a list describing the properties within this DataModel.
These are returned as an array of the form:
pList(propname) = seqno
seqno, if present, is the ordinal position of this control on the form.
If pExtended is true (1), then the array will include additional nodes for each property. This information is used to create dynamic forms for this model. The extra nodes may include:
pList(name,"%type") = suggested control type for dynaForm<.br> pList(name,"size") = size used for controls.
pList(name,"group") = id of group within dynaForm to place control.
pContainer is the name of the containing property if this data model is embedded in another data model object.
These are returned as an array of the form:
pList(propname) = seqno
seqno, if present, is the ordinal position of this control on the form.
If pExtended is true (1), then the array will include additional nodes for each property. This information is used to create dynamic forms for this model. The extra nodes may include:
pList(name,"%type") = suggested control type for dynaForm<.br> pList(name,"size") = size used for controls.
pList(name,"group") = id of group within dynaForm to place control.
pContainer is the name of the containing property if this data model is embedded in another data model object.
Invoke a user-defined named action on this model object.
The actual work of perfoming the action is carried out by the %OnInvokeAction() callback method.
The actual work of perfoming the action is carried out by the %OnInvokeAction() callback method.
classmethod %IsReadOnly() as %Boolean
Returns whether this data model class is readonly.
This callback method is invoked when the DataModel is deleted.
This is implemented by the subclasses of this class.
This callback method is called when the DataModel is deleted. If
implemented, it is responsible for making the appropriate deletes
against the data source.
abstract classmethod %OnGetPropertyInfo(pIndex As %Integer, ByRef pList As %String, pExtended As %Boolean = 0) as %Status
This callback method, if present, is called by the %GetPropertyInfo()
method. This gives subclasses the opportunity to add additional property
descriptions to the DataModel.
pIndex is the number of elements (plus one) already in the list. This should be used as a starting sequence number when adding new properties to the list.
pIndex is the number of elements (plus one) already in the list. This should be used as a starting sequence number when adding new properties to the list.
Invoke a user-defined named action on this model object.
This is implemented by the subclasses of this class.
This is implemented by the subclasses of this class.
method %OnLoadModel(pSource As %RegisteredObject) as %Status
This callback method does the actual work of loading values
from the data source into this DataModel object.
method %OnNewSource(Output pSC As %Status = $$$OK) as %RegisteredObject
This callback method is invoked when a DataModel needs a new instance.
If implemented, it opens a new (unsaved) instance of the data source object
used by the DataModel.
method %OnOpenSource(pID As %String, pConcurrency As %Integer = -1, Output pSC As %Status = $$$OK) as %RegisteredObject
This callback method is invoked when a DataModel is opened.
If implemented, it opens an instance of the data source object
used by the DataModel.
method %OnSaveSource(pSource As %RegisteredObject) as %Status
This callback method is called when the DataModel is saved. If
implemented, it is responsible for saving changes to the data source.
method %OnStoreModel(pSource As %RegisteredObject) as %Status
This callback method does the actual work of copying values
from the DataModel to the data source.
method %OnSubmit(pSubmit As %ZEN.Submit) as %Status
If defined, this callback is called when a form connected to this
DataModel is submitted.
The contents of this DataModel will be filled in from the submitted values before this callback is invoked.
The contents of this DataModel will be filled in from the submitted values before this callback is invoked.
classmethod %OpenModel(pID As %String, pConcurrency As %Integer = -1, Output pSC As %Status = $$$OK) as %RegisteredObject
Create an in-memory instance of a DataModel object and load
data into it properties.
This is implemented by the subclasses of this class. The signature of this method is designed to match the %OpenId method of persistent classes.
This is implemented by the subclasses of this class. The signature of this method is designed to match the %OpenId method of persistent classes.
method %SaveModel() as %Status
Save the data in this instance of DataModel back to its original
source, if possible.
This is implemented by the subclasses of this class.
This is implemented by the subclasses of this class.
classmethod %SubmitHandler(pSubmit As %ZEN.Submit) as %Status
Internal method.
If a form connected to this DataModel is submitted, this method handles the server-side processing of the submit.
If a form connected to this DataModel is submitted, this method handles the server-side processing of the submit.
Inherited Members
Inherited Methods
- %AddToSaveSet()
- %ClassIsLatestVersion()
- %ClassName()
- %ConstructClone()
- %DispatchClassMethod()
- %DispatchGetModified()
- %DispatchGetProperty()
- %DispatchMethod()
- %DispatchSetModified()
- %DispatchSetMultidimProperty()
- %DispatchSetProperty()
- %Extends()
- %GetParameter()
- %IsA()
- %IsModified()
- %New()
- %NormalizeObject()
- %ObjectModified()
- %OriginalNamespace()
- %PackageName()
- %RemoveFromSaveSet()
- %SerializeObject()
- %SetModified()
- %ValidateObject()