/** carga la tabla de solapados a parti de los datos que recibe */
  public void cargarTablaSolapados(String sdata, String sdni) {
    // Rellena la tabla
    Date data;
    String dni;
    String turno = "";
    ArrayList<String> header = new ArrayList<String>(); // cabecera
    header.add(language.getProperty("mantenimiento.usermain.DNI"));
    header.add(language.getProperty("mantenimiento.usermain.name"));
    header.add(language.getProperty("mantenimiento.main.curse"));
    header.add(language.getProperty("estadisticas.table.personalAcademico.grupo"));

    String[][] gridData;
    List<String> row;
    try {

      if (sdata.equals("")) {
        data = null;
      } else {
        SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
        data = formato.parse(sdata);
      }

      if (sdni.equals("")) dni = null;
      else dni = txtDni.getText();

      matriculas = manager.consultarSolapados(data, dni);
      gridData = new String[matriculas.size()][4];

      int i = 0;
      float total;
      float stat;
      float cos = 0;

      for (Matricula matricula : matriculas) {
        if (matricula.getTurno() == 1)
          turno = language.getProperty("estatisticas.table.personalAcademico.turnoMaƱana");
        if (matricula.getTurno() == 2)
          turno = language.getProperty("estatisticas.table.personalAcademico.turnoTarde");
        gridData[i][0] = matricula.getUsuarioNif();
        gridData[i][1] = matricula.getUsuarioNombre();
        gridData[i][2] = matricula.getActividadNombre();
        gridData[i][3] = turno;

        i++;
      }
      // hace que no se pueda editar la tabla
      tablaSolapados.setModel(
          new DefaultTableModel(gridData, header.toArray()) {
            @Override
            public boolean isCellEditable(int row, int column) {
              return false;
            }
          });

    } catch (ParseException ex) {
      JOptionPane.showMessageDialog(
          null,
          language.getProperty("err.formatoData"),
          language.getProperty("app.title"),
          JOptionPane.ERROR_MESSAGE);
    } catch (SQLException ex) {
      JOptionPane.showMessageDialog(
          null,
          language.getProperty("err.sql")
              + "\n"
              + language.getProperty("err.detail")
              + ":\n\n"
              + ex.getMessage(),
          language.getProperty("app.title"),
          JOptionPane.ERROR_MESSAGE);

      // Registra el error en un archivo de LOG
      // Logger.getLogger(FrmResourcesRequest.class.getName()).log(Level.SEVERE, null, ex);
    } catch (RemoteException ex) {
      JOptionPane.showMessageDialog(
          null,
          language.getProperty("err.rmi")
              + "\n"
              + language.getProperty("err.detail")
              + ":\n\n"
              + ex.getMessage(),
          language.getProperty("app.title"),
          JOptionPane.ERROR_MESSAGE);

      // Registra el error en un archivo de LOG
      // Logger.getLogger(FrmResourcesRequest.class.getName()).log(Level.SEVERE, null, ex);
    } catch (Exception ex) {
      JOptionPane.showMessageDialog(
          null,
          language.getProperty("err.generic")
              + "\n"
              + language.getProperty("err.detail")
              + ":\n\n"
              + ex.getMessage(),
          language.getProperty("app.title"),
          JOptionPane.ERROR_MESSAGE);

      // Registra el error en un archivo de LOG
      // Logger.getLogger(FrmResourcesRequest.class.getName()).log(Level.SEVERE, null, ex);
    }
  }