InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ITableCommands Class Referenceabstract

#include <ITableCommands.h>

Inheritance diagram for ITableCommands:
IPMUnknown

Public Types

enum  { kDefaultIID = IID_ITABLECOMMANDS }
 

Public Member Functions

Structure
virtual ErrorCode InsertRows (const RowRange &rows, const Tables::ERelativePosition pos, const PMReal &height, const Tables::EContinuation continuation=Tables::eStructureAllAttrs)=0
 
virtual ErrorCode MoveRows (ITableModel *sourceTable, GridArea fromArea, int32 toRow, Tables::ERelativePosition pos, bool16 duplicateFlag)=0
 
virtual ErrorCode MoveColumns (ITableModel *sourceTable, GridArea fromArea, int32 toColumn, Tables::ERelativePosition pos, bool16 duplicateFlag)=0
 
virtual ErrorCode InsertColumns (const ColRange &cols, const Tables::ERelativePosition pos, const PMReal &width, const Tables::EContinuation continuation=Tables::eStructureAllAttrs)=0
 
virtual ErrorCode DeleteRows (const RowRange &rows)=0
 
virtual ErrorCode DeleteRowsButNotAnchors (const RowRange &rows)=0
 
virtual ErrorCode DeleteColumns (const ColRange &cols)=0
 
virtual ErrorCode MergeCells (const GridArea &cells)=0
 
virtual ErrorCode UnmergeCell (const GridAddress &anchor)=0
 
virtual ErrorCode SplitCells (const GridArea &cells, const ITableModel::ESplitDirection splitDirection)=0
 
virtual ErrorCode ChangeTableDirection (Tables::EDirection directionRTL)=0
 
Attributes
virtual ErrorCode ResizeRows (const RowRange &rows, const PMReal &newHeight)=0
 
virtual ErrorCode ResizeCols (const ColRange &cols, const PMReal &newWidth)=0
 
virtual ErrorCode ApplyRowOverrides (const RowRange &rows, const AttributeBossList *attrs)=0
 
virtual ErrorCode ApplyColOverrides (const ColRange &cols, const AttributeBossList *attrs)=0
 
virtual ErrorCode ApplyCellStrokes (const GridArea &area, const ICellStrokeAttrData::Data &data)=0
 
virtual ErrorCode ClearCellStrokes (const GridArea &area, const ICellStrokeAttrData::Data &data)=0
 
virtual ErrorCode ClearCellStrokesUISafe (const GridArea &area, const ICellStrokeAttrData::Data &data)=0
 
virtual ErrorCode SwapCellStrokeFill (const GridArea &cells)=0
 
virtual ErrorCode ApplyCellOverrides (const GridArea &cells, const AttributeBossList *attrs)=0
 
virtual ErrorCode ClearCellOverrides (const GridArea &cells, const AttributeBossList *attrs)=0
 
virtual ErrorCode ApplyTableOverrides (const AttributeBossList *attrs)=0
 
virtual ErrorCode SetTableStyle (const UIDRef &styleRef)=0
 
virtual ErrorCode ClearBorderOverrides (Tables::ECellEdge edge, const AttributeBossList *attrs)=0
 
virtual ErrorCode ClearCellOverridesUISafe (const GridArea &cells, const AttributeBossList *attrs)=0
 
Queries
virtual ICommandQueryApplyCellStrokesCmd (const GridArea &area, const ICellStrokeAttrData::Data &data)=0
 
virtual ICommandQueryClearCellStrokesCmd (const GridArea &area, const ICellStrokeAttrData::Data &data)=0
 
virtual ICommandQueryClearCellStrokesUISafeCmd (const GridArea &area, const ICellStrokeAttrData::Data &data)=0
 
virtual ICommandQueryApplyCellOverridesCmd (const GridArea &cells, const AttributeBossList *attrs)=0
 
Content
virtual ErrorCode SetCellText (const WideString &cellText, const GridAddress &anchor)=0
 
virtual ErrorCode ClearContent (const GridArea &cells)=0
 
Internal use
virtual ErrorCode RegisterStrand (const UIDRef &strandRef)=0
 
virtual ErrorCode RegisterContentMgr (CellType contentMgrType, const UIDRef &contenMgr)=0
 
Create Segments
virtual ErrorCode CreateRowSegment (const PMReal &distanceFromEdge, const ColRange &segmentRange)=0
 
virtual ErrorCode CreateColSegment (const PMReal &distanceFromEdge, const RowRange &segmentRange)=0
 
Convert to header and footer
virtual ErrorCode ConvertToHeaderRows (const RowRange &rows)=0
 
virtual ErrorCode ConvertToFooterRows (const RowRange &rows)=0
 
virtual ErrorCode ConvertToBodyRows (const RowRange &rows)=0
 
Convert table to text
virtual ErrorCode ConvertTableToText (const PMString colSeparator="\t", const PMString rowSeparator="\r")=0
 
virtual ICommandQueryDeleteTableCmd (const UIDRef &tableRef)=0
 
virtual ErrorCode ConvertCellsType (const GridArea &cells, CellType destType, bool16 tryToPreserveData=kFalse)=0
 
virtual ErrorCode PastePageItem (const GridAddress &anchor, UIDRef pageItemUID, bool16 preventCopy=kFalse)=0
 
- Public Member Functions inherited from IPMUnknown
virtual IPMUnknownQueryInterface (PMIID interfaceID) const =0
 
virtual void AddRef () const =0
 
virtual void Release () const =0
 

Detailed Description

Provides command based interface to the table model. Changes made to the table model should be made through this interface rather than through ITableAttrModifier or ITableModel to support undo capability.

Member Function Documentation

virtual ErrorCode ITableCommands::ApplyCellOverrides (const GridAreacells,
const AttributeBossListattrs 
)
pure virtual

Method to apply overrides to cells within given area. These attributes are represented by boss classes that are distinctively identified by aggregating an ITableAttrReport interface and have a ClassID such as kCellAttr<whatever>Boss.

Parameters
cellsthe cells within the given GridArea to operate upon
attrslist of boss objects specifying by their ClassID the attribute to override and new values
Returns
kSuccess if the command executed successfully, kFailure otherwise
virtual ErrorCode ITableCommands::ApplyCellStrokes (const GridAreaarea,
const ICellStrokeAttrData::Datadata 
)
pure virtual
Method to apply stroke-overrides to cells within given area.

These attributes are represented by boss classes that are distinctively identified by 

aggregating an ITableAttrReport interface and have a ClassID such as kRowAttr&lt;whatever&gt;Boss.



Encapsulates execution of command of class kModifyCellStrokesCmdBoss. This in turn delegates

to the table model's attribute modifier (ITableAttrModifier) to clear the strokes specified.



For instance, to apply a stroke-weight to the top of all cells in given area, an ICellStrokeData::Data struct

would be initialised as follows:


ICellStrokeAttrData::Data data;

data.attrs.Set(ICellStrokeAttrData::eWeight);

data.attrs.Add(ICellStrokeAttrData::eTint);

data.sides  = Tables::eTopSide;

data.weight = newWeight; &#47;&#47; a PMReal specifying new weight in points

data.tintPercent  = newTintPercent; &#47;&#47; a PMReal specifying tint in percent 

Parameters
areathe cells within the given GridArea to operate upon
datathis is used to specify the sides and/or other attribute(s) for which the stroke-properties should be set.
Returns
kSuccess if the command executed successfully, kFailure otherwise
Precondition
the area should be valid within the table model, i.e. have at least one cell within it
virtual ErrorCode ITableCommands::ApplyColOverrides (const ColRangecols,
const AttributeBossListattrs 
)
pure virtual

Method to apply attribute-overrides to the given column range.

This encapsulates the execution of a command of class kApplyColOverridesCmdBoss. This command in turn delegates to the table model's attribute modifier (ITableAttrModifier) to change the specified overrides.

Returns
kSuccess if the command executed successfully, kFailure otherwise
virtual ErrorCode ITableCommands::ApplyRowOverrides (const RowRangerows,
const AttributeBossListattrs 
)
pure virtual

Method to apply attribute-overrides to the given row range.

This encapsulates the execution of a command of class kApplyRowOverridesCmdBoss. This command in turn delegates to the table model's attribute modifier (ITableAttrModifier) to change the specified overrides.

Returns
kSuccess if the command executed successfully, kFailure otherwise
virtual ErrorCode ITableCommands::ApplyTableOverrides (const AttributeBossListattrs)
pure virtual

Applies table-level overrides to model. These attributes are represented by boss classes that are distinctively identified by aggregating an ITableAttrReport interface and have a ClassID such as kTableAttr<whatever>Boss.

Parameters
cellsthe cells within the given GridArea to operate upon
attrslist of boss objects specifying by their ClassID the attribute to override and new values
Returns
kSuccess if the command executed successfully, kFailure otherwise
virtual ErrorCode ITableCommands::ClearBorderOverrides (Tables::ECellEdge edge,
const AttributeBossListattrs 
)
pure virtual

Removes cell-border overrides

Parameters
edgethe side which border we are dealing with
attrslist of boss objects specifying by their ClassID the override to remove
Returns
kSuccess if the command executed successfully, kFailure otherwise
virtual ErrorCode ITableCommands::ClearCellOverrides (const GridAreacells,
const AttributeBossListattrs 
)
pure virtual

Removes cell-attribute overrides within specified area. These attributes are represented by boss classes that are distinctively identified by aggregating an ITableAttrReport interface and have a ClassID such as kCellAttr<whatever>Boss.

Parameters
cellsthe cells within the given GridArea to operate upon
attrslist of boss objects specifying by their ClassID the override to remove
Returns
kSuccess if the command executed successfully, kFailure otherwise
virtual ErrorCode ITableCommands::ClearCellOverridesUISafe (const GridAreacells,
const AttributeBossListattrs 
)
pure virtual

Removes cell-attribute overrides within specified area.

These attributes are represented by boss classes that are distinctively identified by aggregating an ITableAttrReport interface and have a ClassID such as kCellAttr<whatever>Boss.

The difference between this command and the one above is that this one checks the GridArea we are applying to and makes sure it still exists in the table. You can run into this problem through the preview dialogs. If the apply table dimensions command is fired before the Clear Cell Attributes command then you end up clearing attributes on a new table structure which if using the above command would crash

Parameters
cellsthe cells within the given GridArea to operate upon
attrslist of boss objects specifying by their ClassID the override to remove
Returns
kSuccess if the command executed successfully, kFailure otherwise
virtual ErrorCode ITableCommands::ClearCellStrokes (const GridAreaarea,
const ICellStrokeAttrData::Datadata 
)
pure virtual
Method to remove stroke-overrides from specified sides of cells in given area.



Encapsulates execution of command of class kModifyCellStrokesCmdBoss. This in turn delegates

to the table model's attribute modifier (ITableAttrModifier) to clear the strokes specified.



For instance, to clear all the stroke-weight attributes set on all sides of the cells in the

area, initialise a ICellStrokeAttrData::Data struct with the following:


ICellStrokeAttrData::Data data;

data.sides = Tables::eAllSides; &#47;&#47; or other constant from ESelectionSides

data.attrs.Set(ICellStrokeAttrData::eWeight);

Parameters
areacells within this area will have the cell stroke overrides removed
datathis is used to specify the sides and/or other attribute(s) for which the stroke-properties should be cleared.
Returns
kSuccess if the command executed successfully, kFailure otherwise
Precondition
the area should be valid within the table model, i.e. have at least one cell within it
virtual ErrorCode ITableCommands::ClearCellStrokesUISafe (const GridAreaarea,
const ICellStrokeAttrData::Datadata 
)
pure virtual
See Also
ClearCellStrokes The difference between this command and the one above is that this one checks the GridArea we are applying to and makes sure it still exists in the table. You can run into this problem through the preview dialogs. If the apply table dimensions command is fired before the Clear Cell Attributes command then you end up clearing attributes on a new table structure which if using the above command would crash
virtual ErrorCode ITableCommands::ClearContent (const GridAreacells)
pure virtual

Method to remove the content from cells within given region

Parameters
cellsdelimits region within which cell contents are to be cleared
Returns
kSuccess if the command executed successfully, kFailure otherwise
virtual ErrorCode ITableCommands::ConvertCellsType (const GridAreacells,
CellType destType,
bool16 tryToPreserveData = kFalse 
)
pure virtual

Method to convert the type of cells

Parameters
cellsGridArea of cells to be converted
destTypecell type to be converted into
tryToPreserveDataif true, the data is preserved into the cell after conversion, if possible.
virtual ErrorCode ITableCommands::ConvertTableToText (const PMString colSeparator = "\t",
const PMString rowSeparator = "\r" 
)
pure virtual
Parameters
colSeparatordelimiter for parsing columns
rowSeparatordelimiter for parsing rows
virtual ErrorCode ITableCommands::ConvertToBodyRows (const RowRangerows)
pure virtual
Parameters
rowsRows to convert to body. See ITableModel::ConvertToBodyRows for more info.
virtual ErrorCode ITableCommands::ConvertToFooterRows (const RowRangerows)
pure virtual
Parameters
rowsRows to convert to footer. See ITableModel::ConvertToFooterRows for more info.
virtual ErrorCode ITableCommands::ConvertToHeaderRows (const RowRangerows)
pure virtual
Parameters
rowsRows to convert to headers. See ITableModel::ConvertToHeaderRows for more info.
virtual ErrorCode ITableCommands::CreateColSegment (const PMRealdistanceFromEdge,
const RowRangesegmentRange 
)
pure virtual

Method to create a row segment at the distance from the left PMReal specified and spanning the cells in the range GridArea.

Parameters
distanceFromEdge
segment
Returns
kSuccess if the command executed successfully, kFailure otherwise
virtual ErrorCode ITableCommands::CreateRowSegment (const PMRealdistanceFromEdge,
const ColRangesegmentRange 
)
pure virtual

Method to create a row segment at the distance from the top PMReal specified and spanning the cells in the range GridArea.

Parameters
distanceFromEdge
segment
Returns
kSuccess if the command executed successfully, kFailure otherwise
virtual ErrorCode ITableCommands::DeleteColumns (const ColRangecols)
pure virtual

Method to remove a specified range of columns from the table.

Parameters
colsspecifies the range of columns to remove from the table
Returns
kSuccess if the command executed successfully, kFailure otherwise
Precondition
the start of the range should be within the range of columns in the table
the count of columns to be deleted should be greater than 0
table.GetTotalCols().Contains(cols) (GetTotalCols)
virtual ErrorCode ITableCommands::DeleteRows (const RowRangerows)
pure virtual

Method to remove a specified row range from the table model.

Parameters
rowsspecifies a range of rows to be removed from the table model
Returns
kSuccess if the command executed successfully, kFailure otherwise
Precondition
the start of the range should be within the range of rows in the table
the count of rows to be deleted should be greater than 0
table.GetTotalRows().Contains(rows) (GetTotalRows)
virtual ErrorCode ITableCommands::DeleteRowsButNotAnchors (const RowRangerows)
pure virtual

Method that can remove all rows from table model, leaving behind the anchor characters.

This method is meant to be called when deleting a table via a text deletion. In this case it is undesirable for the table to delete the anchor characters.

Parameters
rowsspecifies a range of rows to be removed from the table model which should cover the whole table
Returns
kSuccess if the command executed successfully, kFailure otherwise
Precondition
the start of the range should be within the range of rows in the table
table.GetTotalRows() == rows (GetTotalRows)
virtual ErrorCode ITableCommands::InsertColumns (const ColRangecols,
const Tables::ERelativePosition pos,
const PMRealwidth,
const Tables::EContinuation continuation = Tables::eStructureAllAttrs 
)
pure virtual

Method to insert new, unfilled columns in a table.

Width for the newly-created columns should be specified in points.

If colWidth is 0.0 then the new width is determined from the column relative to which the insertion is being made. A non zero value of width will result in all inserted columns having that width.

See the comments on InsertRows for detail on how attributes are propagated from the reference column to the newly created columns, mutatis mutandis.

Encapsulates the execution of command that is instance of class kInsertColumnsCmdBoss; this acts on the table model to insert columns.

Parameters
colsthe start of the ColRange specifies the insertion location, and the count of the ColRange columns gives the number of columns to add
poseBefore or eAfter to specify whether to insert before or after the current insertion point
width
continuation
Returns
kSuccess if the command could be executed successully, kFailure otherwise
virtual ErrorCode ITableCommands::InsertRows (const RowRangerows,
const Tables::ERelativePosition pos,
const PMRealheight,
const Tables::EContinuation continuation = Tables::eStructureAllAttrs 
)
pure virtual

Method to insert new, unfilled rows in a table.

Height should be specified in points. If the given rowHeight is 0.0 then the new row height is determined from the row relative to which the insertion is being made. A non zero value of height will result in all inserted rows having that minimum height.

The structure and attributes of the row that is the reference for the insertion will be propagated to the newly created rows; for instance, if the relative position is 'eAfter' and the row above the insertion location has a minimum row height of 2 picas and the row height is specified as 0, then the newly created rows will inherit the minimum row size of 2 picas from the rows above the insertion point even if this is not the default for other cells in the table. Similarly, if the relative position is 'eBefore', then the attributes and structure of the row below the insertion point will be propagated to the newly created rows.

Encapsulates the execution of command that is instance of class kInsertRowsCmdBoss. This command in turn acts on the table model to insert rows.

Parameters
rowsspecifies the location as the start of the range, and how many rows to add, as the count
poseBefore or eAfter to specify whether to insert before or after the current insertion point
heightheight of the row specified in points; a non-zero value means inserted rows will have that minimum height, whereas a zero value will result in a calculated value based as described above
continuation
Returns
kSuccess if the command could be executed successully, kFailure otherwise
Precondition
the row range specified has a start within the bounds of the table rows
the count of rows to be added in the row-range given is > 0
the minimimum height specified is >= 0.0
virtual ErrorCode ITableCommands::MergeCells (const GridAreacells)
pure virtual

Method to merge the area specified into a single cell covering a GridSpan that is the union of all the cells within this area.

Parameters
cellsspecifies a grid area that contains the cells to merge
virtual ErrorCode ITableCommands::MoveColumns (ITableModelsourceTable,
GridArea fromArea,
int32 toColumn,
Tables::ERelativePosition pos,
bool16 duplicateFlag 
)
pure virtual

Method to move column(s) in a table

Parameters
sourceTablespecifies the table within which columns are to be moved
fromAreaspecifies the grid area which is to be moved
toColumnspecifies the column where the selected columns are to be moved
posspecifies the relative position with respect to toColumn
duplicateFlagspecifies whether the moved columns are to be duplicated or not
Returns
kSuccess if the command could be executed successully, kFailure otherwise
virtual ErrorCode ITableCommands::MoveRows (ITableModelsourceTable,
GridArea fromArea,
int32 toRow,
Tables::ERelativePosition pos,
bool16 duplicateFlag 
)
pure virtual

Method to move row(s) in a table

Parameters
sourceTablespecifies the table within which rows are to be moved
fromAreaspecifies the grid area which is to be moved
toRowspecifies the row where the selected rows are to be moved
posspecifies the position of moved rows with respect to destination row, i.e. toRow
duplicateFlagspecifies whether the moved rows are to be duplicated or not
Returns
kSuccess if the command could be executed successully, kFailure otherwise
virtual ErrorCode ITableCommands::PastePageItem (const GridAddressanchor,
UIDRef pageItemUID,
bool16 preventCopy = kFalse 
)
pure virtual

Method to paste a page item into the graphic cell.

Parameters
anchorGridAddress of destination cell
pageItemUIDUIDRef of object to be pasted into the cell
preventCopyThe object would not be copied, just removed from the source and pasted here. This is not cut-paste. It should be used, only if object is already in the scrap database.
virtual ICommand* ITableCommands::QueryApplyCellOverridesCmd (const GridAreacells,
const AttributeBossListattrs 
)
pure virtual

Method to acquire command that can be processed to apply overrides to cell attributes within given area

Parameters
cellsdelimits cells that are target of this operation
attrs
Returns
interface ptr that has had reference-count incremented
virtual ICommand* ITableCommands::QueryApplyCellStrokesCmd (const GridAreaarea,
const ICellStrokeAttrData::Datadata 
)
pure virtual

Method to acquire command that can be processed to apply changes to stroke-properties within given area

Parameters
areadelimits cells that are target of this operation
data
Returns
interface ptr that has had reference-count incremented
virtual ICommand* ITableCommands::QueryClearCellStrokesCmd (const GridAreaarea,
const ICellStrokeAttrData::Datadata 
)
pure virtual

Method to acquire command that can be processed to clear stroke-properties within given area

Parameters
areadelimits cells that are target of this operation
data
Returns
interface ptr that has had reference-count incremented
virtual ICommand* ITableCommands::QueryClearCellStrokesUISafeCmd (const GridAreaarea,
const ICellStrokeAttrData::Datadata 
)
pure virtual

Method to acquire command that can be processed to clear stroke-properties within given area

The difference between this command and the one above is that this one checks the GridArea we are applying to and makes sure it still exists in the table. You can run into this problem through the preview dialogs. If the apply table dimensions command is fired before the Clear Cell Attributes command then you end up clearing attributes on a new table structure which if using the above command would crash

Parameters
areadelimits cells that are target of this operation
data
Returns
interface ptr that has had reference-count incremented
virtual ICommand* ITableCommands::QueryDeleteTableCmd (const UIDReftableRef)
pure virtual

Method to acquire command that can be processed to delete an entire table

Parameters
tablemodel ref
Returns
interface ptr that has had reference-count incremented
virtual ErrorCode ITableCommands::RegisterContentMgr (CellType contentMgrType,
const UIDRefcontenMgr 
)
pure virtual

Internal use only. See the documentation on ICellContentMgr for more information.

Parameters
contentMgrType
contenMgr
Returns
kSuccess if the command executed successfully, kFailure otherwise
virtual ErrorCode ITableCommands::RegisterStrand (const UIDRefstrandRef)
pure virtual

Internal use only.

Parameters
strandRef
Returns
kSuccess if the command executed successfully, kFailure otherwise
virtual ErrorCode ITableCommands::ResizeCols (const ColRangecols,
const PMRealnewWidth 
)
pure virtual

Method to apply change in width to columns. This will set the column width for the target column range; this does not affect the minimum column width for the target columns.

Parameters
colsspecifies the target range of columsn for this operation
newWidthspecifies the
Returns
kSuccess if the command executed successfully, kFailure otherwise
virtual ErrorCode ITableCommands::ResizeRows (const RowRangerows,
const PMRealnewHeight 
)
pure virtual

Method to apply change in height to rows.

The result of this method is to set the row-height and the minimum row height for the target rows to newHeight. If some cells in target rows have content that extends below this in depth, then these cells can become overset.

This encapsulates executing the command kResizeRowsCmdBoss. This command delegates to the table model's attribute modifier (ITableAttrModifier) to change the model attributes.

Parameters
rowsspecifies the range of rows to operate upon
newHeightspecifies the new minimum and current row-height to set for the target range of rows
Returns
kSuccess if the command executed successfully, kFailure otherwise
virtual ErrorCode ITableCommands::SetCellText (const WideStringcellText,
const GridAddressanchor 
)
pure virtual

Method to set the text contents of cell with given anchor (top-left) location.

Parameters
cellTextspecifies text contents for cell
anchorlocation of top-left of cell that is target for this operation
Returns
kSuccess if the command executed successfully, kFailure otherwise
virtual ErrorCode ITableCommands::SetTableStyle (const UIDRefstyleRef)
pure virtual

Method to associate new table style with table model. Note that InDesign 2.0 does not support named table styles, so this is a method for future use.

Parameters
styleRefreference to the new table-style to associate with this table model
Returns
kSuccess if the command executed successfully, kFailure otherwise
virtual ErrorCode ITableCommands::SplitCells (const GridAreacells,
const ITableModel::ESplitDirection splitDirection 
)
pure virtual

This method is obsolete. Please use SplitCells. Method to split a cell at specified location in given direction.

Parameters
anchor
splitDirectionone of eVerticalSplit, eHorizontalSplit
Returns
kSuccess if the command executed successfully, kFailure otherwiseMethod to split cells with anchors in the specified area in given direction.
Parameters
cellsarea of cells to split, does not need to contain complete cells
splitDirectionone of eVerticalSplit, eHorizontalSplit
Returns
kSuccess if the command executed successfully, kFailure otherwise
virtual ErrorCode ITableCommands::SwapCellStrokeFill (const GridAreacells)
pure virtual

Method to swap over stroke-fill of the cells in given area. That is, the fill colour, tint and overprint will be swapped one-to-one with the stroke colour, tint and overprint.

This encapsulates execution of a command of class kSwapCellStrokeFillCmdBoss.

Parameters
cellsthe cells within the given GridArea to operate upon
Returns
kSuccess if the command executed successfully, kFailure otherwise
Precondition
the area should be valid within the table model, i.e. have at least one cell within it
virtual ErrorCode ITableCommands::UnmergeCell (const GridAddressanchor)
pure virtual

Method to unmerge the cells at the specified location, breaking apart the cell into grid elements. These elements will have the trivial or unit GridSpan(1,1).

Parameters
anchorspecifies the location of the cell that is to be unmerged
Returns
kSuccess if the command executed successfully, kFailure otherwise
Precondition
the grid address should be valid within the table
the address should refer to an anchor (top-left) of a cell