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. 


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

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.