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
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>