1. Create the sheet SH01.
The client sends:
{
"jsonrpc": "2.0",
"id": 1,
"method": "CreateObject",
"handle": 1,
"params": [
{
"title": "Title for SH01",
"description": "Description of sheet 1",
"qInfo": {
"qId": "SH01",
"qType": "linked"
},
"qChildListDef": {
"qData": {
"title": "/title",
"description": "/description",
"meta": "/meta",
"order": "/order",
"id": "/qInfo/qId",
"type": "/qInfo/qType",
"lb": "/qListObjectDef",
"hc": "/qHyperCubeDef"
}
}
}
]
}
The engine returns:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"qReturn": {
"qType": "GenericObject",
"qHandle": 2
},
"qInfo": {
"qId": "SH01",
"qType": "linked"
}
},
"change": [
2
]
}
The sheet SH01 is created.
2. Create the transient sheet SH02. This sheet should be linked to the sheet SH01. Therefore, the property qExtendsId is set to SH01 for the sheet SH02.
The client sends:
{
"jsonrpc": "2.0",
"id": 2,
"method": "CreateSessionObject",
"handle": 1,
"params": [
{
"qInfo": {
"qId": "SH02",
"qType": "sheet"
},
"qExtendsId": "SH01"
}
]
}
The engine returns:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"qReturn": {
"qType": "GenericObject",
"qHandle": 3
}
},
"change": [
3
]
}
The transient sheet SH02 is created. This sheet is linked to the sheet SH01 and has the handle 3.
3. Get the layout of the sheet SH02.
The client sends:
{
"jsonrpc": "2.0",
"id": 3,
"method": "GetLayout",
"handle": 3,
"params": []
}
The engine returns:
{
"jsonrpc": "2.0",
"id": 3,
"result": {
"qLayout": {
"qInfo": {
"qId": "SH02",
"qType": "sheet"
},
"qMeta": {},
"qExtendsId": "SH01",
"qSelectionInfo": {},
"title": "Title for SH01",
"description": "Description of sheet 1",
"qChildList": {
"qItems": []
}
}
}
}
The sheet SH02 has the same properties as the sheet SH01.