nth-level Dynamic Query Builder Using Angular 7

nth-level Dynamic Query Builder Using Angular 7

Dynamic Query builder is a more innovative way to handle multiple conditions. We can say a set of rules using a simple but astonishing UI where the user can easily create dynamic rulesets (Combination of various conditions). Usually, it is used in backend portals where users can set dynamic rules and get an output in structured JSON format. Then you can parse the outcome in your desired form like SQL or No-SQL.

Let’s see the dynamic builder’s usage and how you can place fields, operators, and results dynamically. Follow the steps as shown below:

Step 1: Install Query Builder Package from the command prompt

    npm install angular2-query-builder   

Step 2: Import Query Builder module for use package in component

File Name: app.module.ts

query-builder

Step 3: Create a query builder (Set rule and rule set with custom fields)

Here based on the field selection, the builder dynamically sets a query operator.

e.g. 1: if fields need to check multiple values then operator can be “IN or NOT IN”

e.g. 2: if fields need to check numeric value then operator can be “<, >, <=, >=, <>, =”

File Name: app.component.html

File Name: app.component.ts

Step 4: Operator sets to display it in query builder  

Step 5: Call the API and fetch dynamic fields to set it in query builder

The code snippets above have been implemented to create dynamic questions and their answers or any other dependency. Using this tool builds queries based on the input of questions.  Ex:  If the answer to the age question is… > 50, then, If the answer to X question is IN (1, 2, 7), then. You can follow the steps above to integrate dynamic fields and operators in the query builder based on your requirements. To know more about the Dynamic Query Builder, get in touch with an DEV IT expert here.

The following two tabs change content below.

Arpita Mehta

Sr. Software Developer (PHP) at Dev Information Technology Ltd.
My primary focus and inspiration is Web Development. I am constantly experimenting with new technologies and techniques.

Leave a Reply

Your email address will not be published. Required fields are marked *