How to populate Grid using the Bean Shell Load Binder?
I have 2 forms:
Form1 - aas_routes - Parent Form - Saving Route information
Form2 - routes_notes - Child Form - Saving every action performed on the above form
In my scenario, I am using a Grid in the parent form to populate the "Route_notes" data to show the actions/audit notes performed on the parent form by different Users in each activity of the Workflow.
I am using the following Bean Shell Code:
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.DecimalFormat;
import javax.sql.DataSource;
import org.joget.apps.app.service.AppUtil;
import org.joget.apps.form.model.FormRow;
import org.joget.apps.form.model.FormRowSet;
import org.joget.apps.form.service.FormUtil;
import org.joget.apps.form.model.*;
import org.joget.apps.form.service.*;
import java.sql.*;
import org.apache.commons.collections.SequencedHashMap;
import java.util.*;
public FormRowSet getgridData() {
FormRowSet fgrid = new FormRowSet();
fgrid.setMultiRow(true);
try {
DataSource ds = (DataSource)AppUtil.getApplicationContext().getBean("setupDataSource");
con = ds.getConnection();
if(!con.isClosed()){
String routeId = "#form.aas_routes.id#";
String sql = "Select c_name,datecreated,c_Role,c_status,c_notes from APP_FD_ROUTE_NOTE where c_request_id1='"+routeId+"' order by datecreated ASC";
PreparedStatement stmt = con.prepareStatement(sql);
ResultSet grs = stmt.executeQuery();
while (grs.next()) {
FormRow gr1 = new FormRow();
gr1.put("gridColumn1", grs.getString(1));
gr1.put("gridColumn2", grs.getString(2));
gr1.put("gridColumn3", grs.getString(3));
gr1.put("gridColumn4", grs.getString(4));
gr1.put("gridColumn5", grs.getString(5));
fgrid.add(gr1);
}
}
} catch(Exception ex) {
System.err.println("Exception: " + ex.getMessage());
} finally {
try {
if(con != null) con.close();
} catch(SQLException e) {}
}
return fgrid;
}
return getgridData();
I have selected following the Grid to be shown as mentioned below:
I am not getting any error in the Logs. However, I do not see any value being populated in the Grid from the database table.
Could you please let me know where I am getting wrong in my configuration?