OK, it's a bit more complicated because I have multiple measures on the axis and the formula does not aggregate.
I have come up with the following script, which I run on data change on a chart with no labels, which does the job.
//the label settings
var chartDataLabelSettings = new dundas.controls.ChartDataLabelSettings();
chartDataLabelSettings.text = "[Dynamic Measure:N0]%";
chartDataLabelSettings.placement = dundas.controls.AutoLabelPlacement.OUTSIDE;
chartDataLabelSettings.outsideAlignment = dundas.controls.AutoLabelAlignment.RIGHT;
chartDataLabelSettings.rotation = dundas.controls.AutoLabelRotation.NONE;
chartDataLabelSettings.outsideCanOverlapLabels = false;
chartDataLabelSettings.outsideCanOverlapData = true;
//put in an array
cdls = [];
cdls.push(chartDataLabelSettings)
//put into the chart
chart1.control.series[0].getPoints().forEach(function (dp)
{
//if a point x value matches the very last point x value, it is the end of a series grouping line
if (dp.xValues[0][0] === chart1.control.series[0].getPoints()[chart1.control.series[0].getPoints().length - 1].xValues[0][0])
{
//apply label settings
dp.labels = cdls;
}
}
)
chart1.control.invalidate();