04-13-2022 10:00 AM - last edited on 05-25-2023 07:35 AM by JackLacava
Dear Community,
I have a use case where the user would like to change a value by clicking a button. when I click on the "+" icon, it will add 1 into my parameter shown in the label, and when I click on "-", this would remove 1.
Very simple, it can be done just with an input but I would like to do it with icons just for fun 🙂
Basically, this looks like this :
I was thinking of using an XBRL but not sure on how it would fit ?
Regards,
04-14-2022 03:32 AM
That was actually an easy one.
I am using a "Dashboard Extender Rule" with a parameter called P_PASSENGERS and its a "litteral value" type parameter :
Imports System
Imports System.Data
Imports System.Data.Common
Imports System.IO
Imports System.Collections.Generic
Imports System.Globalization
Imports System.Linq
Imports System.Net.Mail
Imports System.Windows.Forms
Imports Microsoft.VisualBasic
Imports OneStream.Shared.Common
Imports OneStream.Shared.Wcf
Imports OneStream.Shared.Engine
Imports OneStream.Shared.Database
Imports OneStream.Stage.Engine
Imports OneStream.Stage.Database
Imports OneStream.Finance.Engine
Imports OneStream.Finance.Database
Imports System.Xml
Namespace OneStream.BusinessRule.DashboardExtender.ESG_SolutionHelper
Public Class MainClass
Public Function Main(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As DashboardExtenderArgs) As Object
Try
Select Case args.FunctionType
Case Is = DashboardExtenderFunctionType.ComponentSelectionChanged
' ****************** Add one passenger ****************
If (args.FunctionName.XFEqualsIgnoreCase("AddPassenger")) Then
Dim selectionChangedTaskResult As New XFSelectionChangedTaskResult()
Dim parameterName As String = "P_PASSENGERS"
Dim parameterValue As String = ""
parameterValue = BRApi.Dashboards.Parameters.GetLiteralParameterValue(si, False, parameterName)
Dim intParameter As Integer
intParameter = parameterValue.XFConvertToInt(0)
intParameter = intParameter + 1
BRApi.Dashboards.Parameters.SetLiteralParameterValue(si, False, ParameterName, intParameter)
selectionChangedTaskResult.ShowMessageBox = True
selectionChangedTaskResult.Message = String.Format("Passenger Added")
Return selectionChangedTaskResult
End If
' ****************** Remove one Passenger ****************
If (args.FunctionName.XFEqualsIgnoreCase("RemovePassenger")) Then
Dim selectionChangedTaskResult As New XFSelectionChangedTaskResult()
Dim parameterName As String = "P_PASSENGERS"
Dim parameterValue As String = ""
parameterValue = BRApi.Dashboards.Parameters.GetLiteralParameterValue(si, False, parameterName)
Dim intParameter As Integer
intParameter = parameterValue.XFConvertToInt(0)
intParameter = intParameter - 1
If intParameter <=1 Then intParameter = 1
BRApi.Dashboards.Parameters.SetLiteralParameterValue(si, False, ParameterName, intParameter)
selectionChangedTaskResult.ShowMessageBox = True
If intParameter = 1 Then
selectionChangedTaskResult.Message = String.Format("Passenger Removed (minimum:1)")
Else
selectionChangedTaskResult.Message = String.Format("Passenger Removed")
End If
Return selectionChangedTaskResult
End If
End Select
Return Nothing
Catch ex As Exception
Throw ErrorHandler.LogWrite(si, New XFException(si, ex))
End Try
End Function