codice:
pubblic void TableSQL() {
setDefaultCloseOperation(JInternalFrame.EXIT_ON_CLOSE);
///////////////////////////////////////////////
// n° di colonne
int columns = 6;
// etichette colonne
String[] labels = {"postazione", "data_ora", "udt", "articolo","lotto","quantita"};
// larghezza colonne
int[] widths = {60, 120, 70, 100, 80, 70};
try {
String driver = "net.sourceforge.jtds.jdbc.Driver";
Class.forName(driver).newInstance();
}
catch (Exception e) {
JOptionPane.showMessageDialog(null,"Fallito il caricamento dei driver SQL.","ERRORE CARICAMENTO DRIVER SQL",JOptionPane.ERROR_MESSAGE);
}
try {
Connection con=null;
String postazione=selectedItem;
String tempo_min=data_inizio;
String tempo_max=data_fine;
non_partire=0;
//DB BECHELLI Connessione col database in cui vengono specificati url, nome utente, password
con = DriverManager.getConnection("jdbc:jtds:sqlserver://localhost:1433/master", "sa", "sa");
Statement select = con.createStatement();
Statement select1=con.createStatement();
if(postazione.equalsIgnoreCase("Tutte")){
// Query SQL
String SQL_rows="SELECT count (postazione) FROM log_lavorazione_baie where data_ora>='" +tempo_min+"' and data_ora<='" +tempo_max+ "%'";
String SQL= "SELECT * FROM log_lavorazione_baie where data_ora>='" +tempo_min+"' and data_ora<='" +tempo_max+ "%'ORDER BY data_ora DESC";
//caricamento query SQL
ResultSet result2=select1.executeQuery(SQL_rows);
result2.next();
int ris_row=result2.getInt(1);
if(ris_row==0){
JOptionPane.showMessageDialog(null,"Non è stato trovato nessun dato.\nSelezionare un nuovo intervallo e riprovare.","NESSUN DATO",JOptionPane.WARNING_MESSAGE);
non_partire=1;
}
if(ris_row>65530){
JOptionPane.showMessageDialog(null,"I dati trovati sono più di 65530.\nExcel non riesce a visualizzarli interamente.\nSelezionare un intervallo minore e riprovare.","DATI MAGGIORI DI 65530",JOptionPane.WARNING_MESSAGE);
non_partire=1;
}
// n° di righe dinamico
rows = ris_row;
result1 = select.executeQuery(SQL);
}
else{
String SQL_rows_post="SELECT count (postazione) FROM log_lavorazione_baie where postazione='"+postazione+"' and data_ora>='" +tempo_min+"' and data_ora<='" +tempo_max+ "%'";
String SQL_post= "SELECT * FROM log_lavorazione_baie where postazione='"+postazione+"' and data_ora>='" +tempo_min+"' and data_ora<='" +tempo_max+ "%'ORDER BY data_ora DESC";
//caricamento query SQL
ResultSet result2=select1.executeQuery(SQL_rows_post);
result2.next();
int ris_row=result2.getInt(1);
if(ris_row==0){
JOptionPane.showMessageDialog(null,"Non è stato trovato nessun dato per la postazione selezionata.\nSelezionare un nuovo intervallo e riprovare.","NESSUN DATO",JOptionPane.WARNING_MESSAGE);
non_partire=1;
}
if(ris_row>65530){
JOptionPane.showMessageDialog(null,"I dati trovati per la postazione selezionata sono più di 65530.\nExcel non riesce a visualizzarli interamente.\nSelezionare un intervallo minore e riprovare.","DATI MAGGIORI DI 65530",JOptionPane.WARNING_MESSAGE);
non_partire=1;
}
// n° di righe dinamico
rows = ris_row;
result1 = select.executeQuery(SQL_post);
} }
catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null,"Connessione col database fallita","ERRORE CONNESSIONE DATABASE",JOptionPane.ERROR_MESSAGE);
}
if(non_partire==0){
// vettore dati tabella
Vector data = new Vector(0, 1);
// vettore colonne tabella
Vector columnNames = new Vector(0, 1);
// popolo la tabella
for(int i = 0; i < rows; i++) {
try {
// vettore singola riga tabella
Vector row = new Vector();
result1.next();
for (int j = 1; j <= columns; j++) {
try {
row.addElement(result1.getString(j));
pw.print(result1.getString(j)+";");
}
catch (SQLException ex) {
Logger.getLogger(ControlloLog.class.getName()).log(Level.SEVERE, null, ex);
}
}
data.addElement(row);
pw.print("\n");
}
catch (SQLException ex) {
Logger.getLogger(ControlloLog.class.getName()).log(Level.SEVERE, null, ex);
}
}
// intestazioni colonne
for(int i = 0; i < columns; i++) {
columnNames.addElement(labels[i]);
}
// modello dati della tabella
DefaultTableModel tableModel = new DefaultTableModel(data, columnNames);
// modello attributi delle colonne
DefaultTableColumnModel columnModel = new DefaultTableColumnModel();
for(int i = 0; i < columns; i++) {
// modello attributi colonna singola
TableColumn column = new TableColumn(i, widths[i]);
column.setHeaderValue(labels[i]);
columnModel.addColumn(column);
}
// la tabella
JTable table = new JTable(tableModel, columnModel);
table.setPreferredScrollableViewportSize(new Dimension(700, 600));
JScrollPane scroll = new JScrollPane(table);
///////////////////////////////////////////////////
getContentPane().add(scroll);
pack();
//setVisible(true);
DesktopPane desktop;
desktop.add(scroll);
}}