Qlik Community

QlikView App Dev

Discussion Board for collaboration related to QlikView App Development.

Announcements
QlikWorld online is next week! REGISTER NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
dselgo_eidex
Partner
Partner

Macro to create string from selected field values

Hello, I'm trying to make a search string to store into a variable for later use via a macro. I already have an action on a button that is doing this, but I'm trying to make a macro to do this instead (the reason is that I want a number of variables to be set according to which button was pushed, and I think it will be easier to maintain in a macro rather than in 10+ Set Variable actions). Currently my Select in Field action is doing this:

='("' & concat({state1}DISTINCT ENTITY_NAME, '"|"') & '")'

I'm trying to get a macro to form the same string value (i.e. ("A"|"B")). Currently I have this in my macro:

Set fieldSelections = ActiveDocument.Fields("ENTITY_NAME", "state1").GetSelectedValues()

Set concatString = "(""" & Join(fieldSelections, """|""") & """)"

but I am receiving an error on the second line. From what I've read, the Join function in VBScript is meant to take an array and delimiter and return a string value (VBScript Join Function). However, the GetSelectedValues() method returns an object of the IArrayOfFieldValue class, which I assume works like an array. Is there any way that I can concatenate the values returned by GetSelectedValues()?

1 Solution

Accepted Solutions
dselgo_eidex
Partner
Partner
Author

Woops, just learned of the Evaluate() method.

concatString = "(""" & ActiveDocument.Evaluate(concat({state1}DISTINCT ENTITY_NAME, '""|""') & "")"

View solution in original post

1 Reply
dselgo_eidex
Partner
Partner
Author

Woops, just learned of the Evaluate() method.

concatString = "(""" & ActiveDocument.Evaluate(concat({state1}DISTINCT ENTITY_NAME, '""|""') & "")"