コード例 #1
0
  public PanelRelatorioTotalGasto() {

    JScrollPane scrollPane = new JScrollPane();

    JButton btnPesquisar = new JButton("Pesquisar");
    btnPesquisar.setIcon(new ImageIcon("imagens\\8391_16x16.png"));
    btnPesquisar.setFont(new Font("Tahoma", Font.PLAIN, 15));

    cmbDataInicio.addActionListener(
        new ActionListener() { //// nao sei pq ta chamando dois eventos
          public void actionPerformed(ActionEvent arg0) {
            if (cmbDataInicio.getSelectedItem() != null) {
              flagCMBDataInicio--; // flag decrementa quando e recebido uma acao no combo
              if (flagCMBDataInicio == 0) {
                flagCMBDataInicio = 2;
                if (cmbDataFinal.getSelectedItem() != null) {
                  Date dataInicio = util.getCMBData(cmbDataInicio);
                  Date dataFinal = util.getCMBData(cmbDataFinal);
                  if (dataInicio.getTime()
                      <= dataFinal.getTime()) { // se data inicio for menor que final atualiza combo
                    AtualizaComboData();
                  }
                }
              }
            }
          }
        });
    cmbDataFinal.addActionListener(
        new ActionListener() { // nao sei pq ta chamando dois eventos
          public void actionPerformed(ActionEvent arg0) {
            if (cmbDataFinal.getSelectedItem() != null) {
              flagCMBDataFinal--; // decrementa quando recebe uma acao no combo
              if (flagCMBDataFinal == 0) {
                flagCMBDataFinal = 2; // volta ao valor inicial
                if (cmbDataInicio.getSelectedItem() != null) {
                  Date dataInicio = util.getCMBData(cmbDataInicio);
                  Date dataFinal = util.getCMBData(cmbDataFinal);
                  if (dataInicio.getTime()
                      <= dataFinal
                          .getTime()) { // se data inicio for menor que data final atualiza combo
                    AtualizaComboData();
                  }
                }
              }
            }
          }
        });

    cmbMarca.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent arg0) {
            if (flagCMBMarca && cmbMarca.getSelectedIndex() == 0) {
              System.out.println("igual 0 ");
              cmbModelo.setSelectedIndex(0);
              cmbPlaca.setSelectedIndex(0);
            }
            if (cmbMarca.getSelectedIndex() > 0) {
              System.out.println("igual 1");
              flagCMBMarca = true;
            }
          }
        });
    cmbPlaca.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent arg0) {
            if (cmbPlaca.getSelectedIndex() > 0) {
              AtualizaComboPlaca(cmbPlaca.getSelectedIndex());
              flagCMBPlaca = true;
            }
            if (cmbPlaca.getSelectedIndex() == 0 && flagCMBPlaca) {
              AtualizaComboPlaca(cmbPlaca.getSelectedIndex());
            }
          }
        });

    btnPesquisar.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent arg0) {
            System.out.println(cmbDataInicio.getSelectedIndex());
            try {
              if (cmbDataInicio.getSelectedIndex() < 0 || cmbDataFinal.getSelectedIndex() < 0) {
                JOptionPane.showMessageDialog(null, "Favor preecher o campo data");

              } else {
                gerarConsulta();
              }
            } catch (ClassNotFoundException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
            } catch (SQLException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
            }
          }
        });

    if (!usuarioLogado.ehAdministrador()) {
      btnPesquisar.setVisible(false);
    } else {
      btnPesquisar.setVisible(true);
    }

    table = new JTable();
    table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    table.addMouseListener(
        new MouseAdapter() {
          @Override
          public void mouseClicked(MouseEvent e) {}
        });
    table.setModel(
        new DefaultTableModel(
            new Object[][] {},
            new String[] {
              "Placa", "Od\u00F4metro", "Fornecedor", "Tipo Servico", "Data", "Valor"
            }));
    table.getColumnModel().getColumn(0).setPreferredWidth(51);
    table.getColumnModel().getColumn(2).setPreferredWidth(170);
    table.getColumnModel().getColumn(3).setPreferredWidth(141);
    table.getColumnModel().getColumn(4).setPreferredWidth(54);
    table.getColumnModel().getColumn(5).setPreferredWidth(83);
    table.setAutoCreateRowSorter(true);
    scrollPane.setViewportView(table);

    JButton btnImprimirRelatrio = new JButton("Imprimir  Relat\u00F3rio");
    btnImprimirRelatrio.addMouseListener(
        new MouseAdapter() {
          @Override
          public void mouseClicked(MouseEvent arg0) {

            listaServicos.clear();

            for (int i = 0; i < table.getRowCount(); i++) {
              totalGastoServicos veiculoServico = new totalGastoServicos();
              veiculoServico.setPlaca(table.getValueAt(i, 0).toString());
              veiculoServico.setOdometro(table.getValueAt(i, 1).toString());
              veiculoServico.setFornecedor(table.getValueAt(i, 2).toString());
              veiculoServico.setTipoServico(table.getValueAt(i, 3).toString());
              veiculoServico.setData(table.getValueAt(i, 4).toString());
              veiculoServico.setValor(table.getValueAt(i, 5).toString());
              veiculoServico.setTotal(txtTotal.getText().toString());
              listaServicos.add(veiculoServico);
            }

            JasperReport report;

            try {
              report = JasperCompileManager.compileReport("relatorios/totalGastoServicos.jrxml");
              JasperPrint print =
                  JasperFillManager.fillReport(
                      report, null, new JRBeanCollectionDataSource(listaServicos));
              JasperViewer jrviewer = new JasperViewer(print, false);
              jrviewer.show();
              System.out.println("Relatório gerado.");
            } catch (JRException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
            }
          }
        });
    btnImprimirRelatrio.setFont(new Font("Tahoma", Font.PLAIN, 15));

    JLabel lblTotal = new JLabel("TOTAL:");
    lblTotal.setFont(new Font("Tahoma", Font.PLAIN, 15));

    txtTotal = new JTextField();
    txtTotal.setHorizontalAlignment(SwingConstants.RIGHT);
    txtTotal.setForeground(Color.RED);
    txtTotal.setFont(new Font("Tahoma", Font.BOLD, 14));
    txtTotal.setEditable(false);
    txtTotal.setColumns(10);
    GroupLayout groupLayout = new GroupLayout(this);
    groupLayout.setHorizontalGroup(
        groupLayout
            .createParallelGroup(Alignment.TRAILING)
            .addGroup(
                groupLayout
                    .createSequentialGroup()
                    .addGroup(
                        groupLayout
                            .createParallelGroup(Alignment.LEADING)
                            .addGroup(
                                groupLayout
                                    .createSequentialGroup()
                                    .addGroup(
                                        groupLayout
                                            .createParallelGroup(Alignment.LEADING)
                                            .addGroup(
                                                groupLayout
                                                    .createSequentialGroup()
                                                    .addGap(10)
                                                    .addGroup(
                                                        groupLayout
                                                            .createParallelGroup(Alignment.LEADING)
                                                            .addComponent(
                                                                cmbDataInicio,
                                                                GroupLayout.DEFAULT_SIZE,
                                                                72,
                                                                Short.MAX_VALUE)
                                                            .addComponent(
                                                                lblInicio,
                                                                Alignment.TRAILING,
                                                                GroupLayout.DEFAULT_SIZE,
                                                                72,
                                                                Short.MAX_VALUE))
                                                    .addPreferredGap(ComponentPlacement.RELATED)
                                                    .addGroup(
                                                        groupLayout
                                                            .createParallelGroup(Alignment.LEADING)
                                                            .addComponent(
                                                                cmbDataFinal,
                                                                GroupLayout.DEFAULT_SIZE,
                                                                74,
                                                                Short.MAX_VALUE)
                                                            .addComponent(
                                                                lblFim,
                                                                GroupLayout.DEFAULT_SIZE,
                                                                74,
                                                                Short.MAX_VALUE))
                                                    .addPreferredGap(ComponentPlacement.RELATED)
                                                    .addGroup(
                                                        groupLayout
                                                            .createParallelGroup(Alignment.TRAILING)
                                                            .addComponent(
                                                                cmbPlaca, 0, 79, Short.MAX_VALUE)
                                                            .addComponent(
                                                                lblPlaca,
                                                                Alignment.LEADING,
                                                                GroupLayout.DEFAULT_SIZE,
                                                                79,
                                                                Short.MAX_VALUE)))
                                            .addGroup(
                                                groupLayout
                                                    .createSequentialGroup()
                                                    .addContainerGap()
                                                    .addGroup(
                                                        groupLayout
                                                            .createParallelGroup(Alignment.LEADING)
                                                            .addComponent(
                                                                cmbTipoServico,
                                                                0,
                                                                237,
                                                                Short.MAX_VALUE)
                                                            .addComponent(
                                                                lblTipoDeServico,
                                                                GroupLayout.DEFAULT_SIZE,
                                                                237,
                                                                Short.MAX_VALUE))))
                                    .addPreferredGap(ComponentPlacement.RELATED)
                                    .addGroup(
                                        groupLayout
                                            .createParallelGroup(Alignment.TRAILING)
                                            .addGroup(
                                                groupLayout
                                                    .createSequentialGroup()
                                                    .addGroup(
                                                        groupLayout
                                                            .createParallelGroup(Alignment.TRAILING)
                                                            .addComponent(
                                                                lblModelo,
                                                                GroupLayout.DEFAULT_SIZE,
                                                                67,
                                                                Short.MAX_VALUE)
                                                            .addComponent(
                                                                cmbMarca, 0, 67, Short.MAX_VALUE))
                                                    .addPreferredGap(ComponentPlacement.RELATED)
                                                    .addGroup(
                                                        groupLayout
                                                            .createParallelGroup(Alignment.TRAILING)
                                                            .addComponent(
                                                                lblMarca,
                                                                GroupLayout.DEFAULT_SIZE,
                                                                GroupLayout.DEFAULT_SIZE,
                                                                Short.MAX_VALUE)
                                                            .addComponent(
                                                                cmbModelo, 0, 90, Short.MAX_VALUE))
                                                    .addPreferredGap(ComponentPlacement.RELATED)
                                                    .addGroup(
                                                        groupLayout
                                                            .createParallelGroup(Alignment.LEADING)
                                                            .addComponent(
                                                                lblMotorista,
                                                                GroupLayout.DEFAULT_SIZE,
                                                                GroupLayout.DEFAULT_SIZE,
                                                                Short.MAX_VALUE)
                                                            .addComponent(
                                                                cmbMotorista,
                                                                0,
                                                                104,
                                                                Short.MAX_VALUE)))
                                            .addComponent(cmbFornecedor, 0, 273, Short.MAX_VALUE)
                                            .addComponent(
                                                lblFornecedor,
                                                GroupLayout.DEFAULT_SIZE,
                                                273,
                                                Short.MAX_VALUE)))
                            .addGroup(
                                groupLayout
                                    .createSequentialGroup()
                                    .addContainerGap()
                                    .addGroup(
                                        groupLayout
                                            .createParallelGroup(Alignment.TRAILING)
                                            .addComponent(
                                                scrollPane,
                                                Alignment.LEADING,
                                                GroupLayout.DEFAULT_SIZE,
                                                516,
                                                Short.MAX_VALUE)
                                            .addGroup(
                                                groupLayout
                                                    .createSequentialGroup()
                                                    .addComponent(
                                                        btnPesquisar,
                                                        GroupLayout.PREFERRED_SIZE,
                                                        139,
                                                        GroupLayout.PREFERRED_SIZE)
                                                    .addPreferredGap(ComponentPlacement.RELATED)
                                                    .addComponent(btnImprimirRelatrio)
                                                    .addGap(18)
                                                    .addComponent(
                                                        lblTotal,
                                                        GroupLayout.PREFERRED_SIZE,
                                                        61,
                                                        GroupLayout.PREFERRED_SIZE)
                                                    .addPreferredGap(
                                                        ComponentPlacement.RELATED,
                                                        9,
                                                        Short.MAX_VALUE)
                                                    .addComponent(
                                                        txtTotal,
                                                        GroupLayout.PREFERRED_SIZE,
                                                        132,
                                                        GroupLayout.PREFERRED_SIZE)))))
                    .addGap(1)));
    groupLayout.setVerticalGroup(
        groupLayout
            .createParallelGroup(Alignment.LEADING)
            .addGroup(
                groupLayout
                    .createSequentialGroup()
                    .addGap(11)
                    .addGroup(
                        groupLayout
                            .createParallelGroup(Alignment.BASELINE)
                            .addComponent(
                                lblInicio,
                                GroupLayout.DEFAULT_SIZE,
                                GroupLayout.DEFAULT_SIZE,
                                Short.MAX_VALUE)
                            .addComponent(
                                lblFim,
                                GroupLayout.DEFAULT_SIZE,
                                GroupLayout.DEFAULT_SIZE,
                                Short.MAX_VALUE)
                            .addComponent(lblPlaca)
                            .addComponent(lblMarca)
                            .addComponent(lblModelo)
                            .addComponent(lblMotorista))
                    .addGap(6)
                    .addGroup(
                        groupLayout
                            .createParallelGroup(Alignment.BASELINE)
                            .addComponent(
                                cmbDataInicio,
                                GroupLayout.DEFAULT_SIZE,
                                GroupLayout.DEFAULT_SIZE,
                                Short.MAX_VALUE)
                            .addComponent(
                                cmbDataFinal,
                                GroupLayout.DEFAULT_SIZE,
                                GroupLayout.DEFAULT_SIZE,
                                Short.MAX_VALUE)
                            .addComponent(
                                cmbModelo,
                                GroupLayout.PREFERRED_SIZE,
                                GroupLayout.DEFAULT_SIZE,
                                GroupLayout.PREFERRED_SIZE)
                            .addComponent(
                                cmbMotorista,
                                GroupLayout.PREFERRED_SIZE,
                                GroupLayout.DEFAULT_SIZE,
                                GroupLayout.PREFERRED_SIZE)
                            .addComponent(
                                cmbMarca,
                                GroupLayout.PREFERRED_SIZE,
                                GroupLayout.DEFAULT_SIZE,
                                GroupLayout.PREFERRED_SIZE)
                            .addComponent(
                                cmbPlaca,
                                GroupLayout.PREFERRED_SIZE,
                                GroupLayout.DEFAULT_SIZE,
                                GroupLayout.PREFERRED_SIZE))
                    .addGap(6)
                    .addGroup(
                        groupLayout
                            .createParallelGroup(Alignment.BASELINE)
                            .addComponent(lblTipoDeServico)
                            .addComponent(lblFornecedor))
                    .addGap(1)
                    .addGroup(
                        groupLayout
                            .createParallelGroup(Alignment.BASELINE)
                            .addComponent(
                                cmbTipoServico,
                                GroupLayout.PREFERRED_SIZE,
                                GroupLayout.DEFAULT_SIZE,
                                GroupLayout.PREFERRED_SIZE)
                            .addComponent(
                                cmbFornecedor,
                                GroupLayout.PREFERRED_SIZE,
                                GroupLayout.DEFAULT_SIZE,
                                GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(ComponentPlacement.UNRELATED)
                    .addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 164, Short.MAX_VALUE)
                    .addPreferredGap(ComponentPlacement.RELATED)
                    .addGroup(
                        groupLayout
                            .createParallelGroup(Alignment.BASELINE)
                            .addComponent(btnPesquisar)
                            .addComponent(btnImprimirRelatrio)
                            .addComponent(
                                txtTotal,
                                GroupLayout.PREFERRED_SIZE,
                                GroupLayout.DEFAULT_SIZE,
                                GroupLayout.PREFERRED_SIZE)
                            .addComponent(lblTotal))
                    .addContainerGap()));
    setLayout(groupLayout);
  }