twb 0.0.31 → 0.0.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>