Get All Values of Grid Column to Compare

About This Space

No description provided.


Last updated on August 11, 2019

Public Permissions:   View   Open/Fork   Run   Comment  

How to Get Grid Data for Comparison

Setting Up

These instruction are not for Database Driven Grids. For Database Drive Grids, you'll need to use getCellValue() in a loop instead. For more information on the getCellValue() API, please visit: getCellValue() API.

  ►  First, you'll want to pick out a grid widget and add it to the design area.

Add a Grid

  ►  Next, you'll want to add fields to your grid for you to write your data to. You can pick an output field widget and set up the bound variable. Or, if your data is coming from a database table, you can switch to the Database tab and drag the fields you want to use as reference fields to the design area.

Add Grid Fields

  ►  For this next part, I added some buttons and output fields for getting and displaying the results of the data manipulations.

Add Elements

  ☼  Why make the input box look like an output field? I use the disguised textbox so that, if I wanted to, I could return the result back to the program to work with. This is not currently apart of this example. Please comment and let us know what you would like added, edited, or explained further in this example!

Adding the JavaScript

  ►  Now's the time to write code that will get and display the result of the data manipulation. The code could be added directly to the onclick events of the buttons, but this does not allow for easy reuse of the code. So, I instead put the code in functions that can call from any event I want to use it. This script can be found in the script.js file of this workspace.

Switch Files

Function Called in Onclick Event of Get Total Button


// Calculate the total of all entries in the "ID" column of grid with DOM attribute id "Grid1".
function calcTotal() {

  // Get the grid data.
  var data = getObj("Grid1").grid.getAllDataValues(true);

  // Initialize temp variable to hold sum.
  var totQty = 0;

  // For each record in teh grid data, add up the total of the values from the ID column. 
  for (var i=0; i<data.length; i++) {

    // "ID" here is not the DOM attribute id, but is instead the name of the bound field.  
    totQty += Number(data[i]["ID"]);

  }

  // Set the value of the element with DOM attribute id "total" to the resulting total. This element is the disguised textbox to the left of the 'Get Total' button.
  pui.set("total", totQty.toFixed(0));

}

Example Call:

calcTotal();

Function Called in Onclick Event of Get Max Button

// Determine the highest value of all entries in the "ID" column of grid with DOM attribute id "Grid1". 
function calcMax() {

  // Get the grid data.
  var data = getObj("Grid1").grid.getAllDataValues(true);
  
  // Initialize temp variable to hold array of all entries in the "ID" column of grid with DOM attribute id "Grid1".
  var idColumn = [];
  
  // For each record in teh grid data, add the value from the ID column to the temp array. 
  for (var i=0; i<data.length; i++) {

    // Add value to temp array "idColumn".
    idColumn.push(data[i]["ID"]);

  }

  // Set the value of the element with DOM attribute id "max" to the determined highest value. This element is the disguised textbox to the left of the 'Get Max' button.
  pui.set("max", Math.max(...idColumn));

}

Example Call:

calcMax();

Add Code to Onclick Event of Max Button

Note:

You may have noticed how the max was determined, Math.max(...idColumn). The Math.max() method accepts a list of values, but it doesn't accept arrays. To use the values from an array, you need to "expand" it by prepending the array name with three periods, ....

Test Launch in IDE

Clicking Launch App in IDE will open the bottom drawer of the workspace and display the Run Your App tab.

Run App in IDE Bottom Drawer

App Running in IDE Bottom Drawer

calcTotal() worked for the dataset!

Test Launch in New Tab

Clicking Launch App in Browser Tab will open the run link for your workspace in a new tab.

Run App in New Tab

Run Link: https://noderun.com/run/megan_bond/get-all-values-of-grid-column-to-compare/

App Running in New Tab

calcMax() worked for the dataset!

Be the first to comment:      

Comments

Write Preview Markdown: bold italic code link
Post

Filters:

Popular Recent

Empty template with the basics set up for a quick display.

18443

0

0

Empty template with the basics set up for a quick display.

21958

0

0

Save the row the user was on before the screen was submitted. Then, refocus that row when the user has returned to the page, even if they went to other pages in the meantime.

26227

0

1

A simple dashboard example that uses responsive design

26149

0

0

Empty template with the basics set up for a quick display.

23951

0

0

An example of how to retrieve the grid data and work with it for comparisons and manipulations.

29986

0

0

A demo of how to build Rich Displays in the Visual Designer that integrate with external CSS and JavaScript file

26566

0

0

A demo of how to build Rich Displays in the Visual Designer that integrate with external CSS and JavaScript file

25920

0

0

A demo of how to build Rich Displays in the Visual Designer that integrate with external CSS and JavaScript file

25318

0

0

A Hello World app with both dynamic output and input fields. It also illustrates the basics of screen transition animation.

25906

0

0

A Hello World app with both dynamic output and input fields. It also illustrates the basics of screen transition animation.

26063

0

0

A Hello World app with both dynamic output and input fields

25994

0

0