twb 0.0.31 → 0.0.33

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. data/bg.cmd +5 -0
  2. data/lib/twb.rb +7 -2
  3. data/lib/twb/dashboard.rb +7 -7
  4. data/lib/twb/datasource.rb +38 -9
  5. data/lib/twb/docdashboard.rb +123 -0
  6. data/lib/twb/field.rb +39 -0
  7. data/lib/twb/hashtohtml.rb +39 -0
  8. data/lib/twb/htmllistcollapsible.rb +154 -0
  9. data/lib/twb/localfield.rb +42 -0
  10. data/lib/twb/metadatafield.rb +55 -0
  11. data/lib/twb/util/UpLeftArrowsNav.png +0 -0
  12. data/lib/twb/util/hashtohtml.rb +45 -0
  13. data/lib/twb/util/htmllistcollapsible.rb +195 -0
  14. data/lib/twb/window.rb +31 -0
  15. data/lib/twb/workbook.rb +77 -12
  16. data/lib/twb/worksheet.rb +29 -1
  17. data/test/No Content.injected.twb +82 -0
  18. data/test/No Content.twb +68 -0
  19. data/test/No Dashboards.injected.twb +618 -0
  20. data/test/No Dashboards.twb +604 -0
  21. data/test/Special Documentation.html +198 -0
  22. data/test/TableauDocInlineCSS.html +165 -0
  23. data/test/UpLeftArrowsNav.png +0 -0
  24. data/test/Web Page Dashboards.injected.twb +1361 -0
  25. data/test/Web Page Dashboards.twb +1347 -0
  26. data/test/collapsibleList.html +198 -0
  27. data/test/testDocDashboard.rb +53 -0
  28. data/test/testDocDashboardCreate.rb +33 -0
  29. data/test/testHTMLList.rb +23 -0
  30. data/test/testTwbGem.rb +67 -0
  31. data/testTwbGem.rb +23 -9
  32. data/testTwbWrite.rb +22 -0
  33. data/twb-0.0.32.gem +0 -0
  34. metadata +29 -12
  35. data/twb-0.0.1.gem +0 -0
  36. data/twb-0.0.2.gem +0 -0
  37. data/twb-0.0.21.gem +0 -0
  38. data/twb-0.0.22.gem +0 -0
  39. data/twb-0.0.23.gem +0 -0
  40. data/twb-0.0.24.gem +0 -0
  41. data/twb-0.0.25.gem +0 -0
  42. data/twb-0.0.26.gem +0 -0
  43. data/twb-0.0.27.gem +0 -0
  44. data/twb-0.0.29.gem +0 -0
  45. data/twb-0.0.30.gem +0 -0
@@ -0,0 +1,604 @@
1
+ <?xml version='1.0' encoding='utf-8' ?>
2
+
3
+ <workbook source-platform='win' version='8.3' xmlns:user='http://www.tableausoftware.com/xml/user'>
4
+ <!-- build 8300.15.0219.2230 -->
5
+ <preferences>
6
+ </preferences>
7
+ <datasources>
8
+ <datasource inline='true' name='Sample - Coffee Chain (Access)' version='8.3'>
9
+ <connection authentication='no' class='msaccess' driver='' filename='C:\Users\CTG\Documents\My Tableau Repository\Datasources\Sample - Coffee Chain.mdb' mdwpath='' tablename='factTable'>
10
+ <relation join='inner' type='join'>
11
+ <clause type='join'>
12
+ <expression op='='>
13
+ <expression op='[factTable].[ProductId]'>
14
+ </expression>
15
+ <expression op='[Product].[ProductId]'>
16
+ </expression>
17
+ </expression>
18
+ </clause>
19
+ <relation join='inner' type='join'>
20
+ <clause type='join'>
21
+ <expression op='='>
22
+ <expression op='[factTable].[Area Code]'>
23
+ </expression>
24
+ <expression op='[Location].[Area Code]'>
25
+ </expression>
26
+ </expression>
27
+ </clause>
28
+ <relation name='factTable' table='[factTable]' type='table' />
29
+ <relation name='Location' table='[Location]' type='table' />
30
+ </relation>
31
+ <relation name='Product' table='[Product]' type='table' />
32
+ </relation>
33
+ <cols>
34
+ <map key='[Area Code]' value='[factTable].[Area Code]' />
35
+ <map key='[Budget COGS]' value='[factTable].[Budget COGS]' />
36
+ <map key='[Budget Margin]' value='[factTable].[Budget Margin]' />
37
+ <map key='[Budget Profit]' value='[factTable].[Budget Profit]' />
38
+ <map key='[Budget Sales]' value='[factTable].[Budget Sales]' />
39
+ <map key='[COGS]' value='[factTable].[COGS]' />
40
+ <map key='[Date]' value='[factTable].[Date]' />
41
+ <map key='[Inventory]' value='[factTable].[Inventory]' />
42
+ <map key='[Location_Area Code]' value='[Location].[Area Code]' />
43
+ <map key='[Margin]' value='[factTable].[Margin]' />
44
+ <map key='[Market Size]' value='[Location].[Market Size]' />
45
+ <map key='[Market]' value='[Location].[Market]' />
46
+ <map key='[Marketing]' value='[factTable].[Marketing]' />
47
+ <map key='[Product Line]' value='[Product].[Product Line]' />
48
+ <map key='[Product Type]' value='[Product].[Product Type]' />
49
+ <map key='[ProductId]' value='[factTable].[ProductId]' />
50
+ <map key='[Product]' value='[Product].[Product]' />
51
+ <map key='[Product_ProductId]' value='[Product].[ProductId]' />
52
+ <map key='[Profit]' value='[factTable].[Profit]' />
53
+ <map key='[Sales]' value='[factTable].[Sales]' />
54
+ <map key='[State]' value='[Location].[State]' />
55
+ <map key='[Total Expenses]' value='[factTable].[Total Expenses]' />
56
+ <map key='[Type]' value='[Product].[Type]' />
57
+ </cols>
58
+ <metadata-records>
59
+ <metadata-record class='column'>
60
+ <remote-name>Area Code</remote-name>
61
+ <remote-type>2</remote-type>
62
+ <local-name>[Area Code]</local-name>
63
+ <parent-name>[factTable]</parent-name>
64
+ <remote-alias>Area Code</remote-alias>
65
+ <ordinal>12</ordinal>
66
+ <local-type>integer</local-type>
67
+ <aggregation>Sum</aggregation>
68
+ <precision>5</precision>
69
+ <contains-null>true</contains-null>
70
+ <attributes>
71
+ <attribute datatype='string' name='DebugRemoteType'>&quot;I2&quot;</attribute>
72
+ </attributes>
73
+ </metadata-record>
74
+ <metadata-record class='column'>
75
+ <remote-name>Budget COGS</remote-name>
76
+ <remote-type>5</remote-type>
77
+ <local-name>[Budget COGS]</local-name>
78
+ <parent-name>[factTable]</parent-name>
79
+ <remote-alias>Budget COGS</remote-alias>
80
+ <ordinal>9</ordinal>
81
+ <local-type>real</local-type>
82
+ <aggregation>Sum</aggregation>
83
+ <precision>15</precision>
84
+ <contains-null>true</contains-null>
85
+ <attributes>
86
+ <attribute datatype='string' name='DebugRemoteType'>&quot;R8&quot;</attribute>
87
+ </attributes>
88
+ </metadata-record>
89
+ <metadata-record class='column'>
90
+ <remote-name>Budget Margin</remote-name>
91
+ <remote-type>5</remote-type>
92
+ <local-name>[Budget Margin]</local-name>
93
+ <parent-name>[factTable]</parent-name>
94
+ <remote-alias>Budget Margin</remote-alias>
95
+ <ordinal>10</ordinal>
96
+ <local-type>real</local-type>
97
+ <aggregation>Sum</aggregation>
98
+ <precision>15</precision>
99
+ <contains-null>true</contains-null>
100
+ <attributes>
101
+ <attribute datatype='string' name='DebugRemoteType'>&quot;R8&quot;</attribute>
102
+ </attributes>
103
+ </metadata-record>
104
+ <metadata-record class='column'>
105
+ <remote-name>Budget Profit</remote-name>
106
+ <remote-type>5</remote-type>
107
+ <local-name>[Budget Profit]</local-name>
108
+ <parent-name>[factTable]</parent-name>
109
+ <remote-alias>Budget Profit</remote-alias>
110
+ <ordinal>8</ordinal>
111
+ <local-type>real</local-type>
112
+ <aggregation>Sum</aggregation>
113
+ <precision>15</precision>
114
+ <contains-null>true</contains-null>
115
+ <attributes>
116
+ <attribute datatype='string' name='DebugRemoteType'>&quot;R8&quot;</attribute>
117
+ </attributes>
118
+ </metadata-record>
119
+ <metadata-record class='column'>
120
+ <remote-name>Budget Sales</remote-name>
121
+ <remote-type>5</remote-type>
122
+ <local-name>[Budget Sales]</local-name>
123
+ <parent-name>[factTable]</parent-name>
124
+ <remote-alias>Budget Sales</remote-alias>
125
+ <ordinal>11</ordinal>
126
+ <local-type>real</local-type>
127
+ <aggregation>Sum</aggregation>
128
+ <precision>15</precision>
129
+ <contains-null>true</contains-null>
130
+ <attributes>
131
+ <attribute datatype='string' name='DebugRemoteType'>&quot;R8&quot;</attribute>
132
+ </attributes>
133
+ </metadata-record>
134
+ <metadata-record class='column'>
135
+ <remote-name>COGS</remote-name>
136
+ <remote-type>5</remote-type>
137
+ <local-name>[COGS]</local-name>
138
+ <parent-name>[factTable]</parent-name>
139
+ <remote-alias>COGS</remote-alias>
140
+ <ordinal>4</ordinal>
141
+ <local-type>real</local-type>
142
+ <aggregation>Sum</aggregation>
143
+ <precision>15</precision>
144
+ <contains-null>true</contains-null>
145
+ <attributes>
146
+ <attribute datatype='string' name='DebugRemoteType'>&quot;R8&quot;</attribute>
147
+ </attributes>
148
+ </metadata-record>
149
+ <metadata-record class='column'>
150
+ <remote-name>Date</remote-name>
151
+ <remote-type>7</remote-type>
152
+ <local-name>[Date]</local-name>
153
+ <parent-name>[factTable]</parent-name>
154
+ <remote-alias>Date</remote-alias>
155
+ <ordinal>14</ordinal>
156
+ <local-type>datetime</local-type>
157
+ <aggregation>Year</aggregation>
158
+ <contains-null>true</contains-null>
159
+ <attributes>
160
+ <attribute datatype='string' name='DebugRemoteType'>&quot;DATE&quot;</attribute>
161
+ </attributes>
162
+ </metadata-record>
163
+ <metadata-record class='column'>
164
+ <remote-name>Inventory</remote-name>
165
+ <remote-type>3</remote-type>
166
+ <local-name>[Inventory]</local-name>
167
+ <parent-name>[factTable]</parent-name>
168
+ <remote-alias>Inventory</remote-alias>
169
+ <ordinal>7</ordinal>
170
+ <local-type>integer</local-type>
171
+ <aggregation>Sum</aggregation>
172
+ <precision>10</precision>
173
+ <contains-null>true</contains-null>
174
+ <attributes>
175
+ <attribute datatype='string' name='DebugRemoteType'>&quot;I4&quot;</attribute>
176
+ </attributes>
177
+ </metadata-record>
178
+ <metadata-record class='column'>
179
+ <remote-name>Margin</remote-name>
180
+ <remote-type>5</remote-type>
181
+ <local-name>[Margin]</local-name>
182
+ <parent-name>[factTable]</parent-name>
183
+ <remote-alias>Margin</remote-alias>
184
+ <ordinal>2</ordinal>
185
+ <local-type>real</local-type>
186
+ <aggregation>Sum</aggregation>
187
+ <precision>15</precision>
188
+ <contains-null>true</contains-null>
189
+ <attributes>
190
+ <attribute datatype='string' name='DebugRemoteType'>&quot;R8&quot;</attribute>
191
+ </attributes>
192
+ </metadata-record>
193
+ <metadata-record class='column'>
194
+ <remote-name>Marketing</remote-name>
195
+ <remote-type>5</remote-type>
196
+ <local-name>[Marketing]</local-name>
197
+ <parent-name>[factTable]</parent-name>
198
+ <remote-alias>Marketing</remote-alias>
199
+ <ordinal>6</ordinal>
200
+ <local-type>real</local-type>
201
+ <aggregation>Sum</aggregation>
202
+ <precision>15</precision>
203
+ <contains-null>true</contains-null>
204
+ <attributes>
205
+ <attribute datatype='string' name='DebugRemoteType'>&quot;R8&quot;</attribute>
206
+ </attributes>
207
+ </metadata-record>
208
+ <metadata-record class='column'>
209
+ <remote-name>ProductId</remote-name>
210
+ <remote-type>2</remote-type>
211
+ <local-name>[ProductId]</local-name>
212
+ <parent-name>[factTable]</parent-name>
213
+ <remote-alias>ProductId</remote-alias>
214
+ <ordinal>13</ordinal>
215
+ <local-type>integer</local-type>
216
+ <aggregation>Sum</aggregation>
217
+ <precision>5</precision>
218
+ <contains-null>true</contains-null>
219
+ <attributes>
220
+ <attribute datatype='string' name='DebugRemoteType'>&quot;I2&quot;</attribute>
221
+ </attributes>
222
+ </metadata-record>
223
+ <metadata-record class='column'>
224
+ <remote-name>Profit</remote-name>
225
+ <remote-type>5</remote-type>
226
+ <local-name>[Profit]</local-name>
227
+ <parent-name>[factTable]</parent-name>
228
+ <remote-alias>Profit</remote-alias>
229
+ <ordinal>1</ordinal>
230
+ <local-type>real</local-type>
231
+ <aggregation>Sum</aggregation>
232
+ <precision>15</precision>
233
+ <contains-null>true</contains-null>
234
+ <attributes>
235
+ <attribute datatype='string' name='DebugRemoteType'>&quot;R8&quot;</attribute>
236
+ </attributes>
237
+ </metadata-record>
238
+ <metadata-record class='column'>
239
+ <remote-name>Sales</remote-name>
240
+ <remote-type>5</remote-type>
241
+ <local-name>[Sales]</local-name>
242
+ <parent-name>[factTable]</parent-name>
243
+ <remote-alias>Sales</remote-alias>
244
+ <ordinal>3</ordinal>
245
+ <local-type>real</local-type>
246
+ <aggregation>Sum</aggregation>
247
+ <precision>15</precision>
248
+ <contains-null>true</contains-null>
249
+ <attributes>
250
+ <attribute datatype='string' name='DebugRemoteType'>&quot;R8&quot;</attribute>
251
+ </attributes>
252
+ </metadata-record>
253
+ <metadata-record class='column'>
254
+ <remote-name>Total Expenses</remote-name>
255
+ <remote-type>5</remote-type>
256
+ <local-name>[Total Expenses]</local-name>
257
+ <parent-name>[factTable]</parent-name>
258
+ <remote-alias>Total Expenses</remote-alias>
259
+ <ordinal>5</ordinal>
260
+ <local-type>real</local-type>
261
+ <aggregation>Sum</aggregation>
262
+ <precision>15</precision>
263
+ <contains-null>true</contains-null>
264
+ <attributes>
265
+ <attribute datatype='string' name='DebugRemoteType'>&quot;R8&quot;</attribute>
266
+ </attributes>
267
+ </metadata-record>
268
+ <metadata-record class='column'>
269
+ <remote-name>Area Code</remote-name>
270
+ <remote-type>2</remote-type>
271
+ <local-name>[Location_Area Code]</local-name>
272
+ <parent-name>[Location]</parent-name>
273
+ <remote-alias>Area Code</remote-alias>
274
+ <ordinal>17</ordinal>
275
+ <local-type>integer</local-type>
276
+ <aggregation>Sum</aggregation>
277
+ <precision>5</precision>
278
+ <contains-null>true</contains-null>
279
+ <attributes>
280
+ <attribute datatype='string' name='DebugRemoteType'>&quot;I2&quot;</attribute>
281
+ </attributes>
282
+ </metadata-record>
283
+ <metadata-record class='column'>
284
+ <remote-name>Market</remote-name>
285
+ <remote-type>130</remote-type>
286
+ <local-name>[Market]</local-name>
287
+ <parent-name>[Location]</parent-name>
288
+ <remote-alias>Market</remote-alias>
289
+ <ordinal>19</ordinal>
290
+ <local-type>string</local-type>
291
+ <aggregation>Count</aggregation>
292
+ <width>255</width>
293
+ <contains-null>true</contains-null>
294
+ <attributes>
295
+ <attribute datatype='string' name='DebugRemoteType'>&quot;WSTR&quot;</attribute>
296
+ </attributes>
297
+ </metadata-record>
298
+ <metadata-record class='column'>
299
+ <remote-name>Market Size</remote-name>
300
+ <remote-type>130</remote-type>
301
+ <local-name>[Market Size]</local-name>
302
+ <parent-name>[Location]</parent-name>
303
+ <remote-alias>Market Size</remote-alias>
304
+ <ordinal>20</ordinal>
305
+ <local-type>string</local-type>
306
+ <aggregation>Count</aggregation>
307
+ <width>255</width>
308
+ <contains-null>true</contains-null>
309
+ <attributes>
310
+ <attribute datatype='string' name='DebugRemoteType'>&quot;WSTR&quot;</attribute>
311
+ </attributes>
312
+ </metadata-record>
313
+ <metadata-record class='column'>
314
+ <remote-name>State</remote-name>
315
+ <remote-type>130</remote-type>
316
+ <local-name>[State]</local-name>
317
+ <parent-name>[Location]</parent-name>
318
+ <remote-alias>State</remote-alias>
319
+ <ordinal>18</ordinal>
320
+ <local-type>string</local-type>
321
+ <aggregation>Count</aggregation>
322
+ <width>255</width>
323
+ <contains-null>true</contains-null>
324
+ <attributes>
325
+ <attribute datatype='string' name='DebugRemoteType'>&quot;WSTR&quot;</attribute>
326
+ </attributes>
327
+ </metadata-record>
328
+ <metadata-record class='column'>
329
+ <remote-name>Product</remote-name>
330
+ <remote-type>130</remote-type>
331
+ <local-name>[Product]</local-name>
332
+ <parent-name>[Product]</parent-name>
333
+ <remote-alias>Product</remote-alias>
334
+ <ordinal>23</ordinal>
335
+ <local-type>string</local-type>
336
+ <aggregation>Count</aggregation>
337
+ <width>255</width>
338
+ <contains-null>true</contains-null>
339
+ <attributes>
340
+ <attribute datatype='string' name='DebugRemoteType'>&quot;WSTR&quot;</attribute>
341
+ </attributes>
342
+ </metadata-record>
343
+ <metadata-record class='column'>
344
+ <remote-name>Product Line</remote-name>
345
+ <remote-type>130</remote-type>
346
+ <local-name>[Product Line]</local-name>
347
+ <parent-name>[Product]</parent-name>
348
+ <remote-alias>Product Line</remote-alias>
349
+ <ordinal>21</ordinal>
350
+ <local-type>string</local-type>
351
+ <aggregation>Count</aggregation>
352
+ <width>255</width>
353
+ <contains-null>true</contains-null>
354
+ <attributes>
355
+ <attribute datatype='string' name='DebugRemoteType'>&quot;WSTR&quot;</attribute>
356
+ </attributes>
357
+ </metadata-record>
358
+ <metadata-record class='column'>
359
+ <remote-name>Product Type</remote-name>
360
+ <remote-type>130</remote-type>
361
+ <local-name>[Product Type]</local-name>
362
+ <parent-name>[Product]</parent-name>
363
+ <remote-alias>Product Type</remote-alias>
364
+ <ordinal>22</ordinal>
365
+ <local-type>string</local-type>
366
+ <aggregation>Count</aggregation>
367
+ <width>255</width>
368
+ <contains-null>true</contains-null>
369
+ <attributes>
370
+ <attribute datatype='string' name='DebugRemoteType'>&quot;WSTR&quot;</attribute>
371
+ </attributes>
372
+ </metadata-record>
373
+ <metadata-record class='column'>
374
+ <remote-name>ProductId</remote-name>
375
+ <remote-type>2</remote-type>
376
+ <local-name>[Product_ProductId]</local-name>
377
+ <parent-name>[Product]</parent-name>
378
+ <remote-alias>ProductId</remote-alias>
379
+ <ordinal>24</ordinal>
380
+ <local-type>integer</local-type>
381
+ <aggregation>Sum</aggregation>
382
+ <precision>5</precision>
383
+ <contains-null>true</contains-null>
384
+ <attributes>
385
+ <attribute datatype='string' name='DebugRemoteType'>&quot;I2&quot;</attribute>
386
+ </attributes>
387
+ </metadata-record>
388
+ <metadata-record class='column'>
389
+ <remote-name>Type</remote-name>
390
+ <remote-type>130</remote-type>
391
+ <local-name>[Type]</local-name>
392
+ <parent-name>[Product]</parent-name>
393
+ <remote-alias>Type</remote-alias>
394
+ <ordinal>25</ordinal>
395
+ <local-type>string</local-type>
396
+ <aggregation>Count</aggregation>
397
+ <width>255</width>
398
+ <contains-null>true</contains-null>
399
+ <attributes>
400
+ <attribute datatype='string' name='DebugRemoteType'>&quot;WSTR&quot;</attribute>
401
+ </attributes>
402
+ </metadata-record>
403
+ </metadata-records>
404
+ </connection>
405
+ <column aggregation='Sum' datatype='integer' name='[Area Code]' role='dimension' semantic-role='[AreaCode].[Name]' type='ordinal'>
406
+ </column>
407
+ <column datatype='real' default-format='c&quot;$&quot;#,##0;(&quot;$&quot;#,##0)' name='[Budget COGS]' role='measure' type='quantitative'>
408
+ </column>
409
+ <column datatype='real' default-format='c&quot;$&quot;#,##0;(&quot;$&quot;#,##0)' name='[Budget Margin]' role='measure' type='quantitative'>
410
+ </column>
411
+ <column datatype='real' default-format='c&quot;$&quot;#,##0;(&quot;$&quot;#,##0)' name='[Budget Profit]' role='measure' type='quantitative'>
412
+ </column>
413
+ <column datatype='real' default-format='c&quot;$&quot;#,##0;(&quot;$&quot;#,##0)' name='[Budget Sales]' role='measure' type='quantitative'>
414
+ </column>
415
+ <column datatype='real' default-format='c&quot;$&quot;#,##0;(&quot;$&quot;#,##0)' name='[COGS]' role='measure' type='quantitative'>
416
+ </column>
417
+ <column datatype='date' datatype-customized='true' name='[Date]' role='dimension' type='ordinal'>
418
+ </column>
419
+ <column aggregation='Avg' datatype='integer' default-format='n#,##0;-#,##0' name='[Inventory]' role='measure' type='quantitative'>
420
+ </column>
421
+ <column aggregation='Sum' datatype='integer' default-format='*000' hidden='true' name='[Location_Area Code]' role='dimension' semantic-role='[AreaCode].[Name]' type='ordinal'>
422
+ </column>
423
+ <column datatype='real' default-format='c&quot;$&quot;#,##0;(&quot;$&quot;#,##0)' name='[Margin]' role='measure' type='quantitative'>
424
+ </column>
425
+ <column datatype='real' default-format='c&quot;$&quot;#,##0;(&quot;$&quot;#,##0)' name='[Marketing]' role='measure' type='quantitative'>
426
+ </column>
427
+ <column datatype='integer' name='[Number of Records]' role='measure' type='quantitative' user:auto-column='numrec'>
428
+ <calculation class='tableau' formula='1' />
429
+ </column>
430
+ <column datatype='integer' hidden='true' name='[ProductId]' role='measure' type='quantitative'>
431
+ </column>
432
+ <column datatype='integer' hidden='true' name='[Product_ProductId]' role='measure' type='quantitative'>
433
+ </column>
434
+ <column datatype='real' default-format='c&quot;$&quot;#,##0;(&quot;$&quot;#,##0)' name='[Profit]' role='measure' type='quantitative'>
435
+ </column>
436
+ <column datatype='real' default-format='c&quot;$&quot;#,##0;(&quot;$&quot;#,##0)' name='[Sales]' role='measure' type='quantitative'>
437
+ </column>
438
+ <column datatype='string' name='[State]' role='dimension' semantic-role='[State].[Name]' type='nominal'>
439
+ </column>
440
+ <column datatype='real' default-format='c&quot;$&quot;#,##0;(&quot;$&quot;#,##0)' name='[Total Expenses]' role='measure' type='quantitative'>
441
+ </column>
442
+ <folder name='Actuals' role='measures'>
443
+ <folder-item name='[COGS]' type='field' />
444
+ <folder-item name='[Inventory]' type='field' />
445
+ <folder-item name='[Margin]' type='field' />
446
+ <folder-item name='[Marketing]' type='field' />
447
+ <folder-item name='[Profit]' type='field' />
448
+ <folder-item name='[Sales]' type='field' />
449
+ <folder-item name='[Total Expenses]' type='field' />
450
+ </folder>
451
+ <folder name='Budget' role='measures'>
452
+ <folder-item name='[Budget COGS]' type='field' />
453
+ <folder-item name='[Budget Margin]' type='field' />
454
+ <folder-item name='[Budget Profit]' type='field' />
455
+ <folder-item name='[Budget Sales]' type='field' />
456
+ </folder>
457
+ <layout dim-ordering='alphabetic' dim-percentage='0.5' measure-ordering='alphabetic' measure-percentage='0.4' show-structure='false' />
458
+ <semantic-values>
459
+ <semantic-value key='[Country].[Name]' value='&quot;UNITED STATES&quot;' />
460
+ </semantic-values>
461
+ </datasource>
462
+ </datasources>
463
+ <worksheets>
464
+ <worksheet name='Sheet 1'>
465
+ <table>
466
+ <view>
467
+ <datasources>
468
+ <datasource name='Sample - Coffee Chain (Access)' />
469
+ </datasources>
470
+ <datasource-dependencies datasource='Sample - Coffee Chain (Access)'>
471
+ <column datatype='real' default-format='c&quot;$&quot;#,##0;(&quot;$&quot;#,##0)' name='[Profit]' role='measure' type='quantitative'>
472
+ </column>
473
+ <column datatype='real' default-format='c&quot;$&quot;#,##0;(&quot;$&quot;#,##0)' name='[Sales]' role='measure' type='quantitative'>
474
+ </column>
475
+ <column-instance column='[Profit]' derivation='Sum' name='[sum:Profit:qk]' pivot='key' type='quantitative' />
476
+ <column-instance column='[Sales]' derivation='Sum' name='[sum:Sales:qk]' pivot='key' type='quantitative' />
477
+ </datasource-dependencies>
478
+ <aggregation value='true' />
479
+ </view>
480
+ <style>
481
+ </style>
482
+ <panes>
483
+ <pane>
484
+ <view>
485
+ <breakdown value='auto' />
486
+ </view>
487
+ <mark class='Automatic' />
488
+ </pane>
489
+ </panes>
490
+ <rows>[Sample - Coffee Chain (Access)].[sum:Sales:qk]</rows>
491
+ <cols>[Sample - Coffee Chain (Access)].[sum:Profit:qk]</cols>
492
+ </table>
493
+ </worksheet>
494
+ </worksheets>
495
+ <windows>
496
+ <window class='schema' source-height='-1' />
497
+ <window auto-hidden='0' class='worksheet' maximized='1' name='Sheet 1'>
498
+ <cards>
499
+ <edge name='left'>
500
+ <strip size='160'>
501
+ <card type='pages' />
502
+ <card type='filters' />
503
+ <card type='marks' />
504
+ </strip>
505
+ </edge>
506
+ <edge name='top'>
507
+ <strip size='31'>
508
+ <card type='columns' />
509
+ </strip>
510
+ <strip size='31'>
511
+ <card type='rows' />
512
+ </strip>
513
+ </edge>
514
+ </cards>
515
+ </window>
516
+ </windows>
517
+ <thumbnails>
518
+ <thumbnail height='192' name='Sheet 1' width='192'>
519
+ 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
602
+ </thumbnail>
603
+ </thumbnails>
604
+ </workbook>