Bonjour,
dans mon projet de gestion de la caisse, je souhaite enregistré des données dans une table de ma Base A (MySQL) provenant d'une autre table d'une autre Base B sans introduire dans la table A ceux qui sont déjà enregistrés. Par le faire, je souhaite chargé les données d'une période donnée de la table B et ceux de la table A dans un même Jtable. J'ai crée un méthode me permettant de vérifier s'il y a de doublons dans le Jtable. Si oui, supprimer les deux lignes qui se répètent avance d'enregistrer le reste. Si non, enregistré directement les données présentent dans le Jtable.
Actuellement j'ai puis chargé les données des deux tables dans le même Jtable, j'arrive à supprimer les derniers (deuxièmes) doublons mais je n'arrive pas à supprimer les premiers doublons.
Voici mes codes :
1- Pour chargé les données dans le Jtable2- Pour la vérification et suppression des doublons
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 public void consulterRetrait(){ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); MetierImplTontinier metier=new MetierImplTontinier(); Date dateDebut=dateD.getDate(); java.sql.Date SqldateD=new java.sql.Date(dateDebut.getTime()); Date dateFin=dateF.getDate(); java.sql.Date SqldateF=new java.sql.Date(dateFin.getTime()); String numAgent=txtnumAgent.getText(); String type=cmbType.getSelectedItem().toString(); // Chargement de la liste de données provenant de la table A List<PassageTontinierCaisse> mouvement1=metier.consulterRetraitEnregistreCaisse(SqldateD, SqldateF, numAgent,type); // Chargement de la liste de données provenant de la Table B List<Mouvement> mouvement=metier.consulterRetrait(SqldateD, SqldateF, numAgent,type); model=new DefaultTableModel(); model.setColumnIdentifiers(new Object[]{"N°","Date", "Compte", "Nom et prénom client","Montant","Agent","Ref"}); Object[] rows=new Object[7]; int a=1; //Ajout dans le Jtable des données de la table A for(Mouvement mvt:mouvement){ rows[0]=a++; rows[1]=sdf.format(mvt.getDateMouvement()); rows[2]=mvt.getNumCompte(); rows[3]=mvt.getCompte().getClient().getNom()+' '+mvt.getCompte().getClient().getPrenom() ; rows[4]=mvt.getNombre()*mvt.getCompte().getMontantMise(); rows[5]=mvt.getNumAgent(); rows[6]=mvt.getNumero(); model.addRow(rows); } //Ajout dans le Jtable des données de la table B for(PassageTontinierCaisse mvt1:mouvement1){ rows[0]=a++; rows[1]=mvt1.getDate(); rows[2]=mvt1.getNumCompte(); rows[3]=mvt1.getNomPrenomClient(); rows[4]=mvt1.getMontant(); rows[5]=mvt1.getNumAgent(); rows[6]=mvt1.getReferenceTontinier(); model.addRow(rows); } table.setModel(model); table.getColumnModel().getColumn(0).setPreferredWidth(15); table.getColumnModel().getColumn(1).setPreferredWidth(65); table.getColumnModel().getColumn(3).setPreferredWidth(150); table.getColumnModel().getColumn(4).setPreferredWidth(65); table.getColumnModel().getColumn(5).setPreferredWidth(15); }Quelqu’un a-t-il une idée de comment faire cela?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public void suprimerLingnesDoublon(){ ArrayList<String> list = new ArrayList(); int rows = table.getRowCount(); for (int i=rows-1; i>=0; --i){ String data = table.getValueAt(i, 6).toString(); if (list.contains(data)) { model.removeRow(table.getRowCount()-1); } else{ list.add(data); } } }
Partager