Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions MDX2JSON/Dashboard.cls
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,40 @@ ClassMethod WidgetsToProxyObject(Dashboard As %DeepSee.Dashboard.Definition, Out
return st
}


/// A very specific method of displaying the data type for cube measures.
/// Serves for the convenience of front-end development of the filter widget.
/// The return is something like this <b>%DeepSee.Time.DayMonthYear</b>
ClassMethod GetCubeMeasuresDataType(Widget, Number, CubeName, Output DataType As %String) As %Status
{

set st = $$$OK
set dataSource = $piece(Widget.dataSource, ".", *) // get dataSource type

if (dataSource '= "kpi"){
if ($FIND(Widget.controls.GetAt(Number).targetProperty, "[")){
set tMeasure = $TRANSLATE(Widget.controls.GetAt(Number).targetProperty, "[]", "")

set st = ##class(%DeepSee.Utils).%GetDimensionInfo(CubeName,tMeasure,.pDimNo,.pHierNo,.pLevelNo) // get positional info about dimension

Set tMbrInfo = $G($$$DeepSeeMetaGLVN("cubes",$$$UPPER(CubeName),"mbr#",pDimNo,pHierNo,pLevelNo))
set DataType = $LG(tMbrInfo,6) // get data type
if '($FIND(DataType, "%")){ // if DataType return cube fact search for dataType in "star"
Set tMbrInfo = $G($$$DeepSeeMetaGLVN("cubes", $$$UPPER(CubeName), "star", DataType, "prop", $LG(tMbrInfo,7), "type"))
set DataType = tMbrInfo
}
}else{

set DataType = ""
}
}else{

set DataType = ""
}

return st
}

/// Converts relevant parts of %DeepSee.Dashboard.Widget object into %ZEN.proxyObject.
ClassMethod WidgetToProxyObject(Widget As %DeepSee.Dashboard.Widget, CubeName As %String) As %ZEN.proxyObject [ Internal ]
{
Expand Down Expand Up @@ -253,6 +287,9 @@ ClassMethod WidgetControlToProxyObject(Widget As %DeepSee.Dashboard.Widget, Numb
set obj.label = ##class(%DeepSee.UserPortal.Utils).%ResolveText(obj.label)
set obj.source = Widget.name

set filterDataType = ..GetCubeMeasuresDataType(Widget,Number,CubeName,.fDataType)
set obj.targetPropertyDataType = fDataType

set:(obj.target="") obj.target = Widget.name

if ($e(obj.value)="@") {
Expand Down