How to load Data to Grid
Confluence User - 04 Mar, 2018
Hi Experts,
I have a form and have a Grid on it, i need load fields from same table that is used by the form , i did try using form hash variable but this option don´t get info.
Note: If i use a text box i can get the value of field without problems¡
This is the Table structure of the table:
In other hand i know that i can use bean shell to load data but need help to understand better the code, i´m using the example bellow:
Facts:
The table have an id field named id as we can show in the example
import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import javax.sql.DataSource;import org.joget.apps.app.service.AppUtil;import org.joget.apps.form.model.Element;import org.joget.apps.form.model.FormData;import org.joget.apps.form.model.FormRow;import org.joget.apps.form.model.FormRowSet;import org.joget.commons.util.LogUtil; public FormRowSet load(Element element, String username, FormData formData) { FormRowSet rows = new FormRowSet(); if (username != null && !username.isEmpty()) { Connection con = null; try { // retrieve connection from the default datasource DataSource ds = (DataSource)AppUtil.getApplicationContext().getBean("setupDataSource"); con = ds.getConnection(); // execute SQL query if(!con.isClosed()) { PreparedStatement stmt = con.prepareStatement("SELECT username, firstName, lastName, email from dir_user where username=?"); stmt.setObject(1, username); ResultSet rs = stmt.executeQuery(); while (rs.next()) { FormRow row = new FormRow(); System.out.println(rs.getObject("username") ); row.setProperty("username", (rs.getObject("username") != null)?rs.getObject("username").toString():""); row.setProperty("firstName", (rs.getObject("firstName") != null)?rs.getObject("firstName").toString():""); row.setProperty("lastName", (rs.getObject("lastName") != null)?rs.getObject("lastName").toString():""); row.setProperty("email", (rs.getObject("email") != null)?rs.getObject("email").toString():""); rows.add(row); break; } } } catch(Exception e) { LogUtil.error("Sample app - Form 1", e, "Error loading user data in load binder"); } finally { //always close the connection after used try { if(con != null) { con.close(); } } catch(SQLException e) {/* ignored */} } } return rows;} //call load method with injected variablereturn load(element, primaryKey, formData);
thanks
fabian
datalists;forms;beanshell;grid

