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