Qlik Community

QlikView App Development

Discussion Board for collaboration related to QlikView App Development.

Highlighted
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
Partner
Partner

Re: Macro to create string from selected field values

Woops, just learned of the Evaluate() method.

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

1 Reply
Partner
Partner

Re: Macro to create string from selected field values

Woops, just learned of the Evaluate() method.

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