Advertisement
Delta

Untitled

Feb 13th, 2015
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.36 KB | None | 0 0
  1. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  2.        
  3.         /* PESQUISANDO BANCO DE DADOS */
  4.        
  5.         List<String> listaLojas = new ArrayList();
  6.         List<String> listaStatus = new ArrayList();
  7.         List<String> listaModelos = new ArrayList();
  8.         List<String> listaCodigos = new ArrayList();
  9.         int numeroDeLinhas = 0;
  10.        
  11.         String sql = "SELECT * FROM pos WHERE loja LIKE ? and status LIKE ? and modelo LIKE ?;";
  12.        
  13.         /*
  14.             Pesquisar coluna LIKE "%" aceita qualquer valor
  15.             Então, se não for selecionada uma opção em uma das combobox, pesquisa com "%"
  16.         */
  17.         String loja = new Integer(jComboBox1.getSelectedIndex()).equals(0) ? "%" : jComboBox1.getSelectedItem().toString();
  18.         String status = new Integer(jComboBox2.getSelectedIndex()).equals(0) ? "%" : jComboBox2.getSelectedItem().toString();
  19.         String modelo = new Integer(jComboBox3.getSelectedIndex()).equals(0) ? "%" : jComboBox3.getSelectedItem().toString();
  20.         /*
  21.             Isso ai em cima é operador ternário, é tipo um if/else inline
  22.             Tá checando, em cada combobox, se a opção selecionada é a primeira (0), ou seja, nenhum valor definido
  23.             Ai, se não selecionaram nada, puxa registros com qualquer valor nessa coluna, usando o LIKE "%"
  24.         */
  25.            
  26.         try {
  27.             pst = conecta.prepareStatement(sql);
  28.             pst.setString(1, loja);
  29.             pst.setString(2, status);
  30.             pst.setString(3, modelo);
  31.             rs = pst.executeQuery();
  32.            
  33.             // Puxando a lista dos valores que retornaram da consulta ao bd:
  34.             while(rs.next())
  35.             {
  36.                 listaLojas.add(rs.getString("loja"));
  37.                 listaStatus.add(rs.getString("status"));
  38.                 listaModelos.add(rs.getString("modelo"));
  39.                 listaCodigos.add(rs.getString("codigo"));
  40.                 numeroDeLinhas++;
  41.             }
  42.  
  43.         } catch (SQLException error) {
  44.  
  45.             JOptionPane.showMessageDialog(null, "1 " + error);
  46.  
  47.         }
  48.        
  49.         /* PEGANDO DATA E HORA PARA INCLUIR NO RELATORIO */
  50.         SimpleDateFormat dataForma = new SimpleDateFormat("dd/MM/yyy - HH:mm");
  51.         String data = dataForma.format(new Date()) + "h";
  52.        
  53.         /* CRIANDO DOCUMENTO XHTML VIA DOM */
  54.        
  55.         try
  56.         {
  57.             Document xhtml = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
  58.             Element root = xhtml.createElement("html");
  59.             root.appendChild(xhtml.createElement("body"));
  60.             Element table = xhtml.createElement("table");
  61.             table.setAttribute("style", "border-collapse: collapse; margin-top: 1cm;");
  62.            
  63.             Element titulo = xhtml.createElement("tr");
  64.             Element tituloLoja = xhtml.createElement("td");
  65.             Element tituloStatus = xhtml.createElement("td");
  66.             Element tituloModelo = xhtml.createElement("td");
  67.             Element tituloCodigo = xhtml.createElement("td");
  68.            
  69.             tituloLoja.appendChild(xhtml.createTextNode("LOJA"));
  70.             tituloStatus.appendChild(xhtml.createTextNode("STATUS"));
  71.             tituloModelo.appendChild(xhtml.createTextNode("MODELO"));
  72.             tituloCodigo.appendChild(xhtml.createTextNode("CODIGO"));
  73.            
  74.             titulo.appendChild(tituloLoja);
  75.             titulo.appendChild(tituloStatus);
  76.             titulo.appendChild(tituloModelo);
  77.             titulo.appendChild(tituloCodigo);
  78.            
  79.             titulo.setAttribute("style", "font-size: .8cm; padding-bottom: .5mm; text-align: center");
  80.             table.appendChild(titulo);
  81.            
  82.             for(int i = 0; i < numeroDeLinhas; i++)
  83.             {
  84.                 Element tr = xhtml.createElement("tr");
  85.                 for(int j = 0; j < 4; j++)
  86.                 {
  87.                     Element td = xhtml.createElement("td");
  88.                     td.setAttribute("style", "padding-top: .2cm; padding-bottom: .2cm; width: 7cm; text-align: center; border-bottom: .2mm #000 solid;");
  89.                     String texto;
  90.                    
  91.                     if(j == 0)
  92.                         texto = listaLojas.get(i);
  93.                     else if(j == 1)
  94.                         texto = listaStatus.get(i);
  95.                     else if(j == 2)
  96.                         texto = listaModelos.get(i);
  97.                     else
  98.                         texto = listaCodigos.get(i);
  99.                    
  100.                     td.appendChild(xhtml.createTextNode(texto));
  101.                     tr.appendChild(td);
  102.                 }
  103.                 table.appendChild(tr);
  104.             }
  105.        
  106.             root.getFirstChild().appendChild(xhtml.createTextNode(data));
  107.             root.getFirstChild().appendChild(table);
  108.             xhtml.appendChild(root);
  109.            
  110.             /* TRANSFORMANDO DOCUMENTO EM STRING */
  111.             DOMImplementationLS domLS = (DOMImplementationLS) xhtml.getImplementation();
  112.             LSSerializer serializer = domLS.createLSSerializer();
  113.             String xhtmlString = serializer.writeToString(xhtml);
  114.             InputStream stream = new ByteArrayInputStream(xhtmlString.getBytes(StandardCharsets.UTF_8));
  115.            
  116.             /* CONVERTENDO PARA PDF VIA ITEXT */
  117.            
  118.             File pdf = new File("relatorio.pdf");
  119.             pdf.createNewFile();
  120.            
  121.             com.itextpdf.text.Document doc = new com.itextpdf.text.Document(PageSize.A4);
  122.             FileOutputStream sPdf = new FileOutputStream(pdf);
  123.             PdfWriter writer = PdfWriter.getInstance(doc, sPdf);
  124.             doc.open();
  125.             XMLWorkerHelper.getInstance().parseXHtml(writer, doc, stream);
  126.             doc.close();
  127.             sPdf.close();
  128.            
  129.             /* ABRINDO O ARQUIVO */
  130.             Desktop.getDesktop().open(pdf);
  131.         }
  132.         catch(DocumentException|FileNotFoundException e)
  133.         {
  134.             JOptionPane.showMessageDialog(null, "2 " + e.getClass().toString());
  135.         }
  136.         catch(IOException e)
  137.         {
  138.             JOptionPane.showMessageDialog(null, "3 " + e.toString());
  139.         }
  140.         catch(Exception e){
  141.             JOptionPane.showMessageDialog(null, "4 " + e.toString());
  142.         }
  143.            
  144.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement