2.4.266 StartBlock
The StartBlock record specifies the beginning of a collection of records. Future records contained in this collection specify saved features to allow applications that do not support the feature to preserve the information. This record MUST have a matching EndBlock record. StartBlock and EndBlock pairs can be nested. Up to 100 levels of blocks can be nested.
Prior to writing a chart-specific future record, which is a record with a record number greater than or equal to 2048 and less than or equal to 2303, according to Record Enumeration, StartBlock records MUST be written according to the following rules:
A StartBlock record MUST NOT be written if the record is preceded by a StartObject record but not preceded by the matching EndObject record. That is, StartBlock and EndBlock pairs MUST NOT belong to any collection defined by StartObject and EndObject.
If there does not exist a StartBlock record with iObjectKind equal to 0x000D without a matching EndBlock record, then a corresponding StartBlock record with iObjectKind equal to 0x000D MUST be written.
If the chart-specific future record exists in the sequence of records that conforms to the DAT rule, and there does not exist a StartBlock record with iObjectKind equal to 0x0006 without a matching EndBlock record, then a corresponding StartBlock record with iObjectKind equal to 0x0006 MUST be written. If a StartBlock record is written because of rule number 2, then this StartBlock record MUST be written immediately after that record.
If the chart-specific future record is in a series, and there does not exist a StartBlock record with iObjectKind equal to 0x000C without a matching EndBlock record, then a corresponding StartBlock record with iObjectKind equal to 0x000C and iObjectInstance1 equal to the number of series prior to this series in the current Sheet MUST be written. If any StartBlock records are written because of rule number 2 or 3, then this StartBlock record MUST be written immediately after those records.
If the chart-specific future record exists in the sequence of records that conforms to the SS rule, and there does not exist a StartBlock record with iObjectKind equal to 0x000E without a matching EndBlock record, then a corresponding StartBlock record with iObjectKind equal to 0x000E, iObjectContext equal to the yi field of the DataFormat record in the current SS rule, and iObjectInstance1 equal to the xi field of the DataFormat record in the current SS rule MUST be written. If any StartBlock records are written because of rule number 2, 3, or 4, then this StartBlock record MUST be written immediately after those records.
If the chart-specific future record is in a series, and is part of a collection defined by a Begin and End pair written immediately after a LegendException record, and there does not exist a StartBlock record with iObjectKind equal to 0x000A without a matching EndBlock record, then a corresponding StartBlock record with iObjectKind equal to 0x000A and iObjectInstance1 equal to the iss field of the LegendException record in the series MUST be written. If any StartBlock records are written because of rule number 2, 3, 4, or 5, then this StartBlock record MUST be written immediately after those records.
If the chart-specific future record is in an axis group. and there does not exist a StartBlock record with iObjectKind equal to 0x0000 without a matching EndBlock record, then a corresponding StartBlock record with iObjectKind equal to 0x0000 and iObjectInstance1 equal to the iax field of the AxisParent record of the axis group MUST be written. If any StartBlock records are written because of rule number 2, 3, 4, 5, or 6, then this StartBlock record MUST be written immediately after those records.
If the chart-specific future record is in a Chart Group, and there does not exist a StartBlock record with iObjectKind equal to 0x0005 without a matching EndBlock record, then a corresponding StartBlock record with iObjectKind equal to 0x0005 and iObjectInstance1 equal to the iax field of the AxisParent record of the axis group MUST be written. If any StartBlock records are written because of rule number 2, 3, 4, 5, 6, or 7, then this StartBlock record MUST be written immediately after those records.
If the chart-specific future record is in an axis, and there does not exist a StartBlock record with iObjectKind equal to 0x0004 without a matching EndBlock record, then:
If the chart-specific future record exists in the sequence of records that conforms to the IVAXIS rule, then a corresponding StartBlock record with iObjectKind equal to 0x0004 and iObjectInstance1 equal to 0x0000 MUST be written. If any StartBlock records are written because of rule number 2, 3, 4, 5, 6, 7, or 8, then this StartBlock record MUST be written immediately after those records.
If the chart-specific future record exists in the sequence of records that conforms to the SERIESAXIS rule, then a corresponding StartBlock record with iObjectKind equal to 0x0004 and iObjectInstance1 equal to 0x0002 MUST be written. If any StartBlock records are written because of rule number 2, 3, 4, 5, 6, 7, or 8, then this StartBlock record MUST be written immediately after those records.
If the chart-specific future record exists in the sequence of records that conforms to the DVAXIS rule, and wType of the Axis record in the sequence of records that conforms to the DVAXIS rule is equal to 0, then a corresponding StartBlock record with iObjectKind equal to 0x0004 and iObjectInstance1 equal to 0x0001 MUST be written. If any StartBlock records are written because of rule number 2, 3, 4, 5, 6, 7, or 8, then this StartBlock record MUST be written immediately after those records.
If the chart-specific future record exists in the sequence of records that conforms to the DVAXIS rule, and wType of the Axis record in the sequence of records that conforms to the DVAXIS rule is equal to 1, then a corresponding StartBlock record with iObjectKind equal to 0x0004 and iObjectInstance1 equal to 0x0003 MUST be written. If any StartBlock records are written because of rule number 2, 3, 4, 5, 6, 7, or 8, then this StartBlock record MUST be written immediately after those records.
If the chart-specific future record exists in the sequence of records that conforms to the DROPBAR rule, and there does not exist a StartBlock record with iObjectKind equal to 0x000F without a matching EndBlock record, then a corresponding StartBlock record with iObjectKind equal to 0x000F and iObjectInstance1 equal to one less than the number of DropBar records written prior to the chart-specific future record in the current Chart Group MUST be written. If any StartBlock records are written because of rule number 2, 3, 4, 5, 6, 7, 8, or 9, then this StartBlock record MUST be written immediately after those records.
If the chart-specific future record is in a legend and there does not exist a StartBlock record with iObjectKind equal to 0x0009 without a matching EndBlock record, then:
If the chart-specific future record is in a chart group, then a corresponding StartBlock record with iObjectKind equal to 0x0009 and iObjectContext equal to 0x0001 MUST be written. If any StartBlock records are written because of rule number 2, 3, 4, 5, 6, 7, 8, 9, or 10, then this StartBlock record MUST be written immediately after those records.
If the chart-specific future record is not in a chart group, then a corresponding StartBlock record with iObjectKind equal to 0x0009 and iObjectContext equal to 0x0000 MUST be written. If any StartBlock records are written because of rule number 2, 3, 4, 5, 6, 7, 8, 9, or 10, then this StartBlock record MUST be written immediately after those records.
If the chart-specific future record is in an attached label, and there does not exist a StartBlock record with iObjectKind equal to 0x0002 without a matching EndBlock record, then:
If the chart-specific future record exists in the sequence of records that conforms to the DFTTEXT rule of a chart group, and the id field of the DefaultText record in the sequence of records that conforms to the DFTTEXT rule is greater than or equal to 0x0002, then a corresponding StartBlock record with iObjectKind equal to 0x0002, iObjectContext equal to 0x0002, and iObjectInstance1 equal to 0xFFFF MUST be written. If any StartBlock records are written because of rule number 2, 3, 4, 5, 6, 7, 8, 9, 10, or 11, then this StartBlock record MUST be written immediately after those records. Else,
If the chart-specific future record exists in the sequence of records that conforms to the DFTTEXT rule of a chart group, then a corresponding StartBlock record with iObjectKind equal to 0x0002, iObjectContext equal to 0x0002, and iObjectInstance1 equal to the id field of the DefaultText record in the sequence of records that conforms to the DFTTEXT rule MUST be written. If any StartBlock records are written because of rule number 2, 3, 4, 5, 6, 7, 8, 9, 10, or 11, then this StartBlock record MUST be written immediately after those records. Else,
If the wLinkVar1 of the ObjectLink record of the attached label is equal to 0x0003, then a corresponding StartBlock record with iObjectKind equal to 0x0002, iObjectContext equal to 0x0004 and iObjectInstance1 equal to 0x0000 MUST be written. If any StartBlock records are written because of rules number 2, 3, 4, 5, 6, 7, 8, 9, 10 or 11, then this StartBlock record MUST be written immediately after those records. Else,
If the wLinkVar1 of the ObjectLink record of the attached label is equal to 0x0002, then a corresponding StartBlock record with iObjectKind equal to 0x0002, iObjectContext equal to 0x0004 and iObjectInstance1 equal to 0x0001 MUST be written. If any StartBlock records are written because of rules number 2, 3, 4, 5, 6, 7, 8, 9, 10 or 11, then this StartBlock record MUST be written immediately after those records. Else,
If the wLinkVar1 of the ObjectLink record of the attached label is equal to 0x0007, then a corresponding StartBlock record with iObjectKind equal to 0x0002, iObjectContext equal to 0x0004, and iObjectInstance1 equal to 0x0002 MUST be written. If any StartBlock records are written because of rule number 2, 3, 4, 5, 6, 7, 8, 9, 10, or 11, then this StartBlock record MUST be written immediately after those records. Else,
If the chart-specific future record is in the first attached label of a chart sheet, then a corresponding StartBlock record with iObjectKind equal to 0x0002 and iObjectContext equal to 0x0000 MUST be written. If any StartBlock records are written because of rule number 2, 3, 4, 5, 6, 7, 8, 9, 10, or 11, then this StartBlock record MUST be written immediately after those records. Else,
If the chart-specific future record is not in the first attached label of a chart sheet, then a corresponding StartBlock record with iObjectKind equal to 0x0002 and iObjectContext equal to 0x0005, iObjectInstance1 equal to wLinkVar1 of the ObjectLink record of the attached label and iObjectInstance2 equal to wLinkVar2 of the ObjectLink record of the attached label MUST be written. If any StartBlock records are written because of rule number 2, 3, 4, 5, 6, 7, 8, 9, 10, or 11, then this StartBlock record MUST be written immediately after those records.
If the chart-specific future record exists in the sequence of records that conforms to the FRAME rule, and there does not exist a StartBlock record with iObjectKind equal to 0x0007 without a matching EndBlock record, then:
If the chart-specific future record is in an attached label or legend, then a corresponding StartBlock record with iObjectKind equal to 0x0007, iObjectContext equal to 0x0000, and iObjectInstance1 equal to 0x0000 MUST be written. If any StartBlock records are written because of rules number 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, or 12, then this StartBlock record MUST be written immediately after those records. Else,
If the chart-specific future record exists in the sequence of records that conforms to the AXES rule, then a corresponding StartBlock record with iObjectKind equal to 0x0007, iObjectContext equal to 0x0001, and iObjectInstance1 equal to 0x0000 MUST be written. If any StartBlock records are written because of rule number 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, or 12, then this StartBlock record MUST be written immediately after those records. Else,
If the chart-specific future record is in a Sheet, then a corresponding StartBlock record with iObjectKind equal to 0x0007, iObjectContext equal to 0x0002, and iObjectInstance1 equal to 0x0000 MUST be written. If any StartBlock records are written because of rule number 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, or 12, then this StartBlock record MUST be written immediately after those records.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
frtHeaderOld |
|||||||||||||||||||||||||||||||
iObjectKind |
iObjectContext |
||||||||||||||||||||||||||||||
iObjectInstance1 |
iObjectInstance2 |
frtHeaderOld (4 bytes): An FrtHeaderOld structure. The frtHeaderOld.rt field MUST be 0x0852.
iObjectKind (2 bytes): An unsigned integer that specifies the type of object that is encompassed by the block. MUST be a value from the following table:
-
Value
Object Type
0x0000
Axis group
0x0002
Attached label record
0x0004
Axis
0x0005
Chart group
0x0006
Dat record
0x0007
Frame
0x0009
Legend
0x000A
LegendException record
0x000C
Series
0x000D
Sheet
0x000E
DataFormat record
0x000F
DropBar record
iObjectContext (2 bytes): An unsigned integer that specifies the context of the object. This value further specifies the object specified in iObjectKind. MUST be a value from the following table:
iObjectKind |
iObjectContext |
iObjectInstance1 |
iObjectInstance2 |
Description of Future Record Type Contents |
---|---|---|---|---|
0x0000 (Axis group) |
0x0000 |
0x0000 |
0x0000 |
Primary axis group of the current chart. |
0x0000 (Axis group) |
0x0000 |
0x0001 |
0x0000 |
Secondary axis group of the current chart. |
0x0002 (AttachedLabel) |
0x0000 |
0x0000 |
0x0000 |
Chart title of the current chart. |
0x0002 (AttachedLabel) |
0x0002 |
0x0000 |
0x0000 |
Default data labels in the chart that are not displayed as a percentage of the sum of all data points, and that do not contain values. |
0x0002 (AttachedLabel) |
0x0002 |
0x0001 |
0x0000 |
Default data labels that contain values or percentage values. |
0x0002 (AttachedLabel) |
0x0002 |
0xFFFF |
0x0000 |
Default for all text in the chart. |
0x0002 (AttachedLabel) |
0x0004 |
0x0000 |
0x0000 |
A: The title formatting Text record of the Category axis or horizontal value axis on a scatter or bubble chart group. |
0x0002 (AttachedLabel) |
0x0004 |
0x0001 |
0x0000 |
B: The title formatting Text record of value axis or vertical value axis on a scatter or bubble chart group. A chart MUST NOT have both A and B. |
0x0002 (AttachedLabel) |
0x0004 |
0x0002 |
0x0000 |
C: The title formatting Text record of the series axis. A chart MUST NOT have both B and C. |
0x0002 (AttachedLabel) |
0x0005 |
Data Point Index |
Series Index |
Data labels for data points in visible series, identified by the zero-based index of the Series record of the current chart and the zero-based index of the AttachedLabel record of the current series. |
0x0002 (AttachedLabel) |
0x0005 |
0xFFFF |
Series Index |
Default data labels for a given series, identified by the zero-based index of the Series record of the current chart. |
0x0004 (Axis) |
0x0000 |
0x0000 |
0x0000 |
Category axis or fill effect of the walls of the current chart. |
0x0004 (Axis) |
0x0000 |
0x0001 |
0x0000 |
Value axis or fill effect of the walls of the current chart. |
0x0004 (Axis) |
0x0000 |
0x0002 |
0x0000 |
Series axis. |
0x0004 (Axis) |
0x0000 |
0x0003 |
0x0000 |
Horizontal value axis for scatter chart group. |
0x0005 (Chart group) |
0x0000 |
0x0000 |
0x0000 |
Chart group of the primary axis group. |
0x0005 (Chart group) |
0x0000 |
0x0001 |
0x0000 |
Chart group of the secondary axis group. |
0x0006 (Dat) |
0x0000 |
0x0000 |
0x0000 |
Data table definition. |
0x0007 (Frame) |
0x0000 |
0x0000 |
0x0000 |
Frame of the current CHARTFORMATS, LD, AXES, and ATTACHEDLABEL in the collection. |
0x0007 (Frame) |
0x0001 |
0x0000 |
0x0000 |
Frame of the plot area. |
0x0007 (Frame) |
0x0002 |
0x0000 |
0x0000 |
Frame of the chart area (section 2.2.3.17) |
0x0009 (Legend) |
0x0000 |
0x0000 |
0x0000 |
Legend of the data table. |
0x0009 (Legend) |
0x0001 |
0x0000 |
0x0000 |
Legend of the chart. |
0x000A (LegendException) |
0x0000 |
0xFFFF |
0x0000 |
Default legend formatting exception information for entries in the current legend. |
0x000A (LegendException) |
0x0000 |
Series Index |
0x0000 |
Legend formatting exception information for a series index entry in the current legend, identified by the zero-based index of the Series record of the current chart. |
0x000C (Series) |
0x0000 |
Series Index |
0x0000 |
Series of the current chart, identified by the zero-based index of the Series record of the current chart. |
0x000D (Chart) |
0x0000 |
0x0000 |
0x0000 |
Current chart. |
0x000E (DataFormat) |
Series Index |
0xFFFF |
0x0000 |
Default formatting for all data points of a given series identified by the zero-based index of the Series record of the current chart. |
0x000E (DataFormat) |
Series Index |
DataFormat Index |
0x0000 |
Formatting of a given data point identified by the zero-based index of the Series record of the current chart and the zero-based index of the DataFormat record of the current chart. |
0x000F (DropBar) |
0x0000 |
0x0000 |
0x0000 |
Up bar of the current chart. |
0x000F (DropBar) |
0x0000 |
0x0001 |
0x0000 |
Down bar of the current chart. |
iObjectInstance1 (2 bytes): An unsigned integer that specifies additional information about the context of the object, together with iObjectContext, iObjectInstance2, and iObjectKind. This field MUST equal one of the values specified in the previous table under the iObjectContext field.
iObjectInstance2 (2 bytes): An unsigned integer that specifies more information about the object context, together with iObjectContext, iObjectInstance1, and iObjectKind. This field MUST equal one of the values specified in the previous table under the iObjectContext field.