IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

NetBeans ne m'affiche pas le contenu de ma table : problème ODBC


Sujet :

JDBC Java

  1. #141
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    JTextField et JTextArea ont ceci en commun : ils héritent de la classe abstraite JTextComponent qui a la méthode getText()
    donc quand on fait un getText() sur un JTextField ou un JTextArea on utilise en réalité la méthode getText() de leur classe-mère JTextComponent.

    Ce petit cours pour t'expliquer ce qui suit :

    Dans un ArrayList, on peut y mettre aussi bien
    - une classe concrète comme JTextField ou JTextArea
    - une classe abstraite comme JTextComponent
    - une interface (pour être exhaustif car nous ne l'utilisons pas ici)

    Du coup, la ruse de Sioux consiste à déclarer ton ArrayList :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrayList<JTextComponent> TextField = new ArrayList<JTextComponent>();
    Ce tableau n'acceptera de contenir que des classes concrètes issues de JTextComponent
    Et le gros avantage est de pouvoir appeler les méthodes de la classe abstraite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextField.get(i).getText();
    Pour le tableau de ComboBox, fais comme tu as dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrayList<JComboBox> SelectedItem = new ArrayList<JComboBox>();
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  2. #142
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 340
    Points : 31
    Points
    31
    Par défaut
    Explication très complète, j'en apprends énormément. (Heureusement que j'ai des quelques bases )
    Je ne te remercierais jamais assez pour le temps que tu m'accordes ...

    Tout fonctionne correctement à présent (enfin, je n'ai plus d'erreur de compilation), je poursuis mes testes

    EDIT : Petite question, quand je lance l'appli en debug, il s'arrête à un endroit "current program counter" (la fleche verte dans la marge).
    C'est très pénible car je ne peut pas utiliser l'appli sans devoir passer tout ce qu'il doit passer (très long...).

    On pourrait pas désactiver cette fonctionnalité afin de ne bénéficier que du point d'arrêt ?

  3. #143
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    F8 pour le pas à pas ligne à ligne
    F5 continue le programme sans ligne à ligne jusqu'au prochain point d'arrêt
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  4. #144
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 340
    Points : 31
    Points
    31
    Par défaut
    Pour info du rendu visuel :
    Nom : Sans titre.jpg
Affichages : 348
Taille : 315,7 Ko

    J'ai l'impression que je ne peux pas écrire dans la BDD.
    Une fois une requête passée et exécutée, je consulte le server SQL (Via WorkBench) et je ne constate aucune modification...

    Il devrait me catch une erreur non ?

  5. #145
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Il devrait me catch une erreur non ?
    C'est le cas :
    "you have an error in your sql syntax;"

    Je suppose que la très douteuse classe Connexion doit s'amuser à étouffer les Try/Catch de sorte que la stacktrace ne remonte pas.
    Dans tous les Try/Catch, veille bien à ce qu'il y ait un printStackTrace() pour qu'on voit ce qu'il se passe.


    Sinon, comme je te l'ai dit plus haut, il y a certainement une différence entre les requêtes Access et MySql
    Regarde la requête de création : celle qui commence par INSERT INTO ...
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  6. #146
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 340
    Points : 31
    Points
    31
    Par défaut
    ok pour le printStackTrace().
    Typiquement, à l'ouverture de l'application je passe pas ici :
    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
    public int recupererIdAnnexeCree()
        {
            try
            {
                int result = 0;
                matricule = System.getProperty("user.name");
                Connexion.query = "SELECT IdAnnexe FROM Annexe;";
                Connexion.res = Connexion.stmt.executeQuery(Connexion.query);
                while(Connexion.res.next())
                {
                    result = Connexion.res.getInt(1);
                }
                Connexion.query = "SELECT IdZone FROM Zone";
                Connexion.res = Connexion.stmt.executeQuery(Connexion.query);
                while(Connexion.res.next())
                {
                    idZone = Connexion.res.getInt(1);
                }
                idAnnexe = result+1;
                Connexion.query = "INSERT INTO Annexe (IdAnnexe, Matricule, IdZone, Upload) VALUES("+idAnnexe+", '"+matricule+"', "+idZone+", False);";
                Connexion.stmt.executeUpdate(Connexion.query);
                return idAnnexe;==> A ce moment précis la requête a bien été exécuté ou je me trompe ? (executeUpdate() ) 
            }
            catch (Exception ex)
            {
                ex.printStackTrace();
                System.out.println(ex.getMessage());
                return 0;
            }
        }
    Il passe même pas dans mon catch :/

    Mon INSERT INTO me semble tout à fait correct.

  7. #147
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    En-dessous de la ligne 20 ajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(Connexion.query);
    Cela va te donner le texte de la requête que tu vas copier/coller dans WorkBench pour l'exécuter et vérifier que la requête fonctionne.
    Si elle ne fonctionne pas -> il faut la corriger
    Si elle fonctionne -> c'est un problème Connexion.stmt.executeUpdate
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  8. #148
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 340
    Points : 31
    Points
    31
    Par défaut
    Bon alors là, c'est assez étonnant encore une fois.
    Dans WorkBench, j'affiche toute mes occurrences de la table Annexe ORDER(ed) BY IdAnnexe DESC
    La plus haute est à 1100 et des patates, tandis que dans ma requête, il me demande d'INSERT du 1428...
    Soit...

    Ensuite quand j'essaye l'INSERT, Error, duplicate... Elle existe déjà dedans ! (Donc ma requête est bien passée !!!)
    Voici ce que la WB m'affiche :
    Nom : Sans titre.jpg
Affichages : 346
Taille : 60,3 Ko

    Les champs Date me sembles erronés, à mon avis il devrait y avoir une date par défaut du type 000/00/00

  9. #149
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Citation Envoyé par Spiicky Voir le message
    EDIT : Supprime ce message plz, il y a un bug avec les images..
    En principe, tu peux le faire toi-même
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  10. #150
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 340
    Points : 31
    Points
    31
    Par défaut
    Je viens de refaire un SELECT * FROM annexe et cette occurrence ne sort pas !
    C'est incroyable ca !

  11. #151
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 340
    Points : 31
    Points
    31
    Par défaut
    Je vais essayer de détailler au maximum les enchaînements l'application.

    On commence par là (Annexe.java):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public Annexe (int id, String ni, String dc, String dd, String df, int e, boolean up, String mat, int idz)
        {
            idAnnexe = id;  ==> vaut 0
            natureIntervention = ni; ==> vaut FR096892
            dateCreation = dc;  ==> vaut null
            dateDeb = dd;  ==> vaut null
            dateFin = df;  ==> vaut null
            effectif = e;  ==> vaut 0
            upload = up;  ==> vaut false
            matricule = mat;  ==> vaut un String vide
            idZone = idz;  ==> vaut 162
        }
    Ensuite on arrive ici (Fenetre.java):
    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
     
    /* Classe interne permettant de récupérer les évènements liés à la frame */
        public class EcouteurFenetre implements WindowListener
        {
            /* Evènement au lancement de l'application */
            public void windowOpened(WindowEvent e)
            {
                /* Récupération de l'identité du Chargé d'affaires */
                jTextFieldChargeAffaire.setText(ChargeAffaire.recupererIdentiteCharge());
     
                /* Vérification du role de l'utilisateur pour l'affichage de l'onglet administrateur
                 Si il ne l'est pas, l'onglet "Administration" n'apparait pas */
                if (ChargeAffaire.isAdmin() != true)
                {
                    MenuOnglet.removeTabAt(4);
                }
     
                /* Récupération de l'id de l'annexe */
                Zone zone = new Zone();
                zone.setIdZone(zone.recupererIdZone());
                String matricule = System.getProperty("user.name");
                Annexe annexe = new Annexe(0, matricule, null, null, null, 0, false, "", zone.getIdZone());
                jTextFieldNumAnnexe.setText(Integer.toString(annexe.recupererIdAnnexeCree()));
     
                /* Récupérer et afficher le téléphone du chargé d'affaires */
                jTextFieldTelephoneCharge.setText(ChargeAffaire.recupererTelCharge());
     
                if(ChargeAffaire.isUser() == 0)
                {
                    jDialogUtilisateurIncorrect.setVisible(true);
                }
            }
    Par ici Messieurs-dames ! (Annexe.java) :
    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
     
    /* Méthode récupérant l'id de l'Annexe a créer pour réserver l'emplacement pour l'annexe en cours de création */
        public int recupererIdAnnexeCree()
        {
            try
            {
                int result = 0;
                matricule = System.getProperty("user.name");
                Connexion.query = "SELECT IdAnnexe FROM Annexe;";
                Connexion.res = Connexion.stmt.executeQuery(Connexion.query);
                while(Connexion.res.next())
                {
                    result = Connexion.res.getInt(1);
                }
                Connexion.query = "SELECT IdZone FROM Zone";
                Connexion.res = Connexion.stmt.executeQuery(Connexion.query);
                while(Connexion.res.next())
                {
                    idZone = Connexion.res.getInt(1);
                }
                idAnnexe = result+1;
                Connexion.query = "INSERT INTO Annexe (IdAnnexe, Matricule, IdZone, Upload) VALUES("+idAnnexe+", '"+matricule+"', "+idZone+", False);";
                System.out.println(Connexion.query);
                Connexion.stmt.executeUpdate(Connexion.query);
                return idAnnexe;
            }
            catch (Exception ex)
            {
                ex.printStackTrace();
                System.out.println(ex.getMessage());
                return 0;
            }
        }
    Ensuite on retombe sur l'instruction de tout à l'heure dans Fenetre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jTextFieldNumAnnexe.setText(Integer.toString(annexe.recupererIdAnnexeCree()));
    Par ici ! (Windows.java) :
    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
    protected void processWindowEvent(WindowEvent e) {
            WindowListener listener = windowListener;
            if (listener != null) {
                switch(e.getID()) {
                    case WindowEvent.WINDOW_OPENED:
                        listener.windowOpened(e);
                        break; <== sur le premier break
                    case WindowEvent.WINDOW_CLOSING:
                        listener.windowClosing(e);
                        break;
                    case WindowEvent.WINDOW_CLOSED:
                        listener.windowClosed(e);
                        break;
                    case WindowEvent.WINDOW_ICONIFIED:
                        listener.windowIconified(e);
                        break;
                    case WindowEvent.WINDOW_DEICONIFIED:
                        listener.windowDeiconified(e);
                        break;
                    case WindowEvent.WINDOW_ACTIVATED:
                        listener.windowActivated(e);
                        break;
                    case WindowEvent.WINDOW_DEACTIVATED:
                        listener.windowDeactivated(e);
                        break;
                    default:
                        break;
                }
            }
        }
    Nous voilà à présent dans JFrame.java :
    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
    protected void processWindowEvent(WindowEvent e) {
            super.processWindowEvent(e);
    
            if (e.getID() == WindowEvent.WINDOW_CLOSING) { <== il arrive dessus mais ne rentre pas 
                switch(defaultCloseOperation) {
                  case HIDE_ON_CLOSE:
                     setVisible(false);
                     break;
                  case DISPOSE_ON_CLOSE:
                     dispose();
                     break;
                  case DO_NOTHING_ON_CLOSE:
                     default: 
                     break;
    	      case EXIT_ON_CLOSE:
                      // This needs to match the checkExit call in
                      // setDefaultCloseOperation
    		System.exit(0);
    		break;
                }
            }
        }
    Windows.java :
    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
    protected void processEvent(AWTEvent e) {
            if (e instanceof WindowEvent) {
                switch (e.getID()) {
                    case WindowEvent.WINDOW_OPENED:
                    case WindowEvent.WINDOW_CLOSING:
                    case WindowEvent.WINDOW_CLOSED:
                    case WindowEvent.WINDOW_ICONIFIED:
                    case WindowEvent.WINDOW_DEICONIFIED:
                    case WindowEvent.WINDOW_ACTIVATED:
                    case WindowEvent.WINDOW_DEACTIVATED:
                        processWindowEvent((WindowEvent)e);
                        break; <== petite escale ici 
                    case WindowEvent.WINDOW_GAINED_FOCUS:
                    case WindowEvent.WINDOW_LOST_FOCUS:
                        processWindowFocusEvent((WindowEvent)e);
                        break;
                    case WindowEvent.WINDOW_STATE_CHANGED:
    		    processWindowStateEvent((WindowEvent)e);
                    default:
                        break;
                }
                return;
            }
    	super.processEvent(e);
        }
    C'est intéressant que je continu ou pas du tout ? (pas non plus polluer tout le topic ^^)
    Sinon ca me dérange pas

  12. #152
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Tu vas trop loin.

    Les méthodes processWindow... appartiennent à JFrame. Il est inutile de chercher le problème là-dedans.

    qu'est-ce que donne le System.out.println(Connexion.query); ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  13. #153
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 340
    Points : 31
    Points
    31
    Par défaut
    Je me disais aussi que je poussais le bouchon un peu trop loin

    INSERT INTO Annexe (IdAnnexe, Matricule, IdZone, Upload) VALUES(1429, 'FR096892', 162, False);

  14. #154
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Et tu ne retrouves pas la valeur 1429 dans la table Annexe ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  15. #155
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 340
    Points : 31
    Points
    31
    Par défaut
    Correction de ma part, je retrouve bien les insertions dans ma BDD
    (Je pensais que cliquer sur la colonneName permettait de faire un ORDER BY ASC ou DESC mais il y a subtilité je pense...)

    J'ai effectué précisement cette requête :
    SELECT * FROM annexe ORDER BY IdAnnexe DESC;

    C'est donc notre crapuleuse classe Connexion qui nous joues des tours comme tu l'avais énoncé précédemment.

  16. #156
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Donc le problème résiduel est de pouvoir fermer la fenêtre de création ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  17. #157
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 340
    Points : 31
    Points
    31
    Par défaut
    Concrètement, On devrait :
    ==>ouvrir l'appli
    ==> Créer une annexe
    ==> Voulez vous bien ... Oui
    ==> Ouverture d'Excel avec toute les infos (et après ca doit etre du VBA)...

    Et aussi m'envoyer un mail avec le smtp de l'usine.

    Tu serais me dire comment je pourrais connaitre le code qui se cache derrière cette onglet stp ?
    Nom : Sans titre.jpg
Affichages : 201
Taille : 121,7 Ko

  18. #158
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Citation Envoyé par Spiicky Voir le message
    Tu serais me dire comment je pourrais connaitre le code qui se cache derrière cette onglet stp ?
    Il faut cliquer sur source ...
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  19. #159
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 340
    Points : 31
    Points
    31
    Par défaut
    D'accord, je laisse de coté la création des annexes pour le moment.
    Je vais voir ailleurs comment ca fonctionne, peut être que des erreurs sont redondantes...

    Voici le code pour l'affichage du tableau des annexes du jour (d'après ce que j'ai compris ):
    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
    /* Evènement lors du focus sur le menu onglets */
        private void MenuOngletFocusGained(java.awt.event.FocusEvent evt) {                                       
            /* Tableau des annexes du jour */
            Connexion.query = "SELECT Annexe.IdAnnexe, NomCharge, PrenomCharge, DateCreation, DateDeb, DateFin, NomInstallation, NomZone FROM Annexe, ChargeAffaire, Zone, Installation WHERE Annexe.IdZone = Zone.IdZone AND Zone.IdInstallation = Installation.IdInstallation AND Annexe.Matricule = ChargeAffaire.Matricule AND DateCreation = #"+Utilitaire.formaterDateRequete(date)+"#;";
            Utilitaire.reinitialiserTableau((DefaultTableModel)jTableAnnexeDuJour.getModel());
            Annexe.AffichageAnnexe(Connexion.query, jTableAnnexeDuJour);
     
            /* Tableau des annexes en cours */
            Connexion.query = "SELECT Annexe.IdAnnexe, NomCharge, PrenomCharge, DateCreation, DateDeb, DateFin, NomInstallation, NomZone FROM Annexe, ChargeAffaire, Zone, Installation WHERE Annexe.IdZone = Zone.IdZone AND Zone.IdInstallation = Installation.IdInstallation AND Annexe.Matricule = ChargeAffaire.Matricule AND DateDeb <= #"+Utilitaire.formaterDateRequete(date)+"# AND DateFin >= #"+Utilitaire.formaterDateRequete(date)+"#;";
            Utilitaire.reinitialiserTableau((DefaultTableModel)jTableAnnexeEnCours.getModel());
            Annexe.AffichageAnnexe(Connexion.query, jTableAnnexeEnCours);
     
            /* Tableau des uploads */
            Connexion.query = "SELECT Annexe.IdAnnexe, DateCreation, DateDeb, DateFin, NomSociete FROM Annexe, Societe, Realiser, ChefChantier WHERE Matricule = '"+System.getProperty("user.name")+"' AND Annexe.IdAnnexe = Realiser.IdAnnexe AND Realiser.IdCC = ChefChantier.IdCC AND ChefChantier.idSociete = Societe.IdSociete AND Annexe.upload=False;";
            Utilitaire.reinitialiserTableau((DefaultTableModel)jTableUpload.getModel());
            Annexe.AffichageUpload(Connexion.query, jTableUpload, Integer.parseInt(jTextFieldNumAnnexe.getText()));
        }
    Je vais commencé par tester ces requêtes

  20. #160
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 340
    Points : 31
    Points
    31
    Par défaut
    Ces requêtes posaient effectivement problème au niveau du format de la date (dateFR => dateSQL).
    Ce qui m'a permis de regler le problème de l'affichage des annexes du jours et annexes en cours.

    Me reste l'eternel problème de la création des annexes...

    Diagnostique :
    A l'ouverture de l'application, une annexe est directement crée (donc un INSERT INTO) et un numéro est donc mis à notre disposition (IdAnnexe).
    En passant sur l'onglet "créer annexe", nous sommes donc en mesure de paramètrer cette annexe (Donc un UPDATE).

    Le problème étant : en mode débugger, je ne passe jamais par cette UPDATE au moment de la confirmation "Voulez vous créer l'annexe ?".
    En fait, dans "la vie" de l'application, quand je confirme, il "recommence" à initialiser une annexe, comme s'il était en train d'en recréer une...

    Une piste mon ami ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 8 sur 31 PremièrePremière ... 45678910111218 ... DernièreDernière

Discussions similaires

  1. ListView qui change de taille mais n'affiche pas le contenu d'une ObservableCollection
    Par Atellane dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 14/08/2014, 10h46
  2. DataGrid n'affiche pas le contenu de certaines colonnes d'un Datatable
    Par alucia dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 20/09/2013, 13h39
  3. .load qui n'affiche pas le contenu de la page
    Par tonydu91 dans le forum jQuery
    Réponses: 4
    Dernier message: 06/04/2013, 23h58
  4. [SimpleXML] Problème avec simpleXML : il n'affiche pas le contenu de mon élément
    Par ploxien dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 05/05/2007, 19h43
  5. GUI Java par netbeans - ne s'affiche pas
    Par G_angel dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 31/01/2007, 11h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo