commonChartTemplates.xml 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <template>
  3. <subtemplates>
  4. <subtemplate name="combination_chart_dimensions">
  5. <parameters>
  6. <param name="allowSummaries" type="option" referenced="true"/>
  7. <param name="chartDimensions" type="multinode" referenced="true">
  8. <param name="calculations" type="multinode" rule="calculations" enumerateVariations="false"/>
  9. <param name="isEdge" type="option" rule="isEdge"/>
  10. <param name="isNotEdge" type="option" rule="isNotEdge"/>
  11. </param>
  12. </parameters>
  13. <payload>
  14. &lt;chartNodes&gt;
  15. <param name="chartDimensions" type="multinode" skipEmpty="true" delimeter="&lt;chartNestedNodes&gt;">
  16. <param name="isNotEdge" type="option">
  17. <callSubTemplate name="chartNode_category_open">
  18. <withParam name="allowSummaries" scope="root"/>
  19. </callSubTemplate>
  20. </param>
  21. </param>
  22. <param name="chartDimensions" type="multinode">
  23. <param name="isEdge" type="option">
  24. <param name="chartDimensions" scope="root" type="multinode" indexes="1">
  25. <!-- We can only have 1 edge, so this trick forces a nesting if there were other items -->
  26. &lt;chartNestedNodes&gt;
  27. </param>
  28. <callSubTemplate name="chart_edge">
  29. <withParam name="allowSummaries" scope="root"/>
  30. </callSubTemplate>
  31. <param name="chartDimensions" scope="root" type="multinode" indexes="1">
  32. &lt;/chartNestedNodes&gt;
  33. </param>
  34. </param>
  35. </param>
  36. <param name="chartDimensions" type="multinode" reversed="true" skipEmpty="true" delimeter="&lt;/chartNestedNodes&gt;">
  37. <param name="isNotEdge" type="option">
  38. <callSubTemplate name="chartNode_category_close">
  39. <withParam name="allowSummaries" scope="root"/>
  40. </callSubTemplate>
  41. </param>
  42. <param name="calculations" type="multinode">
  43. <callSubTemplate name="chartNode_Calculation"/>
  44. </param>
  45. </param>
  46. &lt;/chartNodes&gt;
  47. </payload>
  48. </subtemplate>
  49. <subtemplate name="combination_chart_categories">
  50. <parameters>
  51. <param name="allowSummaries" type="option" referenced="true"/>
  52. <param name="chartCategories" type="node" referenced="true">
  53. <param name="calculations" type="multinode" rule="calculations" enumerateVariations="false"/>
  54. <param name="isEdge" type="option" rule="isEdge"/>
  55. <param name="isNotEdge" type="option" rule="isNotEdge"/>
  56. </param>
  57. </parameters>
  58. <payload>
  59. &lt;chartNodes&gt;
  60. <param name="chartCategories" type="node">
  61. <param name="isNotEdge" type="option" rule="isNotEdge">
  62. <callSubTemplate name="chartNode_category_open">
  63. <withParam name="allowSummaries" scope="root"/>
  64. </callSubTemplate>
  65. </param>
  66. <param name="isEdge" type="option" rule="isEdge">
  67. <callSubTemplate name="chart_edge">
  68. <withParam name="allowSummaries" scope="root"/>
  69. </callSubTemplate>
  70. </param>
  71. </param>
  72. <param name="chartCategories" type="node">
  73. <param name="isNotEdge" type="option" rule="isNotEdge">
  74. <callSubTemplate name="chartNode_category_close">
  75. <withParam name="allowSummaries" scope="root"/>
  76. </callSubTemplate>
  77. </param>
  78. <param name="calculations" type="multinode">
  79. <callSubTemplate name="chartNode_Calculation"/>
  80. </param>
  81. </param>
  82. &lt;/chartNodes&gt;
  83. </payload>
  84. </subtemplate>
  85. <subtemplate name="combination_chart_series">
  86. <parameters>
  87. <param name="allowSummaries" type="option" referenced="true"/>
  88. <param name="chartSeries" type="multinode" referenced="true">
  89. <param name="calculations" type="multinode" rule="calculations" enumerateVariations="false"/>
  90. <param name="isEdge" type="option" rule="isEdge"/>
  91. <param name="isNotEdge" type="option" rule="isNotEdge"/>
  92. </param>
  93. </parameters>
  94. <payload>
  95. &lt;chartNodes&gt;
  96. <param name="chartSeries" type="multinode" skipEmpty="true" delimeter="&lt;chartNestedNodes&gt;">
  97. <param name="isNotEdge" type="option">
  98. <callSubTemplate name="chartNode_category_open">
  99. <withParam name="allowSummaries" scope="root"/>
  100. </callSubTemplate>
  101. </param>
  102. </param>
  103. <param name="chartSeries" type="multinode">
  104. <param name="isEdge" type="option">
  105. <param name="chartSeries" scope="root" type="multinode" indexes="1">
  106. <!-- We can only have 1 edge, so this trick forces a nesting if there were other items -->
  107. &lt;chartNestedNodes&gt;
  108. </param>
  109. <callSubTemplate name="chart_edge">
  110. <withParam name="allowSummaries" scope="root"/>
  111. </callSubTemplate>
  112. <param name="chartSeries" scope="root" type="multinode" indexes="1">
  113. &lt;/chartNestedNodes&gt;
  114. </param>
  115. </param>
  116. </param>
  117. <param name="chartSeries" type="multinode" skipEmpty="true" reversed="true" delimeter="&lt;/chartNestedNodes&gt;">
  118. <param name="isNotEdge" type="option">
  119. <callSubTemplate name="chartNode_category_close">
  120. <withParam name="allowSummaries" scope="root"/>
  121. </callSubTemplate>
  122. </param>
  123. <param name="calculations" type="multinode">
  124. <callSubTemplate name="chartNode_Calculation"/>
  125. </param>
  126. </param>
  127. &lt;/chartNodes&gt;
  128. </payload>
  129. </subtemplate>
  130. <subtemplate name="chart_edge">
  131. <parameters>
  132. <param name="allowSummaries" type="option" referenced="true"/>
  133. <param name="hasChildCategory" type="option" rule="childCategory">
  134. <param name="childCategory" enumerateVariations="false" type="multinode" rule="childCategory"/>
  135. </param>
  136. </parameters>
  137. <payload>
  138. <param name="hasChildCategory" type="option">
  139. <param name="childCategory" type="multinode">
  140. <callSubTemplate name="chart_edge_category">
  141. <withParam name="allowSummaries" scope="root"/>
  142. </callSubTemplate>
  143. </param>
  144. </param>
  145. </payload>
  146. </subtemplate>
  147. <subtemplate name="chart_edge_category">
  148. <parameters>
  149. <param name="allowSummaries" type="option" referenced="true"/>
  150. <param name="isSummary" type="option" rule="edgeSummaryCategory"/>
  151. <param name="isNonSummary" type="option" rule="edgeNonSummaryCategory"/>
  152. </parameters>
  153. <payload>
  154. <param name="isNonSummary" type="option">
  155. <callSubTemplate name="chart_edge_category_node">
  156. <withParam name="allowSummaries" scope="root"/>
  157. </callSubTemplate>
  158. </param>
  159. <param name="isSummary" type="option">
  160. <param name="allowSummaries" scope="root" type="option">
  161. <callSubTemplate name="chart_edge_category_node">
  162. <withParam name="allowSummaries" scope="root"/>
  163. </callSubTemplate>
  164. </param>
  165. </param>
  166. </payload>
  167. </subtemplate>
  168. <subtemplate name="chart_edge_category_node">
  169. <parameters>
  170. <param name="allowSummaries" type="option" referenced="true"/>
  171. <param name="hasChildCategory" type="option" rule="childCategory">
  172. <param name="childCategory" enumerateVariations="false" type="multinode" rule="childCategory"/>
  173. </param>
  174. </parameters>
  175. <payload>
  176. &lt;chartNode&gt;
  177. <callSubTemplate name="chartNode_Category_nodeMembers"/>
  178. <param name="hasChildCategory" type="option">
  179. &lt;chartNestedNodes&gt;
  180. <param name="childCategory" type="multinode">
  181. <callSubTemplate name="chart_edge_category">
  182. <withParam name="allowSummaries" scope="root"/>
  183. </callSubTemplate>
  184. </param>
  185. &lt;/chartNestedNodes&gt;
  186. </param>
  187. &lt;/chartNode&gt;
  188. </payload>
  189. </subtemplate>
  190. <subtemplate name="combination_chart_measures">
  191. <parameters>
  192. <param name="chartMeasures" type="multinode" referenced="true"/>
  193. </parameters>
  194. <payload>
  195. &lt;chartNodes&gt;
  196. <param name="chartMeasures">
  197. <callSubTemplate name="chartNode_Category"/>
  198. </param>
  199. &lt;/chartNodes&gt;
  200. </payload>
  201. </subtemplate>
  202. <subtemplate name="default_measure">
  203. <parameters>
  204. <param name="singleMeasure" type="option" rule="singleDistinctMeasure"/>
  205. <param name="chartMeasure" type="node" referenced="true">
  206. <param name="name" type="string" rule="smdName"/>
  207. </param>
  208. </parameters>
  209. <payload>
  210. <param name="singleMeasure" type="option">
  211. &lt;v2_defaultChartMeasure refDataItem=&quot;<param name="chartMeasure" scope="root" type="node"><param name="name" encoding="xmlEncoded" type="string"/></param>&quot;/&gt;
  212. </param>
  213. </payload>
  214. </subtemplate>
  215. <subtemplate name="chart_multiples">
  216. <parameters>
  217. <param name="allowSummaries" type="option" referenced="true"/>
  218. <param name="chartCategories" type="multinode" referenced="true">
  219. <param name="queryId" type="string" rule="smdQueryName"/>
  220. <param name="isEdge" type="option" rule="isEdge"/>
  221. <param name="isNotEdge" type="option" rule="isNotEdge"/>
  222. </param>
  223. <param name="hasExtraCategories" type="option" rule="multipleCategories"/>
  224. </parameters>
  225. <payload>
  226. <param name="hasExtraCategories" type="option">
  227. &lt;v2_category&gt;
  228. &lt;chartNodes&gt;
  229. <param name="chartCategories" scope="root" type="multinode" delimeter="&lt;chartNestedNodes&gt;">
  230. <param name="isNotEdge" type="option">
  231. <callSubTemplate name="chartNode_category_open">
  232. <withParam name="allowSummaries" scope="root"/>
  233. </callSubTemplate>
  234. </param>
  235. </param>
  236. <param name="chartCategories" type="multinode" scope="root">
  237. <param name="isEdge" type="option">
  238. <param name="chartCategories" scope="root" type="multinode" indexes="1">
  239. <!-- We can only have 1 edge, so this trick forces a nesting if there were other items -->
  240. &lt;chartNestedNodes&gt;
  241. </param>
  242. <callSubTemplate name="chart_edge">
  243. <withParam name="allowSummaries" scope="root"/>
  244. </callSubTemplate>
  245. <param name="chartCategories" scope="root" type="multinode" indexes="1">
  246. &lt;/chartNestedNodes&gt;
  247. </param>
  248. </param>
  249. </param>
  250. <param name="chartCategories" type="multinode" scope="root" delimeter="&lt;/chartNestedNodes&gt;">
  251. <param name="isNotEdge" type="option">
  252. <callSubTemplate name="chartNode_category_close">
  253. <withParam name="allowSummaries" scope="root"/>
  254. </callSubTemplate>
  255. </param>
  256. </param>
  257. &lt;/chartNodes&gt;
  258. &lt;/v2_category&gt;
  259. &lt;v2_matrix&gt;
  260. &lt;v2_matrixColumns matrixLevels=&quot;1&quot;&gt;
  261. &lt;v2_matrixColumnLabels&gt;
  262. &lt;style&gt;
  263. &lt;defaultStyles&gt;
  264. &lt;defaultStyle refStyle=&quot;at&quot;/&gt;
  265. &lt;/defaultStyles&gt;
  266. &lt;/style&gt;
  267. &lt;/v2_matrixColumnLabels&gt;
  268. &lt;v2_axisTitle refQuery=&quot;<param name="chartCategories" scope="root" type="multinode" indexes="0"><param name="queryId" type="string"/></param>&quot;&gt;
  269. &lt;v2_chartTextContents&gt;
  270. &lt;v2_automaticText/&gt;
  271. &lt;/v2_chartTextContents&gt;
  272. &lt;/v2_axisTitle&gt;
  273. &lt;/v2_matrixColumns&gt;
  274. &lt;/v2_matrix&gt;
  275. </param>
  276. </payload>
  277. </subtemplate>
  278. <subtemplate name="chart_multiples_measures">
  279. <parameters>
  280. <param name="chartMeasure" type="multinode" referenced="true">
  281. <param name="queryId" type="string" rule="smdQueryName"/>
  282. </param>
  283. </parameters>
  284. <payload>
  285. &lt;v2_category&gt;
  286. &lt;chartNodes&gt;
  287. <param name="chartMeasure" type="multinode">
  288. <callSubTemplate name="chartNode_Category"/>
  289. </param>
  290. &lt;/chartNodes&gt;
  291. &lt;/v2_category&gt;
  292. &lt;v2_matrix&gt;
  293. &lt;v2_matrixColumns matrixLevels=&quot;1&quot;&gt;
  294. &lt;v2_matrixColumnLabels&gt;
  295. &lt;style&gt;
  296. &lt;defaultStyles&gt;
  297. &lt;defaultStyle refStyle=&quot;at&quot;/&gt;
  298. &lt;/defaultStyles&gt;
  299. &lt;/style&gt;
  300. &lt;/v2_matrixColumnLabels&gt;
  301. &lt;v2_axisTitle refQuery=&quot;<param name="chartMeasure" scope="root" type="multinode" indexes="0"><param name="queryId" type="string"/></param>&quot;&gt;
  302. &lt;v2_chartTextContents&gt;
  303. &lt;v2_automaticText/&gt;
  304. &lt;/v2_chartTextContents&gt;
  305. &lt;/v2_axisTitle&gt;
  306. &lt;/v2_matrixColumns&gt;
  307. &lt;/v2_matrix&gt;
  308. </payload>
  309. </subtemplate>
  310. <subtemplate name="chartNode_category_open">
  311. <parameters>
  312. <param name="allowSummaries" type="option" referenced="true"/>
  313. <param name="name" type="string" rule="smdName"/>
  314. <param name="hasChildCategory" type="option" rule="childCategory">
  315. <param name="childCategory" enumerateVariations="false" type="node" rule="nonSummaryChildCategory"/>
  316. </param>
  317. <param name="notSummaryParent" type="option" rule="notSummaryParent"/>
  318. </parameters>
  319. <payload>
  320. <param name="notSummaryParent" type="option">
  321. &lt;chartNode&gt;
  322. &lt;chartNodeMembers&gt;
  323. &lt;chartNodeMember refDataItem=&quot;<param name="name" scope="root" encoding="xmlEncoded" type="string"/>&quot;&gt;
  324. &lt;chartContents&gt;
  325. &lt;chartTextItem&gt;
  326. &lt;dataSource&gt;
  327. &lt;memberCaption/&gt;
  328. &lt;/dataSource&gt;
  329. &lt;/chartTextItem&gt;
  330. &lt;/chartContents&gt;
  331. &lt;/chartNodeMember&gt;
  332. &lt;/chartNodeMembers&gt;
  333. <param name="hasChildCategory" scope="root" type="option">
  334. &lt;chartNestedNodes&gt;
  335. </param>
  336. </param>
  337. <param name="hasChildCategory" type="option">
  338. <param name="childCategory" type="node">
  339. <callSubTemplate name="chartNode_category_open">
  340. <withParam name="allowSummaries" scope="root"/>
  341. </callSubTemplate>
  342. </param>
  343. </param>
  344. </payload>
  345. </subtemplate>
  346. <subtemplate name="chartNode_category_close">
  347. <parameters>
  348. <param name="allowSummaries" type="option" referenced="true"/>
  349. <param name="hasChildCategory" type="option" rule="childCategory">
  350. <param name="childCategory" enumerateVariations="false" type="node" rule="nonSummaryChildCategory"/>
  351. <param name="summaryChildCategory" enumerateVariations="false" type="multinode" rule="summaryChildCategory"/>
  352. </param>
  353. <param name="notSummaryParent" type="option" rule="notSummaryParent"/>
  354. <param name="isSummaryParent" type="option" rule="isSummaryParent"/>
  355. </parameters>
  356. <payload>
  357. <param name="hasChildCategory" type="option">
  358. <param name="childCategory" type="node">
  359. <callSubTemplate name="chartNode_category_close">
  360. <withParam name="allowSummaries" scope="root"/>
  361. </callSubTemplate>
  362. </param>
  363. </param>
  364. <param name="allowSummaries" type="option">
  365. <param name="hasChildCategory" scope="root" type="option">
  366. <param name="summaryChildCategory" type="multinode">
  367. <callSubTemplate name="chartNode_Category"/>
  368. </param>
  369. </param>
  370. </param>
  371. <param name="notSummaryParent" type="option">
  372. <param name="hasChildCategory" scope="root" type="option">
  373. &lt;/chartNestedNodes&gt;
  374. </param>
  375. &lt;/chartNode&gt;
  376. </param>
  377. <param name="allowSummaries" type="option">
  378. <param name="isSummaryParent" scope="root" type="option">
  379. <callSubTemplate name="chartNode_Category"/>
  380. </param>
  381. </param>
  382. </payload>
  383. </subtemplate>
  384. <subtemplate name="chartNode_Calculation">
  385. <parameters>
  386. <param name="name" type="string" rule="smdName"/>
  387. </parameters>
  388. <payload>
  389. &lt;chartNode&gt;
  390. &lt;chartNodeMembers&gt;
  391. &lt;chartNodeMember refDataItem="<param name="name" encoding="xmlEncoded" type="string"/>"&gt;
  392. &lt;chartContents&gt;
  393. &lt;chartTextItem&gt;
  394. &lt;dataSource&gt;
  395. &lt;dataItemLabel refDataItem="<param name="name" encoding="xmlEncoded" type="string"/>"/&gt;
  396. &lt;/dataSource&gt;
  397. &lt;/chartTextItem&gt;
  398. &lt;/chartContents&gt;
  399. &lt;/chartNodeMember&gt;
  400. &lt;/chartNodeMembers&gt;
  401. &lt;/chartNode&gt;
  402. </payload>
  403. </subtemplate>
  404. <subtemplate name="chartNode_Category">
  405. <payload>
  406. &lt;chartNode&gt;
  407. <callSubTemplate name="chartNode_Category_nodeMembers"/>
  408. &lt;/chartNode&gt;
  409. </payload>
  410. </subtemplate>
  411. <subtemplate name="chartNode_Category_nodeMembers">
  412. <parameters>
  413. <param name="name" type="string" rule="smdName"/>
  414. </parameters>
  415. <payload>
  416. &lt;chartNodeMembers&gt;
  417. &lt;chartNodeMember refDataItem=&quot;<param name="name" encoding="xmlEncoded" type="string"/>&quot;&gt;
  418. &lt;chartContents&gt;
  419. &lt;chartTextItem&gt;
  420. &lt;dataSource&gt;
  421. &lt;memberCaption/&gt;
  422. &lt;/dataSource&gt;
  423. &lt;/chartTextItem&gt;
  424. &lt;/chartContents&gt;
  425. &lt;/chartNodeMember&gt;
  426. &lt;/chartNodeMembers&gt;
  427. </payload>
  428. </subtemplate>
  429. <subtemplate name="commonChartNodes">
  430. <parameters>
  431. <param name="hasCurrentV2_chartSubTitle" type="option" rule="currentV2_chartSubTitle">
  432. <param name="currentV2_chartSubTitle" type="nodecontents" rule="currentV2_chartSubTitle"/>
  433. </param>
  434. <param name="hasCurrentV2_chartTitle" type="option" rule="currentV2_chartTitle">
  435. <param name="currentV2_chartTitle" type="nodecontents" rule="currentV2_chartTitle"/>
  436. </param>
  437. <param name="hasCurrentV2_chartFooter" type="option" rule="currentV2_chartFooter">
  438. <param name="currentV2_chartFooter" type="nodecontents" rule="currentV2_chartFooter"/>
  439. </param>
  440. <param name="hasCurrentReportDrills" type="option" rule="currentReportDrills">
  441. <param name="currentReportDrills" type="nodecontents" rule="currentReportDrills"/>
  442. </param>
  443. <param name="hasCurrentChartSuppress" type="option" rule="currentChartSuppress">
  444. <param name="currentChartSuppress" type="nodecontents" rule="currentChartSuppress"/>
  445. </param>
  446. <param name="hasCurrentAlternateText" type="option" rule="currentAlternateText">
  447. <param name="currentAlternateText" type="nodecontents" rule="currentAlternateText"/>
  448. </param>
  449. </parameters>
  450. <payload>
  451. <param name="hasCurrentV2_chartSubTitle" type="option">
  452. <param name="currentV2_chartSubTitle" type="nodecontents"/>
  453. </param>
  454. <param name="hasCurrentV2_chartTitle" type="option">
  455. <param name="currentV2_chartTitle" type="nodecontents"/>
  456. </param>
  457. <param name="hasCurrentV2_chartFooter" type="option">
  458. <param name="currentV2_chartFooter" type="nodecontents"/>
  459. </param>
  460. <param name="hasCurrentReportDrills" type="option">
  461. <param name="currentReportDrills" type="nodecontents"/>
  462. </param>
  463. <param name="hasCurrentChartSuppress" type="option">
  464. <param name="currentChartSuppress" type="nodecontents"/>
  465. </param>
  466. <param name="hasCurrentAlternateText" type="option">
  467. <param name="currentAlternateText" type="nodecontents"/>
  468. </param>
  469. </payload>
  470. </subtemplate>
  471. </subtemplates>
  472. </template>