ELLEV Function?

tm1

#1

Hi,

Is there a Canvas equivalent of the ELLEV function? I’ve been putting together a form where I only want to display things at the N-Level. I’ve been getting around it by applying a mask (level 1 are all consistently named so I can us ng-hide to test if a substring of the element matches what I’m looking for), however this is more through luck than anything else as most dimensions won’t be consistently named at the various levels.

I’d like to be able to use ng-if, ng-hide, and ng-show based on level to suppress fields in a Canvas activeform based on level. Would help with applying different formats based on level as well. I’ve worked through the dashboard building example and like the way you can apply selective formatting based on the value, but I’m thinking more about applying (as an example) standard formatting for N level elements but defining additional formatting styles eg , etc.

Apologies if these are silly questions, I’m very much a Canvas/AngularJS novice. Any assistance would be greatly appreciated.

Clayton.


#2

Post has interpreted my example formatting styles as actual HTML tags. The additional formatting levels were <ELLEV1>, <ELLEV2>, etc.


#3

If I understand the question right you can use for that Canvas element-list directive with tm1-mdx parameter. So you can really use filter by lvl and apply formatting for each row/column/…/ using lvl property of json what you get from elelent-list.


#4

Hi @cmcguire,

In addition to that, as part of the information returned by tm1-ui-element-list, there is actually a property called ‘level’, then you can leverage on to get the level as provided by TM1. Here is an example:

<tm1-ui-element-list tm1-instance="dev" tm1-dimension="Period" ng-model="page.periods"></tm1-ui-element-list>
<table class="table">
	      <thead>
	        <tr>
	          <th>Element</th>
	          <th>Level</th>
	        </tr>
	      </thead>
	      <tbody>
	        <tr ng-repeat="period in page.periods">
	          <td>{{period.key}}</td>
	          <td>{{period.level}}</td>
	        </tr>
	      </tbody>
	    </table>

So either you filter through MDX, or you can also handle it differently by utilizing the ‘level’ property.


Paul


#5

Hi Paul,

Perfect! Thanks for the response, exactly what I need.

Cheers,

Clayton


#6

Hi @cmcguire,

Just to add to what Paul said.

When you create a list of element using tm1-ui-element-list, you can use {{variable-name}} to show what is inside the list.

For example, if you create the following list:

<tm1-ui-element-list tm1-instance="dev" tm1-dimension="Period" ng-model="page.periods"></tm1-ui-element-list>

{{page.periods}}

If you show the variable {{page.periods}} in your HTML page, you’ll see the list of elements in the list with all element’s attributes such as key, level, Isleaf, alias…:

You can then use all these attributes using {{period.key}} or {{period.index}}