I have a groovy script that pulls a number of fields from a MYSQL database and inserts the data into an HTML table, along with this I find the lastModified()
date of the files that are pulled into the database.
I found a fairly similar topic: "Sorting files by lastModified()", however my problem is that I never actually get the data into a map or list, instead I build the xml and call the query using sql.eachRow(query)
to insert the proper fields into the table and then find the lastModified()
date within the xml itself.
I can't do the sort in my query because I have to get the lastModified()
date from the groovy script. So I have two questions, is it possible to do a sort by last modified date using the set up in my code that I posted? And if so where would I need to actually perform the sort so that it is sorted correctly on the HTML table? I should say I am very new to Groovy and Java and am terrible when it comes to trying to figure out these kinds of things, so any hints as to where you found this information would be great.
Similar topics but ones that are not exactly what I am looking for:
- How to sort rows of HTML table that are called from MySQL <-- really looking at this but it is in php
- http://groovy.329449.n5.nabble.com/Sorting-files-by-lastModified-td362691.html <--this but trying to sort a table
- http://www.kryogenix.org/code/browser/sorttable/#totalsrows <--this would be nice but is it possible in groovy?
My code, I had to change some things:
sql = Sql.newInstance("location of database", "username", "password", "driver")
writer = new StringWriter()
def xml = new MarkupBuilder(writer)
rptDate = new java.util.Date()
query =
"""
query stuff
"""
xml.html(){
xml.head(){
xml.title("Title")
xml.body(){
xml.h1("Title")
xml.table(border:1, cellpadding:5){
xml.tr(){
xml.th("ID")
xml.th("Date Added")
xml.th("Hospital Name")
xml.th("Total Daily Clients")
xml.th("Total Daily Pets")
xml.th("Last Upload Date")//lastModified() date
}//end headings
//insert data from query into each row of the table
sql.eachRow(query)
{row ->
xml.tr(align:'center'){
xml.td("${row.ID}")
xml.td("${row.DateAdded}")
xml.td("${row.HospitalName}")
xml.td("${row.TotalDailyClients}")
xml.td("${row.TotalDailyPets}")
//find lastModified() dates for incoming files and format them
mod = new File("/home/me/folderforfiles/${row.ID}.zip").lastModified()
fd = new Date(mod).format("EEE MMM dd hh:mm:ss a yyyy")
//insert into table
xml.td(fd)
}//end table data
}//end loop
}//end table
}//end body
}//end title
}//end html
println writer.toString()