on 09-08-2014 11:59 AM
Hello Gurus,
Is there easy way to open Row/Column axis member selector using VBA?
I need to create custom button in a report which will allow user to select members in TIME dimension which in my report is in column axis.
I already tried solutions involving recording macro or using EPMDimensionOverride.
Each solution either failed or didn't meet requirements so I guess the easiest way would be to write VBA code which will behave exactly as if user clicked on dimension in time axis as presented on below screenshot.
Any help on how to do this or what functions/macros to use will be highly appreciated.
Many thanks!
Maciej
Hi Maciej,
You have to use the code like:
Dim epm As New FPMXLClient.EPMAddInAutomation
Public Sub SelMem()
Dim strTimeMembers As String
Dim strConnName As String
strConnName = "INFILE - SIM"
strTimeMembers = epm.OpenMemberSelector(strConnName, "PERIODS", "")
MsgBox strTimeMembers
End Sub
The Member Selector dialog will be:
In strTimeMembers you will receive the list of selected members:
You can parse this string to array of members and use it later for EPMDimensionOverride formula or VBA code...
Vadim
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Gurus,
I have one more concern regarding this topic.
I have implemented the solution as Vadim suggested and it works perfectly fine on my computer with EPM SP15.
However we have found out that on a computer with EPM SP18 installed function EPMDimensionOverride didn't work. After downgrade to EPM SP15 it started working nicely.
Are there any know issues regarding function EPMDimensionOverride and EPM SP18?
Regards,
Maciej
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
That's it. In my case I was using full member name like in the example above.
Isn't this a bug since " epm.OpenMemberSelector(strConnName, "PERIODS", "")" returns string which consists of members in full name?
Anyways, thanks! I will have to keep in mind not to upgrade customer's workstations to EPM SP18 unless I change in VBA members into short form.
Regards,
Maciej
Simply use the following code:
Dim epm As New FPMXLClient.EPMAddInAutomation
Public Sub SelMem()
Dim strConnName As String
Dim strTimeMembers As String
Dim strTimeMembersArr() As String
Dim lngTemp As Long
strConnName = "INFILE - SIM"
strTimeMembers = epm.OpenMemberSelector(strConnName, "PERIODS", "")
strTimeMembers = Left(strTimeMembers, Len(strTimeMembers) - 1)
strTimeMembersArr = Split(strTimeMembers, ";")
For lngTemp = 0 To UBound(strTimeMembersArr)
strTimeMembersArr(lngTemp) = Mid(strTimeMembersArr(lngTemp), InStrRev(strTimeMembersArr(lngTemp), _
"[") + 1, Len(strTimeMembersArr(lngTemp)) - InStrRev(strTimeMembersArr(lngTemp), "[") - 1)
Next lngTemp
strTimeMembers = Join(strTimeMembersArr, ",")
MsgBox strTimeMembers
End Sub
Vadim
User | Count |
---|---|
5 | |
5 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.