Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
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)