pbiplint 0.1.2 → 0.2.1
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.
- package/NOTICE +27 -0
- package/README.md +35 -10
- package/dist/pbiplint.mjs +13680 -2838
- package/package.json +5 -3
- package/sample/Messy Sales Demo.Report/.platform +11 -0
- package/sample/Messy Sales Demo.Report/definition/bookmarks/bookmarks.json +8 -0
- package/sample/Messy Sales Demo.Report/definition/bookmarks/f56cd9f5f68d30c0e4e3.bookmark.json +41 -0
- package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/page.json +8 -0
- package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/3130cf9463309528054d/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/3e7724efa859ff7b9701/visual.json +130 -0
- package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/3fe8e6907656325b8e86/visual.json +187 -0
- package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/51bb4f6f5f7f71ed0a3c/visual.json +69 -0
- package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/d2995ea3e9b9d9244bf6/visual.json +31 -0
- package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/d307b6575ca81d163aac/visual.json +186 -0
- package/sample/Messy Sales Demo.Report/definition/pages/27f668864829019f9251/page.json +8 -0
- package/sample/Messy Sales Demo.Report/definition/pages/27f668864829019f9251/visuals/1e7f28bf49e435b68c50/visual.json +156 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3485dcffc49d1608c370/page.json +8 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3485dcffc49d1608c370/visuals/6c96585893b6f603b9ac/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3485dcffc49d1608c370/visuals/6e99982d842b0d962e16/visual.json +189 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3485dcffc49d1608c370/visuals/8081f5bb7075e7b008bc/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3485dcffc49d1608c370/visuals/c5147d97ff0b18a24336/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3b33a1ae720bb93d48b9/page.json +48 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3b33a1ae720bb93d48b9/visuals/e32acaa3eb3e6dd81dca/visual.json +195 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/page.json +8 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/23f7a6962538ec0c0ff4/visual.json +155 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/2b5386e9de3e1fbb1afa/visual.json +147 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/307e834045a168e7a394/visual.json +305 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/4457e97e02f61c8f609b/visual.json +176 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/49158e1e7dce5e8d37fd/visual.json +68 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/6500e9c3f9d74f2958c7/visual.json +312 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/6edcdc464f4016c0264c/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/88530bc0f64114317e2e/visual.json +155 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/a75a96eee1fd0cf4cef7/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/bda61916a7b1efdee3fe/visual.json +145 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/d93ac3d110ff0a347497/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/db47426e580241dac6b8/visual.json +104 -0
- package/sample/Messy Sales Demo.Report/definition/pages/52db6f0b218c638f8761/page.json +8 -0
- package/sample/Messy Sales Demo.Report/definition/pages/52db6f0b218c638f8761/visuals/8edac00805f721edc1c1/visual.json +196 -0
- package/sample/Messy Sales Demo.Report/definition/pages/5fbcb07dde4e4fada3f6/page.json +8 -0
- package/sample/Messy Sales Demo.Report/definition/pages/5fbcb07dde4e4fada3f6/visuals/598cfda00746e83f4896/visual.json +162 -0
- package/sample/Messy Sales Demo.Report/definition/pages/5fbcb07dde4e4fada3f6/visuals/6c71af13bcdb4c28cce8/visual.json +133 -0
- package/sample/Messy Sales Demo.Report/definition/pages/5fbcb07dde4e4fada3f6/visuals/8aa02d4e168b39268df4/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/5fbcb07dde4e4fada3f6/visuals/ab6166569dd355894dc2/visual.json +192 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/page.json +8 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/05d453611bc204914797/visual.json +291 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/0dcfd84094ee2cfe485b/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/11146719bd576271e11a/visual.json +238 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/338338c16a0d509bdaf5/visual.json +238 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/3ee96306fb282e5dfe38/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/404c49f853ea8dde3b6c/visual.json +238 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/55ddee811456e2b049cf/visual.json +291 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/5bf9a67d54ba75bb7be1/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/63f71d3b642fb6c8a9ba/visual.json +291 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/80873270a475b81ef0fb/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/838ab6226a66fdfb13dc/visual.json +238 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/9b12811305cdd50a97c4/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/a1a8f953ebef2d733956/visual.json +291 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/b7e7f7c15ff9284e72d3/visual.json +291 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/b9229ce2b277de70e402/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/cf88d237300a7d6a6709/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/d66ccf48cfa017d01124/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/d8ab941db2b7bd34c19e/visual.json +238 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/daadba18a786c3e25d97/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/e1552553ac4f0856010e/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/f108285d5ebc6bcdba77/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/b52832c4d9f487868953/page.json +9 -0
- package/sample/Messy Sales Demo.Report/definition/pages/b52832c4d9f487868953/visuals/2a7e16428070011e60ec/visual.json +55 -0
- package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/page.json +8 -0
- package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/visuals/3fa0fc35d2dd20b9b1f2/visual.json +186 -0
- package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/visuals/55b04f4555a4615ecd32/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/visuals/94c00b0b84a51b0e0b39/visual.json +140 -0
- package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/visuals/acc24e8136085a985f3f/visual.json +32 -0
- package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/visuals/de6a17691cc952e6d7dd/visual.json +120 -0
- package/sample/Messy Sales Demo.Report/definition/pages/fa72b934a72314dcf1b1/page.json +8 -0
- package/sample/Messy Sales Demo.Report/definition/pages/fa72b934a72314dcf1b1/visuals/27e669b1ee2de2c3ac9d/visual.json +96 -0
- package/sample/Messy Sales Demo.Report/definition/pages/fa72b934a72314dcf1b1/visuals/b230f06615cf87ee455f/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/pages.json +17 -0
- package/sample/Messy Sales Demo.Report/definition/report.json +66 -0
- package/sample/Messy Sales Demo.Report/definition/reportExtensions.json +46 -0
- package/sample/Messy Sales Demo.Report/definition/version.json +4 -0
- package/sample/Messy Sales Demo.Report/definition.pbir +9 -0
- package/sample/{.platform → Messy Sales Demo.SemanticModel/.platform } +1 -1
- package/sample/Messy Sales Demo.SemanticModel/definition/cultures/en-US.tmdl +32 -0
- package/sample/Messy Sales Demo.SemanticModel/definition/database.tmdl +3 -0
- package/sample/{definition/model.tmdl → Messy Sales Demo.SemanticModel/definition/model.tmdl } +3 -0
- package/sample/{definition/relationships.tmdl → Messy Sales Demo.SemanticModel/definition/relationships.tmdl } +6 -0
- package/sample/{definition/tables/Customer.tmdl → Messy Sales Demo.SemanticModel/definition/tables/Customer.tmdl } +5 -0
- package/sample/Messy Sales Demo.SemanticModel/definition/tables/DateTableTemplate_96ead6f8-eef3-4336-a020-6641aa278e92.tmdl +118 -0
- package/sample/Messy Sales Demo.SemanticModel/definition/tables/Employee Grouping.tmdl +49 -0
- package/sample/Messy Sales Demo.SemanticModel/definition/tables/LocalDateTable_b6c07c62-ecbc-4f14-b072-2fb027697b1d.tmdl +116 -0
- package/sample/{definition/tables/Sales.tmdl → Messy Sales Demo.SemanticModel/definition/tables/Sales.tmdl } +42 -42
- package/sample/{definition/tables/Store.tmdl → Messy Sales Demo.SemanticModel/definition/tables/Store.tmdl } +15 -0
- package/sample/Messy Sales Demo.pbip +14 -0
- package/sample/pbiplint.config.json +7 -0
- package/sample/.pbi/editorSettings.json +0 -8
- package/sample/definition/cultures/en-US.tmdl +0 -2
- package/sample/definition/database.tmdl +0 -3
- /package/sample/{definition → Messy Sales Demo.SemanticModel/definition}/tables/Date.tmdl +0 -0
- /package/sample/{definition → Messy Sales Demo.SemanticModel/definition}/tables/Employee.tmdl +0 -0
- /package/sample/{definition → Messy Sales Demo.SemanticModel/definition}/tables/Product.tmdl +0 -0
- /package/sample/{definition → Messy Sales Demo.SemanticModel/definition}/tables/Promotion.tmdl +0 -0
- /package/sample/{definition.pbism → Messy Sales Demo.SemanticModel/definition.pbism} +0 -0
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/visualContainer/2.8.0/schema.json",
|
|
3
|
+
"name": "b230f06615cf87ee455f",
|
|
4
|
+
"position": {
|
|
5
|
+
"x": 20,
|
|
6
|
+
"y": 20,
|
|
7
|
+
"z": 1000,
|
|
8
|
+
"height": 120,
|
|
9
|
+
"width": 240,
|
|
10
|
+
"tabOrder": 1000
|
|
11
|
+
},
|
|
12
|
+
"visual": {
|
|
13
|
+
"visualType": "cardVisual",
|
|
14
|
+
"query": {
|
|
15
|
+
"queryState": {
|
|
16
|
+
"Data": {
|
|
17
|
+
"projections": [
|
|
18
|
+
{
|
|
19
|
+
"field": {
|
|
20
|
+
"Measure": {
|
|
21
|
+
"Expression": {
|
|
22
|
+
"SourceRef": {
|
|
23
|
+
"Entity": "Sales"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"Property": "Distinct Customers"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"queryRef": "Sales.Distinct Customers",
|
|
30
|
+
"nativeQueryRef": "Distinct Customers"
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"sortDefinition": {
|
|
36
|
+
"sort": [
|
|
37
|
+
{
|
|
38
|
+
"field": {
|
|
39
|
+
"Measure": {
|
|
40
|
+
"Expression": {
|
|
41
|
+
"SourceRef": {
|
|
42
|
+
"Entity": "Sales"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"Property": "Distinct Customers"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"direction": "Descending"
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
"isDefaultSort": true
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"objects": {
|
|
55
|
+
"label": [
|
|
56
|
+
{
|
|
57
|
+
"properties": {
|
|
58
|
+
"show": {
|
|
59
|
+
"expr": {
|
|
60
|
+
"Literal": {
|
|
61
|
+
"Value": "false"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"selector": {
|
|
67
|
+
"id": "default"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
"value": [
|
|
72
|
+
{
|
|
73
|
+
"properties": {
|
|
74
|
+
"horizontalAlignment": {
|
|
75
|
+
"expr": {
|
|
76
|
+
"Literal": {
|
|
77
|
+
"Value": "'center'"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"selector": {
|
|
83
|
+
"id": "default"
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
"layout": [
|
|
88
|
+
{
|
|
89
|
+
"properties": {
|
|
90
|
+
"alignment": {
|
|
91
|
+
"expr": {
|
|
92
|
+
"Literal": {
|
|
93
|
+
"Value": "'top'"
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
"visualContainerObjects": {
|
|
102
|
+
"title": [
|
|
103
|
+
{
|
|
104
|
+
"properties": {
|
|
105
|
+
"alignment": {
|
|
106
|
+
"expr": {
|
|
107
|
+
"Literal": {
|
|
108
|
+
"Value": "'center'"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"show": {
|
|
113
|
+
"expr": {
|
|
114
|
+
"Literal": {
|
|
115
|
+
"Value": "true"
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
"text": {
|
|
120
|
+
"expr": {
|
|
121
|
+
"Literal": {
|
|
122
|
+
"Value": "'Distinct Customers'"
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
],
|
|
129
|
+
"subTitle": [
|
|
130
|
+
{
|
|
131
|
+
"properties": {
|
|
132
|
+
"alignment": {
|
|
133
|
+
"expr": {
|
|
134
|
+
"Literal": {
|
|
135
|
+
"Value": "'center'"
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
"show": {
|
|
140
|
+
"expr": {
|
|
141
|
+
"Literal": {
|
|
142
|
+
"Value": "false"
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
"text": {
|
|
147
|
+
"expr": {
|
|
148
|
+
"Literal": {
|
|
149
|
+
"Value": "'Distinct Customers'"
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
],
|
|
156
|
+
"visualHeader": [
|
|
157
|
+
{
|
|
158
|
+
"properties": {
|
|
159
|
+
"show": {
|
|
160
|
+
"expr": {
|
|
161
|
+
"Literal": {
|
|
162
|
+
"Value": "false"
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
],
|
|
169
|
+
"general": [
|
|
170
|
+
{
|
|
171
|
+
"properties": {
|
|
172
|
+
"altText": {
|
|
173
|
+
"expr": {
|
|
174
|
+
"Literal": {
|
|
175
|
+
"Value": "'Card showing the number of distinct customers'"
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
]
|
|
182
|
+
},
|
|
183
|
+
"drillFilterOtherVisuals": true
|
|
184
|
+
}
|
|
185
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/pagesMetadata/1.0.0/schema.json",
|
|
3
|
+
"pageOrder": [
|
|
4
|
+
"3cea48e58036b1654474",
|
|
5
|
+
"52db6f0b218c638f8761",
|
|
6
|
+
"27f668864829019f9251",
|
|
7
|
+
"3b33a1ae720bb93d48b9",
|
|
8
|
+
"3485dcffc49d1608c370",
|
|
9
|
+
"b52832c4d9f487868953",
|
|
10
|
+
"9f2ae77d3572304756ae",
|
|
11
|
+
"fa72b934a72314dcf1b1",
|
|
12
|
+
"5fbcb07dde4e4fada3f6",
|
|
13
|
+
"bb1ea3ba2a1defa1979b",
|
|
14
|
+
"00e055aa522743f28a39"
|
|
15
|
+
],
|
|
16
|
+
"activePageName": "b52832c4d9f487868953"
|
|
17
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/report/3.2.0/schema.json",
|
|
3
|
+
"themeCollection": {
|
|
4
|
+
"baseTheme": {
|
|
5
|
+
"name": "Fluent2-CY26SU04",
|
|
6
|
+
"reportVersionAtImport": {
|
|
7
|
+
"visual": "2.8.0",
|
|
8
|
+
"report": "3.2.0",
|
|
9
|
+
"page": "2.3.1"
|
|
10
|
+
},
|
|
11
|
+
"type": "SharedResources"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"objects": {
|
|
15
|
+
"section": [
|
|
16
|
+
{
|
|
17
|
+
"properties": {
|
|
18
|
+
"verticalAlignment": {
|
|
19
|
+
"expr": {
|
|
20
|
+
"Literal": {
|
|
21
|
+
"Value": "'Top'"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"outspacePane": [
|
|
29
|
+
{
|
|
30
|
+
"properties": {
|
|
31
|
+
"expanded": {
|
|
32
|
+
"expr": {
|
|
33
|
+
"Literal": {
|
|
34
|
+
"Value": "true"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
"publicCustomVisuals": [
|
|
43
|
+
"ChicletSlicer1448559807354"
|
|
44
|
+
],
|
|
45
|
+
"resourcePackages": [
|
|
46
|
+
{
|
|
47
|
+
"name": "SharedResources",
|
|
48
|
+
"type": "SharedResources",
|
|
49
|
+
"items": [
|
|
50
|
+
{
|
|
51
|
+
"name": "Fluent2-CY26SU04",
|
|
52
|
+
"path": "BaseThemes/Fluent2-CY26SU04.json",
|
|
53
|
+
"type": "BaseTheme"
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"settings": {
|
|
59
|
+
"useStylableVisualContainerHeader": true,
|
|
60
|
+
"exportDataMode": "AllowSummarized",
|
|
61
|
+
"defaultDrillFilterOtherVisuals": true,
|
|
62
|
+
"allowChangeFilterTypes": true,
|
|
63
|
+
"useEnhancedTooltips": true,
|
|
64
|
+
"useDefaultAggregateDisplayName": true
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/reportExtension/1.0.0/schema.json",
|
|
3
|
+
"name": "extension",
|
|
4
|
+
"entities": [
|
|
5
|
+
{
|
|
6
|
+
"name": "Sales",
|
|
7
|
+
"measures": [
|
|
8
|
+
{
|
|
9
|
+
"name": "Net Margin",
|
|
10
|
+
"dataType": "Double",
|
|
11
|
+
"expression": "[Total Sales] - [Total Cost]",
|
|
12
|
+
"references": {
|
|
13
|
+
"measures": [
|
|
14
|
+
{
|
|
15
|
+
"entity": "Sales",
|
|
16
|
+
"name": "Total Sales"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"entity": "Sales",
|
|
20
|
+
"name": "Total Cost"
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"name": "Margin % (report)",
|
|
27
|
+
"dataType": "Double",
|
|
28
|
+
"expression": "DIVIDE([Net Margin], [Total Sales])",
|
|
29
|
+
"references": {
|
|
30
|
+
"measures": [
|
|
31
|
+
{
|
|
32
|
+
"schema": "extension",
|
|
33
|
+
"entity": "Sales",
|
|
34
|
+
"name": "Net Margin"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"entity": "Sales",
|
|
38
|
+
"name": "Total Sales"
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
cultureInfo en-US
|
|
2
|
+
|
|
3
|
+
linguisticMetadata =
|
|
4
|
+
{
|
|
5
|
+
"Version": "2.0.0",
|
|
6
|
+
"Language": "en-US",
|
|
7
|
+
"Entities": {
|
|
8
|
+
"employee.department": {
|
|
9
|
+
"Definition": {
|
|
10
|
+
"Binding": {
|
|
11
|
+
"ConceptualEntity": "Employee",
|
|
12
|
+
"ConceptualProperty": "Department"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"State": "Generated",
|
|
16
|
+
"Terms": [
|
|
17
|
+
{
|
|
18
|
+
"Department": {
|
|
19
|
+
"State": "Suggested",
|
|
20
|
+
"Source": {
|
|
21
|
+
"Type": "External",
|
|
22
|
+
"Agent": "PowerBI.VisualColumnRename"
|
|
23
|
+
},
|
|
24
|
+
"Weight": 0.9
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
contentType: json
|
|
32
|
+
|
package/sample/{definition/model.tmdl → Messy Sales Demo.SemanticModel/definition/model.tmdl }
RENAMED
|
@@ -19,6 +19,9 @@ ref table Customer
|
|
|
19
19
|
ref table Store
|
|
20
20
|
ref table Employee
|
|
21
21
|
ref table Promotion
|
|
22
|
+
ref table DateTableTemplate_96ead6f8-eef3-4336-a020-6641aa278e92
|
|
23
|
+
ref table LocalDateTable_b6c07c62-ecbc-4f14-b072-2fb027697b1d
|
|
24
|
+
ref table 'Employee Grouping'
|
|
22
25
|
|
|
23
26
|
ref cultureInfo en-US
|
|
24
27
|
|
|
@@ -21,3 +21,9 @@ relationship 5b883d70-11cb-59ee-bf31-c706854ce0a7
|
|
|
21
21
|
relationship 4862abb4-bb60-51c5-8127-c4d618a3c29a
|
|
22
22
|
fromColumn: Sales.'Promotion ID'
|
|
23
23
|
toColumn: Promotion.'Promotion ID'
|
|
24
|
+
|
|
25
|
+
relationship 0a8d08ea-ec2d-4f5c-9688-4767079a3fa4
|
|
26
|
+
joinOnDateBehavior: datePartOnly
|
|
27
|
+
fromColumn: Customer.'Join Date'
|
|
28
|
+
toColumn: LocalDateTable_b6c07c62-ecbc-4f14-b072-2fb027697b1d.Date
|
|
29
|
+
|
|
@@ -81,6 +81,11 @@ table Customer
|
|
|
81
81
|
summarizeBy: none
|
|
82
82
|
sourceColumn: Join Date
|
|
83
83
|
|
|
84
|
+
variation Variation
|
|
85
|
+
isDefault
|
|
86
|
+
relationship: 0a8d08ea-ec2d-4f5c-9688-4767079a3fa4
|
|
87
|
+
defaultHierarchy: LocalDateTable_b6c07c62-ecbc-4f14-b072-2fb027697b1d.'Date Hierarchy'
|
|
88
|
+
|
|
84
89
|
annotation SummarizationSetBy = Automatic
|
|
85
90
|
|
|
86
91
|
annotation UnderlyingDateTimeDataType = Date
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
table DateTableTemplate_96ead6f8-eef3-4336-a020-6641aa278e92
|
|
2
|
+
isHidden
|
|
3
|
+
isPrivate
|
|
4
|
+
lineageTag: 0dad86d8-a72f-483c-ad43-027d5aee835a
|
|
5
|
+
|
|
6
|
+
column Date
|
|
7
|
+
dataType: dateTime
|
|
8
|
+
isHidden
|
|
9
|
+
formatString: General Date
|
|
10
|
+
lineageTag: ba20a5fb-6ec9-4b09-b39a-8f1232b45938
|
|
11
|
+
dataCategory: PaddedDateTableDates
|
|
12
|
+
summarizeBy: none
|
|
13
|
+
isNameInferred
|
|
14
|
+
sourceColumn: [Date]
|
|
15
|
+
|
|
16
|
+
annotation SummarizationSetBy = User
|
|
17
|
+
|
|
18
|
+
column Year = YEAR([Date])
|
|
19
|
+
dataType: int64
|
|
20
|
+
isHidden
|
|
21
|
+
formatString: 0
|
|
22
|
+
lineageTag: 13ea1887-6083-4606-8000-6babbac65f30
|
|
23
|
+
dataCategory: Years
|
|
24
|
+
summarizeBy: none
|
|
25
|
+
|
|
26
|
+
annotation SummarizationSetBy = User
|
|
27
|
+
|
|
28
|
+
annotation TemplateId = Year
|
|
29
|
+
|
|
30
|
+
column MonthNo = MONTH([Date])
|
|
31
|
+
dataType: int64
|
|
32
|
+
isHidden
|
|
33
|
+
formatString: 0
|
|
34
|
+
lineageTag: 9dde1f20-45a9-415a-a276-fea90987b257
|
|
35
|
+
dataCategory: MonthOfYear
|
|
36
|
+
summarizeBy: none
|
|
37
|
+
|
|
38
|
+
annotation SummarizationSetBy = User
|
|
39
|
+
|
|
40
|
+
annotation TemplateId = MonthNumber
|
|
41
|
+
|
|
42
|
+
column Month = FORMAT([Date], "MMMM")
|
|
43
|
+
dataType: string
|
|
44
|
+
isHidden
|
|
45
|
+
lineageTag: 6332790a-328c-485a-b816-128600cedf77
|
|
46
|
+
dataCategory: Months
|
|
47
|
+
summarizeBy: none
|
|
48
|
+
sortByColumn: MonthNo
|
|
49
|
+
|
|
50
|
+
annotation SummarizationSetBy = User
|
|
51
|
+
|
|
52
|
+
annotation TemplateId = Month
|
|
53
|
+
|
|
54
|
+
column QuarterNo = INT(([MonthNo] + 2) / 3)
|
|
55
|
+
dataType: int64
|
|
56
|
+
isHidden
|
|
57
|
+
formatString: 0
|
|
58
|
+
lineageTag: f9a8a04f-c505-459b-ae84-d509d3e2f9ad
|
|
59
|
+
dataCategory: QuarterOfYear
|
|
60
|
+
summarizeBy: none
|
|
61
|
+
|
|
62
|
+
annotation SummarizationSetBy = User
|
|
63
|
+
|
|
64
|
+
annotation TemplateId = QuarterNumber
|
|
65
|
+
|
|
66
|
+
column Quarter = "Qtr " & [QuarterNo]
|
|
67
|
+
dataType: string
|
|
68
|
+
isHidden
|
|
69
|
+
lineageTag: 6e58fc4b-30b2-46c3-8ca1-3d92c597aa6f
|
|
70
|
+
dataCategory: Quarters
|
|
71
|
+
summarizeBy: none
|
|
72
|
+
sortByColumn: QuarterNo
|
|
73
|
+
|
|
74
|
+
annotation SummarizationSetBy = User
|
|
75
|
+
|
|
76
|
+
annotation TemplateId = Quarter
|
|
77
|
+
|
|
78
|
+
column Day = DAY([Date])
|
|
79
|
+
dataType: int64
|
|
80
|
+
isHidden
|
|
81
|
+
formatString: 0
|
|
82
|
+
lineageTag: e5ac6662-dac3-4cde-bfb7-235d7e0ca085
|
|
83
|
+
dataCategory: DayOfMonth
|
|
84
|
+
summarizeBy: none
|
|
85
|
+
|
|
86
|
+
annotation SummarizationSetBy = User
|
|
87
|
+
|
|
88
|
+
annotation TemplateId = Day
|
|
89
|
+
|
|
90
|
+
hierarchy 'Date Hierarchy'
|
|
91
|
+
lineageTag: 6e88a04a-235c-4e56-8234-23b6ff68530a
|
|
92
|
+
|
|
93
|
+
level Year
|
|
94
|
+
lineageTag: d26ea02b-00ed-4e5f-9547-64effe16ef43
|
|
95
|
+
column: Year
|
|
96
|
+
|
|
97
|
+
level Quarter
|
|
98
|
+
lineageTag: b4dd778a-516e-4894-acb8-9e3eccb9763b
|
|
99
|
+
column: Quarter
|
|
100
|
+
|
|
101
|
+
level Month
|
|
102
|
+
lineageTag: c6bfe51b-505e-48d4-9b27-6911ac27b23c
|
|
103
|
+
column: Month
|
|
104
|
+
|
|
105
|
+
level Day
|
|
106
|
+
lineageTag: 03d6593e-87e7-4859-b28b-25732560975d
|
|
107
|
+
column: Day
|
|
108
|
+
|
|
109
|
+
annotation TemplateId = DateHierarchy
|
|
110
|
+
|
|
111
|
+
partition DateTableTemplate_96ead6f8-eef3-4336-a020-6641aa278e92 = calculated
|
|
112
|
+
mode: import
|
|
113
|
+
source = Calendar(Date(2015,1,1), Date(2015,1,1))
|
|
114
|
+
|
|
115
|
+
annotation __PBI_TemplateDateTable = true
|
|
116
|
+
|
|
117
|
+
annotation DefaultItem = DateHierarchy
|
|
118
|
+
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
table 'Employee Grouping'
|
|
2
|
+
lineageTag: 2d4b76b0-c6f4-4384-be5e-8107e9206104
|
|
3
|
+
|
|
4
|
+
column 'Employee Grouping'
|
|
5
|
+
lineageTag: 4d449cb9-1416-44a4-be89-f8935275cdcb
|
|
6
|
+
summarizeBy: none
|
|
7
|
+
sourceColumn: [Value1]
|
|
8
|
+
sortByColumn: 'Employee Grouping Order'
|
|
9
|
+
|
|
10
|
+
relatedColumnDetails
|
|
11
|
+
groupByColumn: 'Employee Grouping Fields'
|
|
12
|
+
|
|
13
|
+
annotation SummarizationSetBy = Automatic
|
|
14
|
+
|
|
15
|
+
column 'Employee Grouping Fields'
|
|
16
|
+
isHidden
|
|
17
|
+
lineageTag: 50b2027f-e1a7-4633-99ae-d605bdebb0c7
|
|
18
|
+
summarizeBy: none
|
|
19
|
+
sourceColumn: [Value2]
|
|
20
|
+
sortByColumn: 'Employee Grouping Order'
|
|
21
|
+
|
|
22
|
+
extendedProperty ParameterMetadata =
|
|
23
|
+
{
|
|
24
|
+
"version": 3,
|
|
25
|
+
"kind": 2
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
annotation SummarizationSetBy = Automatic
|
|
29
|
+
|
|
30
|
+
column 'Employee Grouping Order'
|
|
31
|
+
isHidden
|
|
32
|
+
formatString: 0
|
|
33
|
+
lineageTag: cbd3ef2a-98fd-4e06-846b-ca7856e03122
|
|
34
|
+
summarizeBy: sum
|
|
35
|
+
sourceColumn: [Value3]
|
|
36
|
+
|
|
37
|
+
annotation SummarizationSetBy = Automatic
|
|
38
|
+
|
|
39
|
+
partition 'Employee Grouping' = calculated
|
|
40
|
+
mode: import
|
|
41
|
+
source =
|
|
42
|
+
{
|
|
43
|
+
("Department", NAMEOF('Employee'[Department]), 0),
|
|
44
|
+
("Title", NAMEOF('Employee'[Title]), 1),
|
|
45
|
+
("Region", NAMEOF('Employee'[Region]), 2)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
annotation PBI_Id = c08cd40c863c8e3d27fa28982141c394
|
|
49
|
+
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
table LocalDateTable_b6c07c62-ecbc-4f14-b072-2fb027697b1d
|
|
2
|
+
isHidden
|
|
3
|
+
showAsVariationsOnly
|
|
4
|
+
lineageTag: 9313370a-8d76-4315-a82e-1af31b520fdb
|
|
5
|
+
|
|
6
|
+
column Date
|
|
7
|
+
dataType: dateTime
|
|
8
|
+
isHidden
|
|
9
|
+
formatString: General Date
|
|
10
|
+
lineageTag: 21c53a73-5d1c-456a-8f74-99145bc41b1b
|
|
11
|
+
dataCategory: PaddedDateTableDates
|
|
12
|
+
summarizeBy: none
|
|
13
|
+
isNameInferred
|
|
14
|
+
sourceColumn: [Date]
|
|
15
|
+
|
|
16
|
+
annotation SummarizationSetBy = User
|
|
17
|
+
|
|
18
|
+
column Year = YEAR([Date])
|
|
19
|
+
dataType: int64
|
|
20
|
+
isHidden
|
|
21
|
+
formatString: 0
|
|
22
|
+
lineageTag: e2e6eae8-be46-44ac-979e-9cd8835f84ba
|
|
23
|
+
dataCategory: Years
|
|
24
|
+
summarizeBy: none
|
|
25
|
+
|
|
26
|
+
annotation SummarizationSetBy = User
|
|
27
|
+
|
|
28
|
+
annotation TemplateId = Year
|
|
29
|
+
|
|
30
|
+
column MonthNo = MONTH([Date])
|
|
31
|
+
dataType: int64
|
|
32
|
+
isHidden
|
|
33
|
+
formatString: 0
|
|
34
|
+
lineageTag: 64e7e2ef-1d58-464f-abf7-e4693d75e7d1
|
|
35
|
+
dataCategory: MonthOfYear
|
|
36
|
+
summarizeBy: none
|
|
37
|
+
|
|
38
|
+
annotation SummarizationSetBy = User
|
|
39
|
+
|
|
40
|
+
annotation TemplateId = MonthNumber
|
|
41
|
+
|
|
42
|
+
column Month = FORMAT([Date], "MMMM")
|
|
43
|
+
dataType: string
|
|
44
|
+
isHidden
|
|
45
|
+
lineageTag: 6b9ce51a-1769-45b4-9119-d11d8dbbc611
|
|
46
|
+
dataCategory: Months
|
|
47
|
+
summarizeBy: none
|
|
48
|
+
sortByColumn: MonthNo
|
|
49
|
+
|
|
50
|
+
annotation SummarizationSetBy = User
|
|
51
|
+
|
|
52
|
+
annotation TemplateId = Month
|
|
53
|
+
|
|
54
|
+
column QuarterNo = INT(([MonthNo] + 2) / 3)
|
|
55
|
+
dataType: int64
|
|
56
|
+
isHidden
|
|
57
|
+
formatString: 0
|
|
58
|
+
lineageTag: 121cc795-6feb-4f11-ae2f-239416a152a2
|
|
59
|
+
dataCategory: QuarterOfYear
|
|
60
|
+
summarizeBy: none
|
|
61
|
+
|
|
62
|
+
annotation SummarizationSetBy = User
|
|
63
|
+
|
|
64
|
+
annotation TemplateId = QuarterNumber
|
|
65
|
+
|
|
66
|
+
column Quarter = "Qtr " & [QuarterNo]
|
|
67
|
+
dataType: string
|
|
68
|
+
isHidden
|
|
69
|
+
lineageTag: b96d6d6f-88c5-4f87-913a-3dec15c15e12
|
|
70
|
+
dataCategory: Quarters
|
|
71
|
+
summarizeBy: none
|
|
72
|
+
sortByColumn: QuarterNo
|
|
73
|
+
|
|
74
|
+
annotation SummarizationSetBy = User
|
|
75
|
+
|
|
76
|
+
annotation TemplateId = Quarter
|
|
77
|
+
|
|
78
|
+
column Day = DAY([Date])
|
|
79
|
+
dataType: int64
|
|
80
|
+
isHidden
|
|
81
|
+
formatString: 0
|
|
82
|
+
lineageTag: d51f144f-6d5c-4527-93f8-7a539ece4628
|
|
83
|
+
dataCategory: DayOfMonth
|
|
84
|
+
summarizeBy: none
|
|
85
|
+
|
|
86
|
+
annotation SummarizationSetBy = User
|
|
87
|
+
|
|
88
|
+
annotation TemplateId = Day
|
|
89
|
+
|
|
90
|
+
hierarchy 'Date Hierarchy'
|
|
91
|
+
lineageTag: bc061ff2-65bc-442c-a586-1ccb0481c65c
|
|
92
|
+
|
|
93
|
+
level Year
|
|
94
|
+
lineageTag: 8c82ba8c-68b3-47e1-ad6d-627b05ed9d7f
|
|
95
|
+
column: Year
|
|
96
|
+
|
|
97
|
+
level Quarter
|
|
98
|
+
lineageTag: 8b1d5817-6201-461b-b181-020e74186717
|
|
99
|
+
column: Quarter
|
|
100
|
+
|
|
101
|
+
level Month
|
|
102
|
+
lineageTag: beadb57e-c7b1-4037-ac7f-9662dbd67263
|
|
103
|
+
column: Month
|
|
104
|
+
|
|
105
|
+
level Day
|
|
106
|
+
lineageTag: 450e82b7-9932-4834-b6b4-0d6269104fd3
|
|
107
|
+
column: Day
|
|
108
|
+
|
|
109
|
+
annotation TemplateId = DateHierarchy
|
|
110
|
+
|
|
111
|
+
partition LocalDateTable_b6c07c62-ecbc-4f14-b072-2fb027697b1d = calculated
|
|
112
|
+
mode: import
|
|
113
|
+
source = Calendar(Date(Year(MIN('Customer'[Join Date])), 1, 1), Date(Year(MAX('Customer'[Join Date])), 12, 31))
|
|
114
|
+
|
|
115
|
+
annotation __PBI_LocalDateTable = true
|
|
116
|
+
|