NDS Labs API
NDS Labs API specification
Version: 0.0
All rights reserved
http://apache.org/licenses/LICENSE-2.0.html
Access
[ Jump to Models ]
Table of Contents
get /projects
get /projects/{project-id}
get /projects/{project-id}/serviceInstances
post /projects/{project-id}/serviceInstances
delete /projects/{project-id}/serviceInstances/{instance-id}
get /services
get /services/{service-id}
(projectsGet)
Global list of NDSLabs projects.
Consumes
This API call consumes the following media types via the
Content-Type request header:
Return type
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
OK
Up
get /projects/{project-id}
(projectsProjectIdGet)
Basic information about a project.
Path parameters
projectId (required)
Path Parameter — The unique project identifier
Consumes
This API call consumes the following media types via the
Content-Type request header:
Return type
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
The project object
Up
get /projects/{project-id}/serviceInstances
(projectsProjectIdServiceInstancesGet)
List of services configured for this project.
Path parameters
projectId (required)
Path Parameter — The unique project identifier
Consumes
This API call consumes the following media types via the
Content-Type request header:
Return type
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
The project object
Up
post /projects/{project-id}/serviceInstances
(projectsProjectIdServiceInstancesPost)
Add service instance
Path parameters
projectId (required)
Path Parameter — The unique project identifier
Consumes
This API call consumes the following media types via the
Content-Type request header:
Request body
service (optional)
Body Parameter — ID of service to add
Return type
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
OK
Up
delete /projects/{project-id}/serviceInstances/{instance-id}
(projectsProjectIdServiceInstancesInstanceIdDelete)
Delete a service instance
Path parameters
projectId (required)
Path Parameter — The unique project identifier
instanceId (required)
Path Parameter — The unique service instance identifier
Consumes
This API call consumes the following media types via the
Content-Type request header:
Return type
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
OK
(servicesGet)
Global list of available NDSLabs services. These are logical\nservices that relate to one or more Kubernetes service definition.
Consumes
This API call consumes the following media types via the
Content-Type request header:
Return type
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
OK
Up
get /services/{service-id}
(servicesServiceIdGet)
Basic information about a global service.
Path parameters
serviceId (required)
Path Parameter — The unique service identifier
Consumes
This API call consumes the following media types via the
Content-Type request header:
Return type
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
Responses
200
The service object
[ Jump to Methods ]
Table of Contents
Project
Service
ServiceInstance
Inline_response_200
Inline_response_200_1
Inline_response_200_2
Inline_response_200_3
Inline_response_200_4
Inline_response_200_5
Project_contact
Project_quotas
Service_links
id
Integer
name
String
description
String
contact
Project_contact
quotas
Project_quotas
uid
Integer
name
String
key
String
description
String
standalone
Boolean
persistent
Boolean
template
String
links
Service_links
id
Integer
service
Service
creationTimestamp
Integer
replicas
Integer
status
String
data
array[ServiceInstance]
optional
array[String]
required
array[String]


Runsmith
Dashboard
Records
Settings
Friends
Logout
Logout
menu
list
GOALS
TEAMS
Goal Completion Date
Activity Type
Distance
Max Time
Status
12/2/2020
Run
5.0
43 min 26 seconds
ACHIEVED
...
Update
Delete
12/4/2020
Run
5.5
45 min 23 seconds
ACHIEVED
...
Update
Delete
12/6/2020
Run
6.0
54 min 16 seconds
ACHIEVED
...
Update
Delete


Introduced in Excel 10 (2002) this record is an FRT record. SXADDL is used for storing additional information about Pivot Tables and Query Tables, specifically extensions that are new for Excel 10 and beyond.
This record has a large combination of possible uses and kinds of data, hence all the sxc s and sxds described below. Each class (sxc ) may have multiple data types ( sxd ), and a sequence of SXADDL records for a particular class begins with the sxdId variant of an SXADDL record and ends with the sxdEnd variant of an SXADDL record. Also, classes can be nested – proper class nesting is important and required.
Record Data: Generic SXADDL Template (see specific variants below)
|
Offset |
Name |
Size |
Contents |
|
4 |
rt |
2 |
Record type; this matches the BIFF rt in the first two bytes of the record; =0864h |
|
6 |
grbitFrt |
2 |
FRT flags; must be zero |
|
8 |
sxc |
1 |
PivotTable, PivotCache or Query Table class of information contained in this record (View, Field, etc.); see description of sxc values below. |
|
9 |
sxd
|
1 |
PivotTable, PivotCache or Query Table data type contained in this record (Id, End, etc.); see description of sxd values below. |
|
10 |
dwUserData |
4 |
Extra piece of data for this record. Usage is dependant on the sxc and sxd . |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
rgbSxAddlData |
var |
Data for this record. Usage is dependant on the sxc and sxd . |
Here is a description of the different sxc values that can go into the SXADDL record.
|
sxc PivotTable, PivotCache or Query Table Class |
|
|
|
sxcView |
00h |
PivotTable view properties (related to rtSxview
) |
|
sxcField |
01h |
PivotTable field properties (related to rtSxvd
) |
|
sxcHierarchy |
02h |
OLAB cube hierarchy properties (related to rtSxth
) |
|
sxcCache |
03h |
PivotTable cache properties (related to rtSxDb
) |
|
sxcCacheField |
04h |
PivotTable cache field properties (related to rtSxFdb
) |
|
sxcQsi |
05h |
Query Table properties (related to rtQsi ) |
|
sxcQuery |
06h |
Database query properties (related to rtDbquery
) |
|
sxcGrpLevel |
07h |
Properties of an OLAP cube level when two or more OLAP cube members were grouped
within this OLAP cube hierarchy. Note : this particular level may not be
directly involved in the grouping operation. |
|
sxcGroup |
08h |
Definition of a group of OLAP cube members in an OLAP cube group level. |
|
(Reserved) |
FCh |
Reserved |
|
(Reserved) |
FEh |
Reserved |
|
(Reserved) |
FFh |
Reserved |
Here is a description of the different sxd values that can go into the SXADDL record.
|
sxd PivotTable, PivotCache or Query Table Data Type |
|
|
|
sxdId |
00h |
An identifier that uniquely refers to the exact instance of an object (view, field, etc.) a class refers to. Since all following records up to a corresponding sxdEnd record will be associated with the instance referred to by this ID this record should be emitted first for a new set of class records. |
|
sxdVerUpdInv |
01h |
If the PivotTable is updated by PivotTable code of this version or lower then the rest of the records for this class instance should be considered invalid when reloaded into Excel 10 or later. |
|
sxdVer10Info |
02h |
Additional version 10 properties (usually represented as flags). Dependant on the sxc being used. |
|
sxdCalcMember |
03h |
Defintion of a user-defined calculated member or a set in an OLAP cube. |
|
sxdXMLSource |
04h |
URL to use when editing the source of a Web-based Query Table. |
|
sxdSrcDataFile |
05h |
Name of source data file (such as an MDB file), if any, that the PivotTable or Query Table originally retrieved data from. |
|
sxdSrcConnFile |
06h |
Name of file, if any, where we got the original connection and query information to the data source. |
|
sxdReconnCond |
07h |
How to handle the case when a refresh operation can’t reconnect to the data source. |
|
sxdProperty |
05h |
Describes an OLAP cube member property being shown on the PivotTable view. |
|
sxdGrpLevelInfo |
06h |
Properties of an OLAP cube group level. The level was constructed due to a user operation that grouped two or more OLAP cube members. |
|
sxdGrpInfo |
07h |
Properties of a group of OLAP cube members in an OLAP cube group level. |
|
sxdMember |
08h |
The name of an OLAP cube member that belong to a group. |
|
sxdFilterMember |
09h |
The names of the OLAP cube members selected for a hierarchy in the page area of the PivotTable view. |
|
sxdCalcMemString |
0Ah |
MDX of a calculated member formula in an OLAP cube when the formula length is greater than 255 characters. |
|
(Reserved) |
FCh |
Reserved |
|
(Reserved) |
FDh |
Reserved |
|
(Reserved) |
FEh |
Reserved |
|
sxdEnd |
FFh |
No data but indicates there are no more records for the current class instance. |
Note : The specific SXADDL Variants only show the BIFF record fields starting at offset 8 or greater; the FRT header is the same for all of them.
Record Data: SXADDL Variant: sxdId (identifier). Used by multiple sxc classes as the initial record of the set for the given class instance. If the string ID is greater than 255 characters then the string is parsed into 255 character (at the most) segments with each segment saved in its own SXADDL record.
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
One of the following: |
|
9 |
sxd |
1 |
= sxdId=00h (ID) |
|
10 |
cchNameTotal |
4 |
For the first record for this ID this will be the length in characters of the ID string ( stName ). For subsequent/continuation records it will be zero. |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
stName |
var |
Name (ID) string, identifying class instance, etc.; continued across multiple SXADDL records if necessary, using Unicode encoding. (See section titled Unicode Strings in Biff8 for more information about these encodings.) |
Record Data: SXADDL Variant: sxdId (identifier) for sxcCache
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcCache=03h (PivotTable cache) |
|
9 |
Sxd |
1 |
= sxdId=00h (ID) |
|
10 |
idCache |
4 |
The internally assigned PivotTable cache ID (a DWORD). |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
rgbSxAddlData |
var |
(empty) |
Record Data: SXADDL Variant: sxdEnd (end of class). Used by multiple sxc classes as the final record of the set for the given class instance.
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
One of the following: |
|
9 |
sxd |
1 |
= sxdEnd=FFh (End) |
|
10 |
dwUserData |
4 |
=0 |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
rgbSxAddlData |
var |
(empty) |
Record Data: SXADDL Variant: sxdVerUpdInv (the properties are invalid when the PivotTable view is updated by the indicated PivotTable version or earlier). Used by multiple sxc classes.
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
One of the following:
= sxcView=00h (PivotTable view) |
|
9 |
sxd |
1 |
= sxdVerUpdInv=01h (properties invalid when PivotTable view updated by certain PivotTable version or earlier) |
|
10 |
dwVersionInvalidates |
4 |
One of the following version numbers: |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
(rgbSxAddlData) |
Var |
(empty) |
Record Data: SXADDL Variant: sxdVer10Info (Excel version 10 properties) for sxcCache .
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcCache=03h (PivotTable cache) |
|
9 |
sxd |
1 |
= sxdVer10Info=02h (Excel 10 properties) |
|
10 |
(dwUserData) |
4 |
Reserved; Must be zero. |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
sxdbsave10 |
14 |
Structure of Excel 10 properties (described below) |
The sxdbsave10 structure looks like this:
|
Offset |
Name |
Size |
Contents |
|
0 |
citmGhostMax |
4 |
Maximum number of PivotItems that no longer appear in any records retained during PivotTable refresh. |
|
4 |
bVerCacheLastRefresh |
1 |
The PivotTable version which last refreshed this cache. |
|
5 |
bVerCacheRefreshableMin |
1 |
The minimum PivotTable version needed to refresh this cache. |
|
6 |
numDateCopy |
8 |
Redundant date of when the PivotTable cache was last refreshed. |
Record Data: SXADDL Variant: sxdVer10Info (Excel 10 properties) for sxcView .
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcView=00h (PivotTable view) |
|
9 |
sxd |
1 |
= sxdVer10Info=02h (Excel 10 properties) |
|
10 |
dwViewFlagsVer10 |
4 |
PivotTable view Excel 10 flags (described below) |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
(rgbSxAddlData) |
0 |
(empty) |
The dwViewFlagsVer10 looks like this:
|
Bits |
Mask |
Name |
Contents |
|
7-0 |
000000FFh |
bVerSxMacro |
Default property settings for the PivotTable view were initialized based on this
PivotTable version. |
|
8 |
00000100h |
fDisplayImmediateItems |
=1 if PivotItems are displayed in the PivotTable view even when there is no field
in the data area |
|
9 |
00000200h |
fEnableDataEd |
=1 if the user is allowed to change the values in the data area of the PivotTable
view |
|
10 |
00000400h |
fDisableFList |
=1 if the PivotTable field list control/window is not displayed when the user’s
selection is in a PivotTable cell |
|
11 |
00000800h |
fReenterOnLoadOnce |
=1 if the PivotTable view is automatically re-entered onto the worksheet on the
next load |
|
12 |
00001000h |
fNotViewCalculatedMembers |
=1 if OLAP cube calculated members should be hidden in the PivotTable view |
|
13 |
00002000h |
fNotVisualTotals |
=1 if grand totals and subtotals in a PivotTable based on an OLAP source include
values of hidden members rather than just the values of the members currently shown
in the PivotTable view. |
|
14 |
00004000h |
fPageMultipleItemLabel |
=1 if when a field, from a PivotTable that is not based on an OLAP source, has one
or more hidden items and is being shown in the page area the PivotItem cell shows
the text “(Multiple Items)” instead of “(All)” |
|
15 |
00008000h |
fTensorFillCv |
=1 if for a PivotTable based on an OLAP source the data/aggregate cells in the PivotTable
view use the background color, if available, from the OLAP server. |
|
16 |
00010000h |
fHideDDData |
=1 if the dropdown control for the “Data” PivotField should be hidden. |
|
31-17 |
FFFE0000h |
(Reserved) |
Reserved; Must be zero |
Record Data: SXADDL Variant: sxdVer10Info (Excel 10 properties) for sxcField .
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcField=01h (PivotTable field) |
|
9 |
sxd |
1 |
= sxdVer10Info=02h (Excel 10 properties) |
|
10 |
dwFieldFlagsVer10 (dwUserData) |
4 |
PivotTable field Excel 10 flags (described below) |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
(rgbSxAddlData) |
0 |
(empty) |
The dwFieldFlagsVer10 looks like this:
|
Bits |
Mask |
Name |
Contents |
|
0 |
00000001h |
fHideDD |
=1 if the dropdown control for this PivotField should be hidden. |
|
31-1 |
FFFFFFFEh |
(Reserved) |
Reserved; Must be zero. |
Record Data: SXADDL Variant: sxdXMLSource (URL for editing the source of a web-based Query Table). If the URL is greater than 255 characters then the string is broken up into 255 character (at the most) segments with each segment saved in its own SXADDL record.
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcQuery=06h (Database query) |
|
9 |
sxd |
1 |
= sxdXMLSource=04h (URL for editing the source of a web-based Query Table) |
|
10 |
cchXMLSource |
4 |
For the first record for this URL this is the length in characters of the URL string ( stXMLSource ). For subsequent/continuation records it is zero. |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
stXMLSource |
Var |
XML Source string, continued across multiple SXADDL records if necessary, using Unicode encoding . (See section titled Unicode Strings in Biff8 for more information about these encodings.) |
Record Data: SXADDL Variant: sxdSrcDataFile (source data file). If the filename is greater than 255 characters then the string is broken up into 255 character (at the most) segments with each segment saved in its own SXADDL record.
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcQuery=06h (Database query) |
|
9 |
sxd |
1 |
= sxdSrcDataFile=05h (Source data file) |
|
10 |
cchSrcDataFile |
4 |
For the first record for this filename this is the length in characters of the filename string ( stSrcDataFile ). For subsequent/continuation records it is zero. |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
stSrcDataFile |
Var |
Source data file string, continued across multiple SXADDL records if necessary, using Unicode encoding . (See section titled Unicode Strings in Biff8 for more information about these encodings.) |
Record Data: SXADDL Variant: sxdSrcConnFile (source connection file). If the filename is greater than 255 characters then the string is broken up into 255 character (at the most) segments with each segment saved in its own SXADDL record.
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcQuery=06h (Database query) |
|
9 |
sxd |
1 |
= sxdSrcConnFile=06h (Source connection file) |
|
10 |
cchSrcConnFile |
4 |
For the first record for this filename this is the length in characters of the filename string ( stSrcConnFile ). For subsequent/continuation records it is zero. |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
stSrcConnFile |
Var |
Source connecting file string, continued across multiple SXADDL records if necessary, using Unicode encoding . (See section titled Unicode Strings in Biff8 for more information about these encodings.) |
Record Data: SXADDL Variant: sxdReconnCond (reconnect handling condition)
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcQuery=06h (Database query) |
|
9 |
sxd |
1 |
= sxdSrcDataFile=07h (Reconnect handling condition) |
|
10 |
rccDBQuery |
4 |
One of the following reconnection handling condition values: |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
(rgbSxAddlData) |
Var |
(empty) |
Record Data: SXADDL Variant: sxdGrpLevelInfo (OLAP cube group level information).
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcGrpLevel=07h (OLAP cube group level) |
|
9 |
sxd |
1 |
= sxdGrpLevelInfo=06h (OLAP cube group level information) |
|
10 |
dwFlagsSxtgl |
4 |
OLAP cube group level flags (described below) |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
stLevelName (rgbSxAddlData) |
Var |
String containing the caption (display name) of this OLAP cube level. |
The dwFlagsSxtgl (OLAP cube group level flags) are as follows:
|
Bits |
Mask |
Name |
Contents |
|
0 |
00000001h |
fGroupLevel |
=1 if this is a custom OLAP cube group level rather than an OLAP cube level that
came from the cube data source |
|
31–1 |
FFFFFFFCh |
(Reserved) |
Reserved; must be zero |
Record Data: SXADDL Variant: sxdGrpInfo (OLAP cube member group information)
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcGroup=08h (OLAP cube member group) |
|
9 |
sxd |
1 |
= sxdGrpInfo=07h (OLAP cube member group information) |
|
10 |
dwFlagsSxtgs (dwUserData) |
4 |
OLAP cube member group flags (see description below) |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
(rgbSxAddlData starts here) |
var |
String containing the unique name of this OLAP cube member group. |
|
var |
stCaption |
var |
String containing the caption (display name) of this OLAP cube member group. |
|
var |
(optional) |
var |
If this group has a parent OLAP cube level then this is a string containing the unique name of that parent level, otherwise the string is missing. |
|
var |
iGroupNum |
4 |
An ID uniquely identifies this group within the OLAP cube level. |
The dwFlagsSxtgs (OLAP cube member group flags) are as follows:
|
Bits |
Mask |
Name |
Contents |
|
3-0 |
0000000fh |
(Reserved) |
Reserved; must be zero |
|
4 |
00000010h |
fHasNoParent |
=1 if this group does not have a parent OLAP cube level |
|
31-5 |
FFFFFFE0h |
(Reserved) |
Reserved; must be zero |
Record Data: SXADDL Variant: sxdMember (OLAP cube group member)
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcGroup=08h (OLAP cube member group) |
|
9 |
sxd |
1 |
= sxdMember=08h (OLAP cube group member) |
|
10 |
dwFlagsSxtgmem |
4 |
OLAP cube group member flags (see description below) |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
stUnique |
Var |
String containing the unique name of an OLAP cube member that is part of the current group |
The dwFlagsSxtgmem (OLAP cube group member flags) are as follows:
|
Bits |
Mask |
Name |
Contents |
|
0 |
00000001h |
(Reserved) |
Reserved; must be zero |
|
1 |
00000002h |
fGroup |
=1 if this is a custom OLAP cube group member rather than an OLAP cube member that
came from the cube data source |
|
2 |
00000004h |
fDead |
=1 if this OLAP cube member doesn’t exist anymore in the cube data source |
|
31-3 |
FFFFFFF8h |
(Reserved) |
Reserved; must be zero |
Record Data: SXADDL Variant: sxdProperty (OLAP cube member property)
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcHierarchy=02h (OLAP cube hierarchy) |
|
9 |
sxd |
1 |
= sxdProperty=05h (OLAP cube member property) |
|
10 |
dwFlagsSxtdmp |
4 |
OLAP cube member property flags (see description below) |
|
14 |
(reserved) |
2 |
Reserved; Must be zero. |
|
16 |
(rgbSxAddlData starts here) |
Var |
String containing the unique name of the OLAP cube member property |
|
var |
sxtdmpp |
8 |
Structure of OLAP cube member property properties (see description below) |
The dwFlagsSxtdmp (OLAP cube member property flags) are as follows:
|
Bits |
Mask |
Name |
Contents |
|
0 |
00000001h |
fDisplayInReport |
=1 if the OLAP cube member property should be displayed in the PivotTable view |
|
1 |
00000002h |
fDisplayInTip |
=1 if the OLAP cube member property should be displayed as a tip. In Excel 10 the
member property is still displayed in the PivotTable view, there will be no tip.
This is persisted to provide a better file roundtrip experience from the Microsoft
Office Web Components Pivot control to Office Excel and back to the Pivot control. |
|
31-2 |
FFFFFFFCh |
(Reserved) |
Reserved; must be zero |
The SXTDMPP structure is organized as follows:
|
Offset |
Name |
Size |
Contents |
|
0 |
cchLevelUnq |
2 |
(unsigned) Count of characters in stProperty , starting with the first character that represents the unique name of the OLAP cube level that the OLAP cube member property belongs to. |
|
2 |
ichPropName |
2 |
(unsigned) Zero-based character offset into stProperty indicating where the OLAP cube member property name begins. |
|
4 |
cchPropName |
2 |
(unsigned) Count of characters in stProperty , starting with character ichPropName that represents the OLAP cube member property name. |
|
6 |
isxtl |
2 |
(signed) Index of the OLAP cube level the OLAP cube member property belongs to. -1 (0xFFFF) indicates the member property applies to all levels in this OLAP cube hierarchy. |
Record Data: SXADDL Variant: sxdFilterMember (OLAP cube filtered members). This record variant can appear multiple times, back to back, with different cStPageItems and grStPageItems settings if the combined length of all the OLAP cube member unique name strings plus the FRT header is bigger than can fit into one BIFF record.
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcHierarchy=02h (OLAP cube hierarchy) |
|
9 |
sxd |
1 |
= sxdFilterMember=09h (OLAP cube filtered members) |
|
10 |
dwSxFilterMemFlags |
4 |
OLAP cube filtered members flags (see description below) |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
(rgbSxAddlData starts here) |
2 |
Count of strings in the list of OLAP cube member unique names that immediately follow this field |
|
18 |
grStPageItems |
var |
List of OLAP cube member unique name strings, one right after another, indicating which members are selected when this OLAP cube hierarchy is in the page of the PivotTable view. |
The dwSxFilterMemFlags (OLAP cube filtered members flags) are as follows:
|
Bits |
Mask |
Name |
Contents |
|
0 |
00000001h |
fEnableMultiplePageItems |
=1 if the user is allowed to select two or more OLAP cube members in the OLAP cube
hierarchy when the hierarchy is in the page area of the PivotTable view. |
|
1 |
00000002h |
fExpectMultiplePageItems |
=1 if Excel should be ready to handle loading multiple OLAP cube member strings. |
|
31-2 |
FFFFFFFCh |
(Reserved) |
Reserved; must be zero |
Record Data: SXADDL Variant: sxdCalcMember (OLAP cube calculated member or set)
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcView=00h (PivotTable view) |
|
9 |
sxd |
1 |
= sxdCalcMember=03h (OLAP cube calculated member or set) |
|
10 |
dwSxcalcmemflags |
4 |
OLAP cube calculated member or set flags (described below) |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
(rgbSxAddlData starts here) |
var |
String containing the OLAP cube calculated member or set unique name. |
|
var |
stMDXFormula |
var |
String containing the MDX representation of the formula for the OLAP cube calculated member if fLongFormula=0 ; otherwise the string is missing and an SXADDL record of type sxdCalcMemString is written that contains the formula |
|
var |
stMemberCaption |
var |
String containing the caption (display name) of the custom OLAP cube calculated member (not used for sets) if fMemberCaption=1 ; otherwise the string is missing |
|
var |
stSourceHierarchy |
var |
String containing the OLAP cube hierarchy unique name of the hierarchy the OLAP cube calculated member (not used for sets) is associated with if fSourceHierarchy=1 ; otherwise the string is missing |
|
var |
stParentUnique |
var |
String containing the OLAP cube member unique name of the parent member of the OLAP cube calculated member (not used for sets) if fParentUnique=1 ; otherwise the string is missing |
|
var |
wSolveOrder |
4 |
When there are two or more OLAP cube calculated members, the order they are calculated in can affect the result of this number ( wSolveOrder ) and is used to determine where in the sequence of calculations this calculated member is computed and applied. A value of zero means it is undetermined (it is up to the OLAP provider) as to where in the calculation sequence the calculated member will be computed. |
The dwSxcalcmemflags (OLAP cube calculated member flags) are as follows:
|
Bits |
Mask |
Name |
Contents |
|
0 |
00000001h |
fParentUnique |
=1 if the string stParentUnique is included
in rgbSxAddlData |
|
1 |
00000002h |
fMemberCaption |
=1 if the string stMemberCaption is included
in rgbSxAddlData |
|
2 |
00000004h |
fSourceHierarchy |
=1 if the string stSourceHierarchy is included
in rgbSxAddlData |
|
3 |
00000008h |
fLongFormula |
=1 if the length of the MDX representation of
the formula is greater than 255 characters. In this case the formula string is written
to an SXADDL record of type
sxdCalcMemString ;
|
|
7–4 |
000000F0h |
(Reserved) |
Reserved; Must be zero. |
|
8 |
00000100h |
fSet |
=1 if the calculation is for an OLAP cube set |
|
31-9 |
FFFFFE00h |
(Reserved) |
Reserved; Must be zero. |
Record Data: SXADDL Variant: sxdCalcMemString (OLAP cube calculated member formula MDX )
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcView=00h (PivotTable view) |
|
9 |
sxd |
1 |
= sxdCalcMemString=0Ah (OLAP cube calculated member formula MDX ) |
|
10 |
cchMDXFormula |
4 |
For the first record for this MDX string this is the length in characters of the MDX string ( stMDXFormula ). For subsequent/continuation records it is zero. |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
stMDXFormula |
var |
MDX formula string, continued across multiple SXADDL records if necessary, using Unicode encoding . (See section titled Unicode Strings in Biff8 for more information about these encodings.) |
Record Data: SXADDL Variant: sxdSxcondfmt (Office Excel 2007 – PivotTable conditional format).
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcSxcondfmt=03h (PivotTable conditional formatting) |
|
9 |
sxd |
1 |
= sxdSxcondfmt=35h (PivotTable conditional format) |
|
10 |
(dwUserData) |
4 |
Reserved; Must be zero. |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
rtsxcondfmt (rgbSxAddlData) |
16 |
Structure of PivotTable conditional formatting properties (described below) |
The RTSXCONDFMT structure is organized as follows:
|
Offset |
Name |
Size |
Contents |
|
0 |
sxcondfmtScope |
4 |
Area of the PivotTable to which the conditional formatting applies. One of the following: 0= Cells in user selection. 1= Cells in the selected data/value fields. 2= Cells in the selected PivotTable field intersections. |
|
4 |
sxcondfmtType |
4 |
Specifies the PivotTable conditional formatting top N evaluation type. One of the following: 0= No top N evaluation. 1= Top N is evaluated across the entire scope range. 2= Top N is evaluated for each row. 3= Top N is evaluated for each column. |
|
8 |
ipriority |
4 |
Priority of the PivotTable conditional formatting rule. |
|
12 |
csxrule |
4 |
Count of PivotTable rule records that follow (see sxdSxrule). |
Record Data: SXADDL Variant: sxdSxpiIvmb (Office Excel 2007 – PivotTable page/report field – cell value metadata mapping).
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcView=00h (PivotTable view) |
|
9 |
sxd |
1 |
= sxdSxpiIvmb=36h (PivotTable page/report field – cell value metadata mapping) |
|
10 |
(dwUserData) |
4 |
Reserved; Must be zero. |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
rtsxpiivmb (rgbSxAddlData) |
8 |
Structure of PivotTable page/report field – cell value metadata mapping (described below) |
The RTSXPIIVMB structure is organized as follows:
|
Offset |
Name |
Size |
Contents |
|
0 |
isxpi |
4 |
Index of PivotTable page/report field. |
|
4 |
ivmb |
4 |
Index of cell value metadata. |
Record Data: SXADDL Variant: sxdAutoShow (Office Excel 2007 – legacy AutoShow item count).
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcField12=17h (PivotTable field) |
|
9 |
sxd |
1 |
= sxdAutoShow=37h (legacy AutoShow item count) |
|
10 |
citmAutoShow (dwUserData) |
4 |
Number of items to show for legacy AutoShow. |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
(rgbSxAddlData) |
var |
(empty) |
Record Data: SXADDL Variant: sxdSxfilter (Office Excel 2007 – PivotTable advanced filter properties).
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcFilter12=1Dh (PivotTable advanced filter) |
|
9 |
sxd |
1 |
= sxdSxfilter=38h (PivotTable advanced filter properties) |
|
10 |
(dwUserData) |
4 |
Reserved; Must be zero. |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
rtsxfilter12 (rgbSxAddlData) |
24 |
Structure of PivotTable advanced filter properties (described below) |
The RTSXFILTER12 structure is organized as follows:
|
Offset |
Name |
Size |
Contents |
|
0 |
isxvd |
4 |
Index of the PivotTable field that this PivotTable filter belongs to. |
|
4 |
isxvdMProp |
4 |
Index of the PivotTable field representing the OLAP cube member property field that this PivotTable filter is defined on. |
|
8 |
sxft |
4 |
Specifies the type of the PivotTable advanced: One of the following: 0= Unknown 1= count 2= percent 3= sum 4= caption equal 5= caption not equal 6= caption begins with 7= caption does not begin with 8= caption ends with 9= caption does not end with |
|
|
|
|
10= caption contains 11= caption does not contain 12 = caption is greater than 13= caption is greater than or equal to 14= caption is less than 15= caption is less than or equal to 16= caption is between 17= caption is not between 18= value equal 19= value not equal |
|
|
|
|
20= value greater than 21= value greater than or equal to 22= value less than 23= value less than or equal to 24= value between 25= value not between 26= date equals 27= date older than 28= date newer than 29= date between |
|
|
|
|
30= tomorrow 31= today 32= yesterday 33= date of next week 34= date of this week 35= date of last week 36= date of next month 37= date of this month 38=date of last month 39= date of next quarter |
|
|
|
|
40= date of this quarter 41= date of last quarter 42= date of next year 43= date of this year 44= date of last year 45= year to date 46= dates in first quarter 47= dates in second quarter 48= dates in third quarter 49= dates in fourth quarter |
|
|
|
|
50= dates in Jan. 51= dates in Feb. 52= dates in Mar. 53= dates in April. 54= dates in May. 55= dates in June. 56= dates in July. 57= dates in Aug. 58= dates in Sep. 59= dates in Oct. |
|
|
|
|
60= dates in Nov. 61= dates in Dec. 62= date not equal 63= date older than or equal 64= date newer than or equal 65= date not between |
|
12 |
iEvalOrder |
4 |
Evaluation order of the PivotTable filter and it starts with zero. |
|
16 |
isxdiMeasure |
4 |
Index of the PivotTable measure field - used only by filters in relational pivots - and specifies on which measure a value filter should apply. |
|
20 |
isxthMeasure |
4 |
Index of the OLAP cube measure field specifying on which measure a value filter should apply. |
Record Data: SXADDL Variant: sxdSxfilterDesc (Office Excel 2007 – PivotTable advanced filter description string).
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcFilter12=1Dh (PivotTable advanced filter) |
|
9 |
sxd |
1 |
= sxdSxfilterDesc=39h (PivotTable advanced filter description string) |
|
10 |
cchDesc (dwUserData) |
4 |
For the first record for the description this will be the length in characters of the description string ( stDesc ). For subsequent/continuation records it will be zero. |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
stDesc (rgbSxAddlData) |
var |
Description string; continued across multiple SXADDL records if necessary, using Unicode encoding . (See section titled Unicode Strings in Biff8 for more information about these encodings.) |
Record Data: SXADDL Variant: sxdSxfilterValue1 (Office Excel 2007 – PivotTable advanced filter value 1).
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcFilter12=1Dh (PivotTable advanced filter) |
|
9 |
sxd |
1 |
= sxdSxfilterValue1=3Ah (PivotTable advanced filter value 1) |
|
10 |
cchValue (dwUserData) |
4 |
For the first record for the value this will be the length in characters of the value string ( stValue ). For subsequent/continuation records it will be zero. |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
stValue (rgbSxAddlData) |
var |
Value string; continued across multiple SXADDL records if necessary, using Unicode encoding . (See section titled Unicode Strings in Biff8 for more information about these encodings.) |
Record Data: SXADDL Variant: sxdSxfilterValue2 (Office Excel 2007 – PivotTable advanced filter value 2).
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcFilter12=1Dh (PivotTable advanced filter) |
|
9 |
sxd |
1 |
= sxdSxfilterValue2=3Bh (PivotTable advanced filter value 2) |
|
10 |
cchValue (dwUserData) |
4 |
For the first record for the value this will be the length in characters of the value string ( stValue ). For subsequent/continuation records it will be zero. |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
stValue (rgbSxAddlData) |
var |
Value string; continued across multiple SXADDL records if necessary, using Unicode encoding . (See section titled Unicode Strings in Biff8 for more information about these encodings.) |
Record Data: SXADDL Variant: sxdXlsfilter (Office Excel 2007 – PivotTable dynamic filter properties).
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcSxfilter12=1Dh (PivotTable advanced filter) |
|
9 |
sxd |
1 |
= sxdXlsfilter=3Ch (PivotTable dynamic filter properties) |
|
10 |
(dwUserData) |
4 |
Reserved; Must be zero. |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
rtxlsfilter (rgbSxAddlData) |
44 |
Structure of PivotTable dynamic filter properties (described below) |
The RTXLSFILTER structure is organized as follows:
|
Offset |
Name |
Size |
Contents |
|
0 |
cft |
4 |
Dynamic filter type. One of the following: 0= Filter type not available 1= Shows values that are above average. 2= Shows values that are below average. 3= Shows values in the top 10. 4= Shows values for a specific date. 5= Shows values before a specific date. 6= Shows values after a specific date. 7= Shows values between two dates, inclusive. 8= Shows tomorrow’s dates. 9= Shows today's dates. |
|
|
|
|
10= Shows yesterday's dates. 11= Shows next week's dates. 12= Shows this week's dates. 13= Shows last week's dates. 14= Shows next month's dates. 15= Shows this month's dates. 16= Shows last month's dates. 17= Shows next quarter's dates. 18= Shows this quarter's dates. 19= Shows last quarter's dates. |
|
|
|
|
20= Shows next year's dates. 21= Shows this year's dates. 22= Shows last year's dates. 23= Shows the dates between the beginning of the year and today, inclusive. 24= Shows the dates that are in the 1st quarter, regardless of year. 25= Shows the dates that are in the 2nd quarter, regardless of year. 26= Shows the dates that are in the 3rd quarter, regardless of year. 27= Shows the dates that are in the 4th quarter, regardless of year. 28= Shows the dates that are in January, regardless of year. 29= Shows the dates that are in February, regardless of year. |
|
|
|
|
30= Shows the dates that are in March, regardless of year. 31= Shows the dates that are in April, regardless of year. 32= Shows the dates that are in May, regardless of year. 33= Shows the dates that are in June, regardless of year. 34= Shows the dates that are in July, regardless of year. 35= Shows the dates that are in August, regardless of year. 36= Shows the dates that are in September, regardless of year. 37= Shows the dates that are in October, regardless of year. 38= Shows the dates that are in November, regardless of year. 39= Shows the dates that are in December, regardless of year. |
|
|
|
|
40= Shows the values for dates that aren’t a specific date. 41= Shows the values before or equal to a specific date. 42= Shows the values equal to or after a specific date. 43= Shows the values that are not between two dates. |
|
4 |
ccriteria |
4 |
Count of criteria values/operands (see ezdoper1 and ezdoper2 ) |
|
8 |
(Variable) |
36 |
Contents are dependent on the value of cft (dynamic filter type), see the variants described below. |
The rest of the RTXLSFILTER structure, when cft = 3, is organized as follows:
|
Offset |
Name |
Size |
Contents |
|
8 |
top10ft |
4 |
Top 10 filter definition. One of the following: 0= Unknown top 10 type. 1= Show the top 10 based on the count of items. 2= Show the top 10 percent. 3= Show the top 10 based on the item values. |
|
12 |
fTop |
2 |
=1 to show the top 10 =0 to show the bottom 10 |
|
14 |
numTopN |
8 |
Top or bottom value. |
|
22 |
(Reserved) |
14 |
Reserved; Must be zero. |
The rest of the RTXLSFILTER structure, when cft < > 3, is organized as follows:
|
Offset |
Name |
Size |
Contents |
|
8 |
ezdoper1 |
10 |
First operand/criteria for the filter. Structure of PivotTable database operand (described below as RTSXEZDOPER ). |
|
18 |
ezdoper2 |
10 |
Second operand/criteria for the filter. Structure of PivotTable database operand (described below as RTSXEZDOPER ). |
|
28 |
djoin1 |
4 |
Specifies the relationship between the two operands/criteria. One of the following: 0= Unknown relationship between the criteria. 1= An “and” relationship between the criteria. 2= An “or” relationship between the criteria. |
|
32 |
djoin2 |
4 |
Specifies the relationship between the two operands/criteria. One of the following: 0= Unknown relationship between the criteria. 1= An “and” relationship between the criteria. 2= An “or” relationship between the criteria. |
The RTSXEZDOPER structure is organized as follows:
|
Offset |
Name |
Size |
Contents |
|
0 |
vts |
1 |
Value type of the operand/criteria. One of the following: 0= Value not specified. 4= Value is a real number. 6= Value is a string. 8= Value is a boolean or error. 10= No match for value. 12= Blank value. 14= Non-blank value. |
|
1 |
grbitSgn |
1 |
Filter operator. One of the following: 1= Show results which are less than criteria. 2= Show results which are equal to criteria. 3= Show results which are less than or equal to criteria. 4= Show results which are greater than criteria. 5= Show results which are not equal to criteria. 6= Show results which are greater than or equal to criteria. |
|
2 |
(Variable) |
8 |
Contents are dependent on the value of vts (value type), see the variants described below. |
The rest of the RTSXEZDOPER structure, when vts = 0, vts = 10, vts = 12 and vts = 14, is organized as follows:
|
Offset |
Name |
Size |
Contents |
|
2 |
(Reserved) |
8 |
Reserved; Must be zero. |
The rest of the RTSXEZDOPER structure, when vts = 4, is organized as follows:
|
Offset |
Name |
Size |
Contents |
|
2 |
num |
8 |
A real number. |
The rest of the RTSXEZDOPER structure, when vts = 6, is organized as follows:
|
Offset |
Name |
Size |
Contents |
|
2 |
fCompare |
1 |
=1 if the string is really simple so that an optimized string comparison routine can be used. =0 if the string is complex or if you’re not sure whether the string is considered simple or complex. |
|
3 |
fAutoWild |
1 |
=1 if the string is treated as a prefix that can match any string that starts with the same characters. |
|
4 |
(Reserved) |
4 |
Reserved; Must be zero. |
The rest of the RTSXEZDOPER structure, when vts = 8, is organized as follows:
|
Offset |
Name |
Size |
Contents |
|
2 |
bBoolErr |
1 |
A Boolean or error value. When fError = 0 then one of the following Boolean values: 0= FALSE 1= TRUE When fError =1 then one of the following Excel error values: 0= #NULL!= a null range reference. 7= #DIV0!= divide by zero. 15= #VALUE!= an invalid value. 23= #REF!= an invalid cell reference. 29= #NAME?= an unrecognized name/label. 36= #NUM!= an invalid number. 42= #N/A= no value available. |
|
3 |
fError |
1 |
=1 if bBoolErr contains an Excel error value. =0 if bBoolErr contains a Boolean value. |
|
4 |
(Reserved) |
4 |
Reserved; Must be zero. |
Record Data: SXADDL Variant: sxdXlsfilterValue1 (Office Excel 2007 – PivotTable dynamic filter value 1).
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcFilter12=1Dh (PivotTable advanced filter) |
|
9 |
sxd |
1 |
= sxdXlsfilterValue1=3Dh (PivotTable dynamic filter value 1) |
|
10 |
cchValue (dwUserData) |
4 |
For the first record for the value this will be the length in characters of the value string ( stValue ). For subsequent/continuation records it will be zero. |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
stValue (rgbSxAddlData) |
var |
Value string; continued across multiple SXADDL records if necessary, using Unicode encoding . (See section titled Unicode Strings in Biff8 for more information about these encodings.) |
Record Data: SXADDL Variant: sxdXlsfilterValue2 (Office Excel 2007 – PivotTable dynamic filter value 2).
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcFilter12=1Dh (PivotTable advanced filter) |
|
9 |
sxd |
1 |
= sxdXlsfilterValue2=3Eh (PivotTable dynamic filter value 2) |
|
10 |
cchValue (dwUserData) |
4 |
For the first record for the value this will be the length in characters of the value string ( stValue ). For subsequent/continuation records it will be zero. |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
stValue (rgbSxAddlData) |
var |
Value string; continued across multiple SXADDL records if necessary, using Unicode encoding . (See section titled Unicode Strings in Biff8 for more information about these encodings.) |
Record Data: SXADDL Variant: sxdFilterMember12 (Office Excel 2007 – filtered OLAP cube member names).
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcHierarchy=02h (OLAP cube hierarchy) |
|
9 |
sxd |
1 |
= sxdFilterMember12=3Fh (filtered OLAP cube member names) |
|
10 |
isxtl (dwUserData) |
4 |
Index of OLAP cube level. |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
rgstMember (rgbSxAddlData) |
var |
Sequence of member name strings using Unicode encoding . (See section titled Unicode Strings in Biff8 for more information about these encodings.) |
Record Data: SXADDL Variant: sxdPropName (Office Excel 2007 – OLAP member property name).
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcCacheField=04h (PivotCache field) |
|
9 |
sxd |
1 |
= sxdProName=40h (OLAP member property name) |
|
10 |
cchName (dwUserData) |
4 |
For the first record for the name this will be the length in characters of the name string ( stName ). For subsequent/continuation records it will be zero. |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
stName (rgbSxAddlData) |
var |
Value string; continued across multiple SXADDL records if necessary, using Unicode encoding . (See section titled Unicode Strings in Biff8 for more information about these encodings.) |
Record Data: SXADDL Variant: sxdInfo12 (Office Excel 2007 – additional version 12 properties) for sxcHierarchy.
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcHierarchy=02h (OLAP cube hierarchy) |
|
9 |
sxd |
1 |
= sxdInfo12=41h (additional version 12 properties) |
|
10 |
dwHierarchyFlags (dwUserData) |
4 |
OLAP cube hierarchy flags (described below) |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
(rgbSxAddlData) |
var |
(empty) |
The dwHierarchyFlags look like this:
|
Bits |
Mask |
Name |
Contents |
|
0 |
00000001h |
fUnbalancedRealKnown |
=1 if it has been determined whether the OLAP cube hierarchy is unbalanced. |
|
1 |
00000002h |
fUnbalancedReal |
=1 if the OLAP cube hierarchy is unbalanced. =0 if fUnbalancedRealKnown is 0 or if the OLAP cube hierarchy is not unbalanced. |
|
2 |
00000004h |
fUnbalancedGroupKnown |
=1 if it has been determined whether the OLAP cube grouped hierarchy is unbalanced. |
|
3 |
00000008h |
fUnbalancedGroup |
=1 if the OLAP cube grouped hierarchy is unbalanced. =0 if fUnbalancedRealKnown is 0 or if the OLAP cube grouped hierarchy is not unbalanced. |
|
4 |
00000010h |
fHidden |
|
|
31-5 |
FFFFFFE0h |
(Reserved) |
Reserved; Must be zero. |
Record Data: SXADDL Variant: sxdInfo12 (Office Excel 2007 – additional version 12 properties) for sxcCache .
|
Offset |
Name |
Size |
Contents |
|
8 |
sxc |
1 |
= sxcCache=03h (PivotCache) |
|
9 |
sxd |
1 |
= sxdInfo12=41h (additional version 12 properties) |
|
10 |
dwCacheFlags (dwUserData) |
4 |
PivotCache flags (described below) |
|
14 |
(Reserved) |
2 |
Reserved; Must be zero. |
|
16 |
(rgbSxAddlData) |
var |
(empty) |
The dwCacheFlags look like this:
|
Bits |
Mask |
Name |
Contents |
|
0 |
00000001h |
fSheetData |
=1 if the PivotCache supports sheet data formulas. |
|
1 |
00000002h |
fSrvSupportAttribDrill |
=1 if the PivotCache's data source supports attribute drill. |
|
2 |
00000004h |
fSrvSupportSubQuery |
=1 if the PivotCache's data source supports sub queries. |
|
31-3 |
FFFFFFF8h |
(Reserved) |
Reserved; Must be zero. |
Any SXADDL variants not listed above are read by Office Excel as is and are retained within the appropriate context in which they were encountered. These records are saved into BIFF if the user saves in BIFF format.


Cadillac Fairview launches shopping app for CF Toronto Eaton Centre
The app will support all of the CF shopping malls in Canada in 2020
by Aisha MalikCadillac Fairview has launched a new shopping app called ‘CF Browse‘ that is now available for the CF Toronto Eaton Centre.
The app allows shoppers to interact with the mall through their phone by searching based on brands, retailers and items. It also contains offers and promotions that can be redeemed at the stores in the mall.
“Through CF Browse, we’re transforming the traditional brick and mortar experience to a brick and mobile one, bringing together our many retailers into one digital platform,” said Jose Ribau, executive vice-president of digital and innovation at Cadillac Fairview, in a press release.
Although the app is only available for Toronto Eaton Centre, it is currently being developed to support all of the CF shopping malls in Canada in 2020.
You can download CF Browse on the iOS App Store and on Google Play.
Source: Cadillac Fairview


|
|
CIFXNameMap Class ReferenceInheritance diagram for CIFXNameMap:
List of all members.
|
Public Member Functions |
| U32 IFXAPI | AddRef (void) |
| U32 IFXAPI | Release (void) |
| IFXRESULT IFXAPI | QueryInterface (IFXREFIID interfaceId, void **ppInterface) |
| IFXRESULT IFXAPI | Initialize (U32 uPalettesNum) |
| IFXRESULT IFXAPI | GenerateScopeId (U32 &uScopeId) |
| IFXRESULT IFXAPI | NewScope (U32 uScopeId, IFXCollisionPolicy uPolicy=IFXCOLLISIONPOLICY_POSTMANGLE) |
| IFXRESULT IFXAPI | DeleteScope (U32 uScopeId) |
| IFXRESULT IFXAPI | SetPrefix (U32 uScopeId, const IFXString &sPrefix) |
| IFXRESULT IFXAPI | SetCollisionPolicy (U32 uScopeId, IFXCollisionPolicy uPolicy) |
| IFXRESULT IFXAPI | GetWorldAlias (U32 uScopeId, IFXString &rsWorldAlias) |
| IFXRESULT IFXAPI | SetWorldAlias (U32 uScopeId, const IFXString &sWorldAlias) |
| IFXRESULT IFXAPI | GetProfile (U32 uScopeId, U32 &rProfile) |
| IFXRESULT IFXAPI | SetProfile (U32 uScopeId, const U32 uProfile) |
| IFXRESULT IFXAPI | GetUnits (U32 uScopeId, F64 &rUnits) |
| IFXRESULT IFXAPI | SetUnits (U32 uScopeId, const F64 units) |
| IFXRESULT IFXAPI | Reserve (U32 uPaletteId, const IFXString &sName) |
| BOOL IFXAPI | IsExist (U32 uScopeId, U32 uPaletteId, const IFXString &sName) |
| IFXRESULT IFXAPI | AddCustom (U32 uScopeId, U32 uPaletteId, const IFXString &sOldName, const IFXString &sNewName) |
| IFXRESULT IFXAPI | Map (U32 uScopeId, U32 uPaletteId, IFXString &rsName) |
| IFXRESULT IFXAPI | Unmap (U32 uScopeId, U32 uPaletteId, const IFXString &sName) |
Protected Member Functions |
| | CIFXNameMap () |
| virtual | ~CIFXNameMap () |
| IFXString | Scope (U32 uScopeId, const IFXString &sName) |
Protected Attributes |
| U32 | m_uRefCount |
| U32 | m_uLastLoadId |
| BOOL | m_bInitialized |
| IFXScopeHash | m_aScope |
| IFXArray< IFXNameHash > | m_aNameHash |
| IFXArray< IFXNameMapHash > | m_aNameMapHash |
Friends |
| IFXRESULT IFXAPI_CALLTYPE | CIFXNameMap_Factory (IFXREFIID interfaceId, void **ppInterface) |
Constructor & Destructor Documentation
| CIFXNameMap::CIFXNameMap |
( |
|
) |
[protected] |
|
| CIFXNameMap::~CIFXNameMap |
( |
|
) |
[protected, virtual] |
|
Member Function Documentation
| IFXRESULT CIFXNameMap::AddCustom |
( |
U32 |
uScopeId, |
|
|
U32 |
uPaletteId, |
|
|
const IFXString & |
sOldName, |
|
|
const IFXString & |
sNewName |
|
) |
[virtual] |
|
|
|
This method creates custom name mapping within specified scope and palette.
Param sOldName should be unique within scope, and param sNewName should be unique within palette.
Implements IFXNameMap. |
| U32 CIFXNameMap::AddRef |
( |
void |
|
) |
[virtual] |
|
|
|
This method increments the reference count for an interface on a component.
- Note:
- It should be called for every new copy of a pointer to an interface on a given component.
- Returns:
- It returns a U32 that contains a value from 1 to 2^32 - 1 that defines the new reference count. The return value should only be used for debugging purposes.
Implements IFXUnknown. |
| IFXRESULT CIFXNameMap::DeleteScope |
( |
U32 |
uScopeId |
) |
[virtual] |
|
|
|
This method removes specified scope.
Implements IFXNameMap. |
| IFXRESULT CIFXNameMap::GenerateScopeId |
( |
U32 & |
uScopeId |
) |
[virtual] |
|
|
|
This method generates unique scope id which is used as a scope identifier parameter for almost all functions in this component.
Implements IFXNameMap. |
| IFXRESULT CIFXNameMap::GetProfile |
( |
U32 |
uScopeId, |
|
|
U32 & |
rProfile |
|
) |
[virtual] |
|
|
|
This method returns profile for scope.
Implements IFXNameMap. |
| IFXRESULT CIFXNameMap::GetUnits |
( |
U32 |
uScopeId, |
|
|
F64 & |
rUnits |
|
) |
[virtual] |
|
|
|
This method returns units scale factor for scope.
Implements IFXNameMap. |
| IFXRESULT CIFXNameMap::GetWorldAlias |
( |
U32 |
uScopeId, |
|
|
IFXString & |
rsWorldAlias |
|
) |
[virtual] |
|
|
|
This method returns world alias for scope.
Implements IFXNameMap. |
| IFXRESULT CIFXNameMap::Initialize |
( |
U32 |
uPalettesNum |
) |
[virtual] |
|
|
|
Initializes NameMap component with number of supported palettes.
Implements IFXNameMap. |
| BOOL CIFXNameMap::IsExist |
( |
U32 |
uScopeId, |
|
|
U32 |
uPaletteId, |
|
|
const IFXString & |
sName |
|
) |
[virtual] |
|
|
|
This method return TRUE if entry exists in specified scope and palette.
Implements IFXNameMap. |
| IFXRESULT CIFXNameMap::Map |
( |
U32 |
uScopeId, |
|
|
U32 |
uPaletteId, |
|
|
IFXString & |
rsName |
|
) |
[virtual] |
|
|
|
This method provides name mapping for specified entry within scope and palette.
If name is already exist within the same scope and palette, function just return. If name exist within different scope, but same palette, function renames it according to collision policy and creates name mapping, so future call with same name will result in same mapping.
Implements IFXNameMap. |
| IFXRESULT CIFXNameMap::NewScope |
( |
U32 |
uScopeId, |
|
|
IFXCollisionPolicy |
uPolicy = IFXCOLLISIONPOLICY_POSTMANGLE |
|
) |
[virtual] |
|
|
|
This method creates and initializes new scope with specified collision policy.
Implements IFXNameMap. |
| IFXRESULT CIFXNameMap::QueryInterface |
( |
IFXREFIID |
interfaceId, |
|
|
void ** |
ppInterface |
|
) |
[virtual] |
|
|
|
This method provides access to the various interfaces supported by a component.
Upon success, it increments the component's reference count and hands back a pointer to the specified interface.
- Note:
- A number of rules must be adhered to by all implementations of IFXAPI QueryInterface . For a list of such rules, refer to the IFXCOM usage guidelines.
- Returns:
- Upon success, IFX_OK is returned. Otherwise, either IFX_E_INVALID_POINTER or IFX_E_UNSUPPORTED are returned.
Implements IFXUnknown. |
| U32 CIFXNameMap::Release |
( |
void |
|
) |
[virtual] |
|
|
|
This method decrements the reference count for the calling interface on a component.
- Note:
- If the reference count on a component falls to zero, the component is destroyed.
- Returns:
- It returns a U32 that contains a value from 1 to 2^32 - 1 that defines the new reference count. The return value should only be used for debugging purposes.
Implements IFXUnknown. |
| IFXRESULT CIFXNameMap::Reserve |
( |
U32 |
uPaletteId, |
|
|
const IFXString & |
sName |
|
) |
[virtual] |
|
|
|
This method creates entry in name map associated with specified scope and palette.
Names same as entry name with different scope will be renamed (according to collision policy).
Implements IFXNameMap. |
|
|
This method sets collision policy for scope.
Implements IFXNameMap. |
| IFXRESULT CIFXNameMap::SetPrefix |
( |
U32 |
uScopeId, |
|
|
const IFXString & |
sPrefix |
|
) |
[virtual] |
|
|
|
This method sets prefix for scope.
This prefix is used to avoid names collision.
Implements IFXNameMap. |
| IFXRESULT CIFXNameMap::SetProfile |
( |
U32 |
uScopeId, |
|
|
const U32 |
uProfile |
|
) |
[virtual] |
|
|
|
This method sets profile for scope.
Implements IFXNameMap. |
| IFXRESULT CIFXNameMap::SetUnits |
( |
U32 |
uScopeId, |
|
|
const F64 |
units |
|
) |
[virtual] |
|
|
|
This method sets units scale factor for scope.
Implements IFXNameMap. |
| IFXRESULT CIFXNameMap::SetWorldAlias |
( |
U32 |
uScopeId, |
|
|
const IFXString & |
sWorldAlias |
|
) |
[virtual] |
|
|
|
This method sets world alias for scope.
Implements IFXNameMap. |
| IFXRESULT CIFXNameMap::Unmap |
( |
U32 |
uScopeId, |
|
|
U32 |
uPaletteId, |
|
|
const IFXString & |
sName |
|
) |
[virtual] |
|
|
|
This method removes mapping for specified entry name.
Implements IFXNameMap. |
Friends And Related Function Documentation
| IFXRESULT IFXAPI_CALLTYPE CIFXNameMap_Factory |
( |
IFXREFIID |
interfaceId, |
|
|
void ** |
ppInterface |
|
) |
[friend] |
|
Member Data Documentation
© 1999 - 2006 Intel Corporation. All rights reserved.
* Other names and brands may be claimed as the property of others.
|
|


{% extends "baselayout.html" %} {% load bootstrap3 %} {% block content %} {% if messages %}
Please give us your comments about this sign. For example: do you think there are other keywords that belong with this sign? Please write your comments or new keyword/s below.
Is there a keyword or keyword/s that DO NOT belong with this sign? Please provide the list of keywords below
Is this sign an {{language}} Sign?
Where is this sign used?
{{ form.whereused }}
Do you like this sign?
Do you use this sign?
If this sign is a suggested new sign, would you use it?
Is the information about the sign correct?


Language:
Copy To
Cancel
Track:
Primary Car Type:
Original Primary Car Type:
Secondary Car Type:
Original Secondary Car Type:
Save
Cancel
Reset
Property
Value (0-255)
Value From Car Type
(used when acceleration = 0)
Original Value (for track)
Acceleration
Top Speed
Grip
Collision Impact
Turning
Sliding Friction


Transfer Modes
There are three modes of data transfers: auto, binary and text (ASCII).
Files are handled differently when it's a plain text document versus all
the other file types.
When text is set as the transfer mode, the server may change the
line endings of the file. That is, return characters may be replaced
with your system's return character. This allows for properly formatted text
files.
However, bad things can happen if you apply a text mode to binary files
(such as Word documents). Here you would want the server to not
interpret anything in the file and just send it as is.
If you don't want to have to change between transfer modes, it's best to
set the mode to auto and let Secure FTP decide which is best.


Scan using the Trusona mobile app.
Authentication failed
Login
Or, use Trusona
Login with Trusona
Fast and more secure.


New File...
Toggle Dropdown
Empty Project
From disk
From gist
Save Changes
Zoom Out
Zoom In
Editor Options
Build & Run
Stop
Project Explorer:


Please fill out the form as fully and completely as possible. Doing so will greatly improve GBIF's efficiency in reviewing your registration and endorsement request.
Briefly describe the scope of your institution/organization in relation to GBIF's mission (e.g. collection holdings, research focus, biodiversity information management, etc.). Upon receiving endorsement, this description will appear on your publisher page (example).
In our experience, it is helpful to have at least two contacts for any data publisher. We encourage submitters to identify at least one additional administrative or technical contact below.
Yes NoPlease provide the administrative contact which will be the personnel for general affairs.
Please provide the technical contact which will be the personnel for technical or data issues.


A Little Bit About Myself
I have been in web development for about three years now and truly couldn't see myself doing
anything else
I have been blessed with the luxury of working around and with some extremely talented devs in the
Grand Rapids area and have been able to gain an amazing amount of knowledge in a short period of
time.
My start was mainly picking up subcontracts and primarily using front-end code such as HTML, CSS,
SCSS,
JavaScript and, on occasion, AngularJS. Shortly there after, as I began to get a good grasp on what
I
was currently working with, I realized something about development, the more I knew the questions I
had. I needed to know how to do it all and how it all worked. Strictly speaking, that is impossible
in
my mind but the adventure and the drive trying to get there is pretty fun. As I dove deeper into the
server side of things I began interviewing with other companies with the blessing of the boss I was
currently working for. While interviewing a business owner said something that stuck like glue to
me.
He told me that I had experience with a lot of different technologies but I wasn't really deep in
any
one thing and that I should do that. So I took that advie and ran with it, a little to much
according
to my wife Sarah, and four year old Lucy. I chose to run with AngularJS and .NET and that is where I
have been since. I will go into more detail and attach descriptions of tech-stacks and methods of
development on each portfolio page. Feel free to take a stroll through some of the websites I've put
up so far. At my core, knowing that there is so much out there to learn that I don't know about
development and so many great people to learn it with along the way makes me feel lucky every single
day that I get to do this. I love every aspect and could not see myself doing anything else.


description = "Default layout" == {# Put here css files produced by SCSS, those are usually the ones without a leading underscore (_filename.scss) #} {% set css = [ 'assets/css/theme.css', ] %} {# Add in js your javascript files, they will be served plain during development This will enhance debuggability. In production, those would be combined together with the rest. Example: set js = ['assets/js/myapp.js'] #} {% set js = [] %} {% set basejs = [ '@jquery', '@framework', <EMAIL_ADDRESS>] %}


Ebola EVD virus health outbreaks outbreak disease case control EBOV â€" West {border-style Africa Republic px;} #ffffff;} Congo factors Democratic Health community â€‰ fatality healthcare human need Sub-Saharan cases new reported African countries outbreaks. public Africa. Sierra affected articles effective infectious rate surveillance transmission access al.Ebola drugs response review vaccines South communication disease. early forest including one-health opportunities patients prevention px; {font-family Africa: DRC, Infect SUDV Uganda associated challenges font-size future important laboratory local medical outbreaks, social time used Africa, DRC Engl Med Sudan Trop animals changes communities contact contacts development diagnostic double; endemic epidemics humans include infected information management mortality past political safe systems treatment trial vaccine Data EVD, Gabon Leone animal approach available border-color border-width care current data engagement epidemic exposure hemorrhagic identified improve included increase individuals knowledge large natural outbreak. people population rates recent related research risk solid; systems. vaccination {font-style {font-weight <. (table Bundibugyo Challenges Congo. CÃ´te However, Med;:â€"../NEJMp Science Table Virus World affecting areas areas. bold caused causing central clinical confirmed considered countries. courier; described dissemination ebolavirus em; emergency epidemic. epidemics. extensive fever global infection involvement likely limited medicine novel number outbreak, provide pt;} published reduce results review. rural search services significant sociocultural spread strategy therapeutic trust understanding using years


Trap 0 Switch IN and OUT select for trap buffer.
Changes the cursor.
When the cursor with the + sign is displayed, segments are added to the trap.
When the cursor with the - sign is displayed, segments are removed from the trap.


{% extends "global/Page.html" %} {% load otree static %} {% block title %} Welcome to Round 1! {% endblock %} {% block content %}
These are the senders' messages:
Sender A: Hello receiver, I have {{ group.message1 }} winning tickets!
Sender B: Hello receiver, I have {{ group.message2 }} winning tickets!
(Please keep in mind that the letters A and B are randomly chosen for senders each round,
so they don't identify the same sender(s))
Throughout the experiment, your identity will be completely anonymous and
will not be disclosed to anyone else. All participants will receive these exact same instructions.
Note: If only the male form is chosen, this is not meant to be gender-specific but serves solely for the better comprehensibility and legibility of the text.
The experiment will take about 25 minutes. For participating in the experiment you will earn $1
for sure and can earn up to $6 in bonus payments, depending on your and other participants’ behavior.
There will be a total of 20 rounds, followed by a short survey that will not affect your payment in
any way. At the end of the experiment, only one of the 20 rounds will be randomly selected, and the earnings
in that round will determine your bonus payment.
Each participant will be randomly assigned a role – either the role of the sender or the role of the receiver.
Roles will not change at any time. In each round, two senders and one receiver will be playing together.
You will be randomly grouped with two other participants each round, so you won't always face the same
sender(s) or reciever. The probability of being grouped with the same participants is very low.
At the beginning of the round, each sender will get 10 lottery tickets. These lottery tickets have no value to the sender, but to the receiver. Each ticket can either be a winning ticket or a blank. The number of winning tickets out of the 10 is randomly assigned to each sender each round. There can be 1, 3, 5, 7 or 9 winning tickets out of the 10. The rest are always blanks. Only the sender will know how many of his 10 tickets are winning tickets.
Each sender sends a message to the receiver, indicating the number of winning lottery tickets he has (again taking values of 1, 3, 5, 7 or 9). The message does not have to indicate the true number of winning ticketsa.
Based on the messages by the two senders in his group, the receiver has to choose one of the senders. The chosen sender earns a bonus payment of $6. The other sender receives a bonus payment of $0.
For the receiver, the bonus payment is determined by a lottery. The lottery box contains the 10 lottery
tickets of the sender he has chosen. One out of the 10 lottery tickets is drawn and determines the
receivers' bonus payment for this round – either $5 if it's a winning ticket or $0 if a blank is drawn.
All tickets are discarded at the end of each round, so they don't carry over to the next round.
Hint: Remember that the senders' message does not have to indicate the true number of winning tickets.
The receiver will be informed about the result of each rounds' lottery after the final round. In some rounds the receiver may also learn how many winning tickets actually were in the box. If so, everyone will be informed about that prior to these rounds. Senders will learn in which rounds they have been chosen when they receive their bonus payment. Everyone will see a short summary of their choices after the last round.
Sender A has received 7 winning tickets (blue), while sender B has received 3. Sender A chooses to send the
message 7 while Sender B chooses to send message 9. After observing both messages, but not the actual number of
winning tickets, the receiver can choose either A or B.
Let's assume the receiver choses sender B. Sender B will earn $6, while sender A will earn nothing. Out of the
10 tickets of sender B, one will be randomly drawn. If it is a blue winning ticket, the receiver will earn
$5. If it is a red blank he will earn nothing.


ANY PHYSICAL DAMAGE OR WATER CORRISON WILL NOT BE COVERED UNDER THE 90 DAY WARRANTY. LAKE OSWEGO MAC REPAIR IS ALSO NOT RESPONSIBLE FOR ANY DATA LOST DURING THE SERVICE, NOR WILL THERE BE REFUNDS, OR EXCHANGES AFTER THIS 90 DAY WARRANTY.


{%template "header.html" .%}
Head
Include Ignored
Positive
Negative
Untriaged
No digests match your query.


[1] Data heavy apps for email download contacts and full web video playback slippery outer shell that 's very nice modern interface with nothing but voice.
[2] searching the ringtones except Bluetooth - get warm such for anyone who stays on standby most of stuff in order to actively use the web..


Home
Search Jobs
Advanced Search
Jobs by Company
Jobs by Category
Jobs by Location
Jobs by Skills
Jobs by Designation
Post Resume
JobSeeker Login
Fast Forward
Resume writing
Certification
Resume Spotlight
Jobs4u
More
Mobile
Pay check
Blog
Disable Item
Home
Search Jobs
Post Resume
JobSeeker Login
Fast Forward
More
Enable Item
Home
Search Jobs
Post Resume
JobSeeker Login
Fast Forward
More
Disable All\Enable All


--- layout: post title: How this longtime Java developer ended up in isomorphic JavaScript land date: 2014-11-10 10:27:55.000000000 -05:00 categories: [] tags: [] status: draft type: post published: false meta: _edit_last: '9432974' author: login: willmitchell777 email<EMAIL_ADDRESS>display_name: Will Mitchell first_name: '' last_name: '' excerpt: !ruby/object:Hpricot::Doc options: {} ---
I find the JavaScript world to be interesting, because even though is is constrained by JavaScript's well known limitations, there is so much cool stuff cool stuff being built with it.
For example:
Meteor
Loopback


WITNESS LIST Government Reform Committee March 13, 2003-8:30A HB 1149 Against: Marsh, David Lee (Capitol Area Rural Transportation System) On: Plaster, Michael (Texas Transit Assoc.) HB 1403 For: Davis, Jennifer (Self) Holcombe, Linda (Texas Industrial Vocational Association (TIVA)) Against: Garia, Juan A. (State Assoc. of Barber Schools) Griffin, Roy C. (T.A.O.T.A.) Maxie, Jr., Adell (Texas Association of Tonsorial Artist & Houston Barbers Association) Shirley, Joe S. (Self) Williams, Sr., Charles E. (Self) On: Beran, Douglas A. (Texas State Board of Barber Examiners) Brown, Ronald L. (State Board of Barber Examiners) Humphrey, Antoinette (TX Cosmetology Commission) Kuykendall, William (Texas State Board of Barber Examiners) Parker, Glenn (Board of Barber Examiner)


Dip is a dynamically typed interpreted programming language written in Python, which gives emphasis to readability and ease of use, while also providing the power of all of python’s libraries. Dip is aimed at beginners, looking to start with programming.
Dip gives you access to a development environment which comes bundled with Dip - The DDE, short for Dip Development Environment. It gathers inspiration from Python’s IDLE, and has a text editor for you to edit and create dip programs, and an interactive shell, where you can execute and see the output of your programs.
You can evaluate expressions by writing them after Dip>
Dip> 1 + 2
3
Dip> 1 - 3
-2
Dip> 3 + 9
12
It's possible to load external files written in Dip by calling the ‘run’ function inside the DDE interface by executing the run function followed by the relative path of the files that you want to be evaluated.
Dip Beta (Version 0.1)
Type "help", "copyright", "credits" or "about" for more information.
Dip> run("/Users/raghav/Desktop/hello_dip.dip")
Hello, Dip
Most of Dip’s functions are either reminiscent of Python, or build off them, so people getting started with programming (or even Python programmers for that matter) won’t have any trouble understanding them. These basics are divided into three different categories, data types, builtin functions and the standard library.
Dip contains 5 data types which you will generally interact with. These are Numbers, Strings, Lists, Functions and Errors.
Numbers
Dip supports integers and decimals, called ints and floats in python. Note that anything following a ‘#’ on the same line is interpreted as a comment and not evaluated.
Dip Beta (Version 0.1)
Type "help", "copyright", "credits" or "about" for more information.
Dip> 10 / 2 5.0 Dip> 1 + 3 4 Dip> 34 * 34 1156
Note that in case of recurring decimals, they are left at 15 decimal places
Dip> 100 / 6
16.666666666666668
Some functions you can perform on numbers are sin, cos, tan and pi.
Dip> sin(45)
0.8509035245341184
Dip> cos(45)
0.5253219888177297
Dip> tan(45)
1.6197751905438615
Dip> pi
3.141592653589793
Strings
A string is a combination of zero or more characters contains inside double-quotes.
Dip> "Hello, Dip!"
"Hello, Dip!"
There are many things that you can do with strings, including adding them, iterating through them, and joining them.
Dip> join("Hello ", "Dip!")
Hello Dip!
Dip> print("I am dip, an interpreted programming language")
I am dip, an interpreted programming language
Dip> variable str = "string!"
string!
Dip> for i = 0 to length(str) then print(str / i)
s
t
r
i
n
g
!
Lists
A list is a combination of values inside square braces, separated by commas.
Dip> ["l", "i", "s", "t"]
["l", "i", "s", "t"]
Lists can contain integers, strings, functions and even other lists.
Dip> [[1, 2], [3, 4], [5, 6]]
1, 2, 3, 4, 5, 6
Dip>
There are many things that you can do with lists, including ‘join’, which joins two lists, ‘add’, which adds an element to a list, ‘remove’, which removes an element at an index from a list.
Dip> variable new_list = join([1, 2, 3], [4, 5, 6])
1, 2, 3, 4, 5, 6
Dip> new_list
1, 2, 3, 4, 5, 6
Dip> add(new_list, 7)
1, 2, 3, 4, 5, 6, 7
Dip> new_list
1, 2, 3, 4, 5, 6, 7
Dip> remove(new_list, 4)
5
Dip> new_list
1, 2, 3, 4, 6, 7
Dip>
Note that the ‘remove’ function removes the element from the 4th index, which in this case, is 5.
Functions
Functions can be defined using the 'function' keyword, followed by the name of the function, and then its arguments in parenthesis. For a single line function, you can use '->' and then type what you want it to do. For a multi-line function, enter a new line and end the function with an end statement
Dip> function add(a, b) -> print(a + b) function add
function odd_or_even(number)
if number % 2 == 0 then print("even") else print("odd")
end
Some functions return values. These values can then be assigned to variables
Read more about functions in the builtin functions section!
Errors
Errors are generated automatically when the user tries to evaluate invalid code. Dip contains 5 different error types, Illegal Character Error, Expected Character Error, Runtime Errors, Invalid Syntax Errors and Custom Errors. Custom errors can also be generated using the ‘error’ function followed by a string inside parenthesis. The string will be the message of the error. Errors in the interpreter can help the user by providing insightful commentary.
Illegal Character Errors - Called when an illegal character is found
Dip> @
Illegal Character: '@'
File Dip Shell, line 1
@
^
Expected Character Errors - Called when a character that was supposed to be in a certain position is not found
Invalid Syntax / Character Not Found: Expected 'end'
File
Runtime Errors - A range of errors that might rise at runtime
Runtime Error: Illegal operation - check you are comparing two different data types (eg. integer and string)
File Dip Shell, line 1
1 - "1" ^^^^^^^
Invalid Syntax Errors - Called when the syntax is invalid
Invalid Syntax / Character Not Found: Expected int, float, identifier, '+', '-', '(', '[', if, for, while or function
File Dip Shell, line 1
5 === 5 ^
Custom Errors - User Defined errors that can be called any time
Dip> error("test error")
Custom Error: test error
These errors can then be used like the built-in errors.
In Dip, each statement is separated by a newline.
print("x")print("y")
In the above example, Dip's lexer categorises these as two statements. If you wish to make two statements in one line, these can be separated by a semicolon
print("x"); print("y")
Variables in Dip can be assigned with the 'variable' keyword, like so (variables must be assigned a value at declaration):
variable x = 1
You can also define multiple variables in the same line
variable x = variable y = variable z = 1
You can change a variable's value after defining it. For example:
variable x = 1
can be changed to variable x = "one"
Variables can then be used in functions, lists and any data type Dip supports.
Dip supports 5 operators, +, -, *, / and %
The + operator can be used to add two values
The - operator can be used to subtract one value from the other
The * operator can be used to multiply two values
The / operator can be used to divide two values
The % operator can be used to find the remainder when two values are divided
These operators can be used in conditionals.
Conditional statements, or an if then statement in Dip can be written like so:
variable x = 1
if x == 1 then print ("x = 1")
This statement prints out ("x = 1") to the screen
You can also have multi line if statements, which can be ended using 'end'
if x == 1 then
print ("x = 1")
print(x)
end
This statement prints out the following:
"x = 1"1
variable python_code = "
# Program make a simple calculator
# This function adds two numbers
def add(x, y):
return x + y
# This function subtracts two numbers
def subtract(x, y):
return x - y
# This function multiplies two numbers
def multiply(x, y):
return x * y
# This function divides two numbers
def divide(x, y):
return x / y
print('Select operation.')
print('1.Add')
print('2.Subtract')
print('3.Multiply')
print('4.Divide')
while True:
# Take input from the user
choice = input('Enter choice(1/2/3/4): ')
# Check if choice is one of the four options
if choice in ('1', '2', '3', '4'):
num1 = float(input('Enter first number: '))
num2 = float(input('Enter second number: '))
if choice == '1':
print(num1, '+', num2, '=', add(num1, num2))
elif choice == '2':
print(num1, '-', num2, '=', subtract(num1, num2))
elif choice == '3':
print(num1, '*', num2, '=', multiply(num1, num2))
elif choice == '4':
print(num1, '/', num2, '=', divide(num1, num2))
break
else:
print('Invalid Input')
"
evaluate(python_code)
What is a Builtin Function
How do these functions actually work under the hood? In reality, they are nothing more than a function written in Python, that the interpreter calls when evaluating the symbol associated to it. That's how I inserted basic functionalities into the language like arithmetic operations and list manipulation, but it doesn't stop here, from very simple builtin operations you can write complex functions like the ones in the std library and expand the functionalities of the language without writing a single line of Python.
Prints text to the screen
Dip> print("I am dip, an interpreted programming language")
I am dip, an interpreted programming language
Say
Uses the Operating System’s ‘say’ command and says whatever is passed into it. Returns nothing.
Dip> say("hi!")
0
Dip>
Read
Reads the content of any given file. Returns the contents of the file.
Dip> read("example.txt")
"This is an example file"
Dip>
Write
Writes something to any given file. Accepts two arguments, one is the file name, and the other is the content. Returns the length of you have written.
Dip> write("example.txt", "This is what I have written to this file")
"This is what I have written to this file"
Dip> read("example.txt")
"This is an example file
This is what I have written to this file"
Random Int
Selects a random integer from the range given to it
Dip> random_int(0, 10)
10
Dip> random_int(0, 10)
9
Dip> random_int(0, 10)
0
Root
Gets the square root of the number given to it
Dip> root(4)
2.0
Sin
Calculates the sin value of a given number
Dip> sin(45)
0.8509035245341184
Cos
Calculates the cos value of a given number
Dip> cos(45)
0.5253219888177297
Tan
Calculates the tan value of a given number
Dip> tan(45)
1.6197751905438615
Input
Gets User Input
Dip> input("User Input...")
ok
Input_Integer
Gets User Input and ensures it is an integer
Dip> input_integer("User Input...")
23
Dip> input_integer("User Input...")
Must be an integer, try again
Dip>input_integer("User Input...")
is_number()
Checks if the argument passed is a number
Dip> is_number(34)
1
Dip> is_number("F")
0
is_string()
Checks if the argument passed is a string
Dip> is_string("string")
1
Dip> is_string(34)
0
is_list()
Checks if the argument passed is a list
Dip> is_list([3, 4, 5])
1
Dip> is_list(34)
0
is_function()
Checks if the argument passed is a function
Dip> variable x = function add(a, b) -> a + b
function add Dip> x
add()
Adds an element to a list
Dip> variable lst = [0]
0
Dip> add(lst, 1)
0, 1
Dip> lst
0, 1
Dip>
remove()
Removes the element at index in a list
Dip> remove(lst, 0)
0
Dip> lst
1
Dip>
join()
Joins two lists or strings
Dip> join(lst, [2, 3])
1, 2, 3
Dip> join("hi", " there")
hi there
Dip>
integer()
Converts argument to an integer
Dip> integer("4")
4
Dip> integer("definitely not an integer")
Runtime Error: ValueError: Invalid literal for integer() with base 10: 'definitely not an integer' File Dip Shell, line 1
integer("definitely not an integer")
decimal()
Converts argument to a decimal
Dip> decimal("34.3434")
34.3434
Dip> decimal("definitely not an decimal")
Runtime Error: ValueError: Could not convert string to decimal: 'definitely not an decimal' File Dip Shell, line 1
decimal("definitely not an decimal")
string()
Converts argument to a string
Dip> string(3434343)
"3434343"
wait()
Freezes the program for the number of seconds provided in the argument
Dip> wait(3)
open()
Opens the website name given in the argument. Returns nothing
Dip> open("google.com")
The standard library is a collection of custom functions written in Dip that gets automatically loaded when you run the Dip interface.
Loops in Dip
There are two major types of loops in Dip, for loops and while loops.
For Loops
Each for loop begins with the word ‘for’ and then defines its range. This is done like this:
Dip> for i = 0 to 5
After this, using the then keyword, users can specify what needs to be done for each of these values.
Dip> for i = 0 to 5 then print(i)
0
1
2
3
4
Note that any variable, such as 'letter' or 'word' can be used as an iterable in for loops. I have used 'i' just for the purpose of tradition. Learn more about using i in for loops.
While Loops
Dip> variable x = 0
0
Dip> while x < 5 then; print(x); variable x = x + 1 end
0
1
2
3
4
Note that a ‘;’ defines a new line Note that while loops can use any variable as an iterable
Recursion in Dip
Here is an example of a recursive program in Dip - A function to calculate the factorial of a number
function factorial(term)
variable fact = 1
if term >= 1 then
for i = 1 to term + 1 then
variable fact = fact * i
end
end
say(fact)
end
Another function in Dip - the famous Fibonacci function
function fib(nterms)
variable n1 = 0
variable n2 = 1
variable count = 0
if nterms <= 0 then print("Input a positive integer")
if nterms == 1 then
print("Fibonnaci sequence upto" + " 1" + ":")
print(n1)
else
print("Fibonacci sequence:")
while count < nterms then
print(n1)
variable nth = n1 + n2
variable n1 = n2
variable n2 = nth
variable count = count + 1
end
end
end