Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Get Set Analysis Expression In Select in Field Trigger

Hello,

I am trying to use Select in Field action trigger to select values equivalent to my set analysis expression. (see attached sample)

1. For example, if my set analysis expression is count({<PCatID={1},ItemCode={101,102}>}Items) , I would use a button with the following actions:

Button 1:

Actions:

Select in Field    Value

PCatID                 1

ItemCode             (101|102)

This would give me the set analysis expression in current selections (except the count of Items - which is not as necessary).

I am trying to use the same procedure for the following expression:

Count((Aggr(if(only({<ITrans.PCatID = {1}>}ITrans.CreationDate)< Max({<ITrans.PCatID={2,3,4,5}>}ITrans.CreationDate),ITrans.ItemCode1),ITrans.ItemCode1)))

Can I possibly use  something similar to create an action button for the  expression above?

2. Use Select in Field To Compare With Variable

Secondly, I have an expression that uses Select in Field trigger on ABC field  (which has values like 1.25, 4.56, 5.69,10.56,1.12,2.32,3.25....)

In the Value field, I am using with a variable which holds the value of an expression (which is 5.56 or something like that). I tried using ='>$(vAvg)' and also using $(vAvg) but it does not work as desired. What is the correct syntax to use a greater than or less than variable as Value for Select in Field trigger.

Please see the attached sample.

Regards and Thanks,

-Shahbaaz.

1 Solution

Accepted Solutions
vincent_ardiet
Specialist
Specialist

I have found a solution to your problem, you can use CONCAT which is an aggregation function and so can be used with set analysis.

So, if you put a select in field trigger based on ItemID with the following expression it works :

='('&concat(aggr(if(only({<PCatID = {1}>}CreationDate)< max({<PCatID={2,3,4}>} CreationDate),ItemID), ItemID),'|')&')'

Regards,

Vincent

View solution in original post

10 Replies
vincent_ardiet
Specialist
Specialist

Hi,

For your point number 2, it's due to the value of vAvg which is changing regarding to your current selection.

Write vAvg like this :  =interval(max({1}CreationDate),min({1}CreationDate))

For the first point, I think that you cannot filter a field with the help of a condition on another field.

What is your aim ? Why do you want such an action ? You can use a variable containing only the set analysis part of your expression and changing it dynamicaly.

Regards,

Vincent

Not applicable
Author

Dear Vincert,

Thank you for your response.

I used the {1} values for max and min values (as you suggested) and it worked.

Regarding the first point, here is my scenario:

I have two reports on two different sheets (Report 1 on Sheet 1 and Report 2 on Sheet 2), each with seperate dimensions but both display the sum/count of say, Items

I need to select the expression (note: select the value of the expression in straight/pivot table [see original attachment]). But QlikView does not allow that, if I am not mistaken. It would only select the associated dimensions and values when you make a selection and does not capture the expression itself in current selections.

As a work around, I could use a button action (Select in Field trigger) to capture the set analysis criteria of Report 1 and use the same selections on Report 2 where I use a second action to navigate to report 2.

Say, Report 1 is showing me the count of certain Items against a given set analysis expression. Using a button action, I want to display the details of precisely only these Items in Report 2.

When I click this action button, it will capture the selection (set analysis criteria used in expression ) from report 1 and navigate to the Sheet 2 - Report 2 where it should display the details of only those items that Report 1 is showing.

I wonder if that is possible (preferably without using macros). Please let me know if this elucidates my app scenario?

Regards and Thanks,

-Khaled.

vincent_ardiet
Specialist
Specialist

I have found a solution to your problem, you can use CONCAT which is an aggregation function and so can be used with set analysis.

So, if you put a select in field trigger based on ItemID with the following expression it works :

='('&concat(aggr(if(only({<PCatID = {1}>}CreationDate)< max({<PCatID={2,3,4}>} CreationDate),ItemID), ItemID),'|')&')'

Regards,

Vincent

Not applicable
Author

Dear Vincert,

Thanks again. It works just as desired.

Regards,

-Khaled.

Not applicable
Author

Dear Vincert,

I could use a litte more help/suggestions.

How can I use the same snytax (the concat function) for the following expressions.


1.

Count
(
{
<
PID ={100}>
}
Items
)

2.  Is it possible to use the same syntax for an expression that evaluates the difference of two set-based expressions (please refer the example syntax below)

Count
(
{
<
PID ={100}>
}
Items
)

-

Count
(
{
<
PID ={100}>
}
OtherItems
)

Regards & Thanks,

-Khaled

Not applicable
Author

Hi, this works fine for me. Hope it helps you!

='>'&$(vAvg)

Not applicable
Author

Hi, this works fine for me. Hope it helps you!

='>'&$(vAvg)

Not applicable
Author

Hi, this works fine for me. Hope it helps you!

='>'&$(vAvg)

Not applicable
Author

Hi, this works fine for me. Hope it helps you!

='>'&$(vAvg)