Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
THRUST SERVICES & TOOLS
CLOUD EDITIONS
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Intelligence (Analytics)
How to assing name to a dynamically created report item
MMirabito
I am having difficulty in figuring out which API I need to invoke and set the name on dynamically created subtotal in crosstab. <br />
<br />
When the column is created it assign an element ID but I also want to give it name so that I can issue a findElement(string) instead of getElementByID(int) in another section of the javascript.<br />
<br />
Can anyone tell me what I need to do to accomplish this?<br />
<br />
Thanks in advance<br />
<br />
Max<br />
<br />
<br />
<br />
Here is what I have done so far:<br />
<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>
function insertSubTotal(xTabHandle, cubeHandle, elementFactory, index, dimensionName, measureCount) {
var myColName = "MyColName"
var dvh = xTabHandle.getDimension( ICrosstabConstants.ROW_AXIS_TYPE, index);
var levelViewHandle = dvh.getLevel(0);
var measureList = new ArrayList();
var functionList = new ArrayList();
var mvh = xTabHandle.getMeasure(0);
measureList.add(mvh);
functionList.add("SUM");
var cch = levelViewHandle.addSubTotal(measureList, functionList);
// Create computed column for the subtotal label
var dimension = cubeHandle.getDimension(dimensionName);
var level = dimension.getDefaultHierarchy().getLevel(0);
var deh = xTabHandle.getModelHandle();
var bindingColumn = StructureFactory.newComputedColumn(deh, level.getName());
var bindingHandle = deh.addColumnBinding(bindingColumn,false);
bindingColumn.setDataType("String");
var exp = "'(' + dimension['" + dimension.getName()+"']['"+level.getName()+"'] + ') Subtotal'";
bindingColumn.setExpression(exp);
var dataHandle = elementFactory.newDataItem(level.getName());
dataHandle.setResultSetColumn(bindingHandle.getName());
cch.addContent(dataHandle);
// Set the CCS style
for (var i = 0; i < measureCount; i++) {
var mvh = xTabHandle.getMeasure(i);
var actualdata = mvh.getAggregationCell(index).getContents().get(0);
actualdata.setProperty("style", "xSubTotals-" + index);
}
}</pre>
Find more posts tagged with
Comments
JasonW
have you tried the setName method?
actualdata.setName("tst"+index);
Jason