Search Record in parent -child relationship.

  • 1
  • Question
  • Updated 3 years ago
  • Answered
  • (Edited)
Hi I have created Region Object.
It has multilevel hierarchy.
For Example.
A>B>C>D

D is the child of C.C is the child of B.B is child of A.
Now i need to provide filter when i am searching with A all the records of A,B,C,D should be populated.

When I am search with B All the records of B,C,D Should be  populated.

Same way when I search for C all the records with C and D should be populated.

Let me proper Idea how can I achieve this task.
 
Photo of Rohit Vakhariya

Rohit Vakhariya

  • 1,054 Points 1k badge 2x thumb

Posted 3 years ago

  • 1
Photo of Rob Hatch

Rob Hatch, Official Rep

  • 44,006 Points 20k badge 2x thumb
If you are using one object and have built a lookup to that same object in order to build a hierarchy this is pretty simple.  For the sake of example I'm going to build an account detail page - showing its region identification,  using a region hierarchy.  I assume that the account record has a lookup to region in order to get the most granular regional location. 

Then create a second model to show "parent regions"   This model will have four conditions. 

1. Region_Name= AccountModel.RegionLookupField
2. Parent.Region_Name= AccountModel.RegionLookupField
3. Parent.Parent.AccountModel.RegionLookupField  Region_Name= AccountModel.RegionLookupField
4. Parent.Parent.Parent.Region_Name= AccountModel.RegionLookupField  

The grouping logic on these conditions will be (1 OR 2 OR 3 OR 4)

This way no matter what level of region is identified with the account - the regional hierarchy on top will be shown. 
Photo of Rohit Vakhariya

Rohit Vakhariya

  • 1,054 Points 1k badge 2x thumb
Thanks Rob.
But I need this functionality for filter record.Not for display Record.
I need to add filter for searching.
I have to create this functionality on grid page not on detail page.
Let me know some more suggestion .



For Example:

See Above Screen shot.

For Example
A>B>C

I have three records.

Rohit1 who's Permanent Region is C.
Rohit2 who's Permanent Region is B.
Rohit3 who's Permanent Region is A.


So when i will Select A From Filter all three should be display.
IF I Select B than Rohit2 and Rohit1 Should be display.
IF I Select C than Rohit1 Should be display.
(Edited)
Photo of Rob Hatch

Rob Hatch, Official Rep

  • 44,006 Points 20k badge 2x thumb
In order for this to work you will have to do some work in Javascript. Here is an initial sketch:  

1. Revise all your conditions so that they have a blank value, and are "Filterable default off".  This will give them a filter name (which you can adjust).  Keep the grouping logic as shown above. 



2. Create a new model that groups all your records by region (we are just getting a list of regions here that we can use as a model source)

3. Then create the permanent region filter on your table and make the following adjustments. 
a. Pick options and Conditions - Manually. 
b. Model Conditions to Affect - None
c. Create "None Selected" Option - Off. 

4. Add 2 Filter Option Sources of type Manual. 
a. First source properties:  
   - Conditions affected:  Affect Other Conditions.
   - Lable = "All Regions" 
   - Add as many Effects as you have conditions.  All the effects should be to deactivate the conditions. 

b. Second source will be of type "fields in a model"  
    - The merge source should be the model you created in step 2.
    - The "Conditions the source options affect" property should be "Default condition and others"
    - Then create Effects for each condition and pass the "Id" field from the model as the value to inject into those conditions. 



This should give you a list of all available regions, and when one is selected, pass it along into all the region conditions you have set up. 

Good Luck. 
(Edited)
Photo of Rob Hatch

Rob Hatch, Official Rep

  • 44,006 Points 20k badge 2x thumb
Note: An intial answer provided required some Javascript code.  I subsequently realized that it was not required and edited the response above.  If you are worried about the Javascript - worry  no longer...
(Edited)
Photo of Rohit Vakhariya

Rohit Vakhariya

  • 1,054 Points 1k badge 2x thumb
Thanks Rob.
Photo of Rohit Vakhariya

Rohit Vakhariya

  • 1,054 Points 1k badge 2x thumb
Thanks Rob.