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

 Java Discussion :

Par où commencer un projet ?


Sujet :

Java

  1. #101
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Par défaut
    et maintenant c'est quoi la suite du projet?

  2. #102
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    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 713
    Par défaut
    Ok ; mais tu continues à faire tes écrans "à la main" en codant chaque contrôle.
    Cela fonctionne bien sûr, mais quand je vois ta classe FenInterv courageusement codée à la main
    à force de JPanel pour classer les contrôles et l'implémentation héroïque d'ActionListener pour les boutons,
    je me dis que toute cette belle énergie serait bien mieux employée dans l'architecture du projet.

    Explication :
    NetBeans est construit pour composer facilement des écrans.
    En quelques clics et quelques drag and drop, tu as composé un écran tout à fait professionnel.
    http://netbeans.org/kb/docs/java/gui-functionality.html
    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/

  3. #103
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Par défaut
    ok j'en prend note pour la suite du programme!!!!
    et maintenant je passe a quoi exactement?

  4. #104
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    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 713
    Par défaut
    Eh bien justement, passes donc un jour ou deux à bien maîtriser les écrans avec NetBeans
    Cela fera gagner un temps fou à la suite
    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/

  5. #105
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Par défaut
    Citation Envoyé par Népomucène Voir le message
    Eh bien justement, passes donc un jour ou deux à bien maîtriser les écrans avec NetBeans
    Cela fera gagner un temps fou à la suite
    Oui mais apres est-ce que j'aurai le temps pour terminer l'application???

  6. #106
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    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 713
    Par défaut
    Pour quelle date ?

    Par ailleurs, tes écrans actuels sont fonctionnels.
    Cependant, avec Netbeans, tu peux faire des écrans agréables à utiliser.
    Au moment de la présentation de la maquette, c'est vital.
    Il vaut mieux une belle IHM avec un ou deux bogues
    qu'un écran gris parfaitement opérationnel ... c'est comme ça
    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/

  7. #107
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Par défaut
    c'est vrai que mes ecrans sont plutot ouf!!!
    mais je vais prendre le temps de les reconstituer pendant les week-end.
    je doit finri le projet avant le 14 juin!!!

  8. #108
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    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 713
    Par défaut
    N'attends pas ce week-end.
    Travailles tout de suite sur NetBeans.

    La semaine prochaine, il faudra déjà commencer à travailler sur JasperReport
    pour fabriquer les états
    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/

  9. #109
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Par défaut
    ok je commence de suite donc!!!

  10. #110
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Par défaut
    c'est ok pour les ecrans!!!!
    on peut passer a la suite...

  11. #111
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    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 713
    Par défaut iReport
    La suite (pédagogique) est de s'initier rapidement à iReport pour formater un état utilisable depuis l'application Java.
    JasperReport est le moteur ; il devra être ajouté aux bibliothèques de l'application le moment venu.
    Voir FAQ iReport ici

    Le principe général d'un "état" (ou "report" ou "impression") :
    est le même que celui du mailing :
    - d'un côté on a une requête SQL des données que l'on souhaite imprimer
    - de l'autre on fabrique un modèle d'impression (report) en fonction des champs de cette requête.

    Pour prendre en main l'outil, par rapport à ton application,
    je te conseille de faire une simple liste des fabricants (nom, adresse) en restant dans iReport pour l'instant.

    à+
    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/

  12. #112
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Par défaut
    ok je vais m'y mettre!!!

  13. #113
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Par défaut
    Ok!!! je suis arrivé à afficher les informations des fabricants dans iReport!!!

  14. #114
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    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 713
    Par défaut
    Bien, le plus gros est fait.

    Travailles aussi sur la requête sous-jacente ; fais en sorte d'utiliser la table des fabricants reliées la table des équipements

    Tu auras aussi besoin de faire des totalisations de colonnes.
    Aussi, travailles la notion de groupe avec en-tête et ses pied de groupe
    dans lesquels ont y place les calculs les plus intéressants.

    Concentres-toi bien sur les chiffres et les données que tu veux obtenir.
    Les utilisateurs et les responsables seront très exigeants sur les états
    (c'est ce qui sert en réunions et ce sont des documents de gestion)
    alors qu'ils sont plus tolérants sur l'aspect des écrans

    Je te donnerais le reste du "programme d'étude" au fur et à mesure.

    à+
    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. #115
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Par défaut
    Et qu'en est il de JasperReports???
    Comment l'utiliser dans mon programme?

  16. #116
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    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 713
    Par défaut
    pour bien comprendre la suite, dans iReport, dès que tu maîtrise bien les points précédents,
    tu dois ajouter la notion de paramètre.
    Cela sert à sélectionner les données dans un listing en fonction d'un critère.

    Par exemple pour la liste de tous les équipements, La requête sous-jacente est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM equipements
    Cependant, il est très rare qu'un état ne soit pas soumis à un ou plusieurs critères de sélection
    Aussi, pour avoir cet état pour le fabricant N° 48, il faut modifier la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM equipements where Id_fabricant = 48
    Cela fonctionne mais ce n'est pas jouable pour un utilisateur qui doit pouvoir cliquer sur
    un bouton dans la fiche (JFrame) du fabriquant pour obtenir cette liste.

    Ainsi, les états sont prévus pour recevoir un ou plusieurs paramètres
    qui vont principalement servir à la sélection.

    1) on définit le paramètre, par exemple {ID_FABRICANT} dans iReport
    2) on modifie la requête en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM equipements where Id_fabricant = $P{ID_FABRICANT}
    Dès que ça marche alors, je te donnerai la procédure pour appeler un Rapport Jasper depuis ton application Java.
    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. #117
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Par défaut
    Sa maaarche !!!!
    J'ai essayé avec la table interventions et j'ai ajouté 1 parametre {id_equipement} puis j'ai ecrit la requetê suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Select * from interventions where id_intervention=$P{id_equipement}

  18. #118
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    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 713
    Par défaut Classe utilitaire pour JasperReport
    Le principe est simple :
    1) on crée le rapport avec iReport -> on a un fichier "compilé" avec l'extension .jasper
    2) on place ce fichier dans un package de l'application. Avantage : il sera transporté dans le jar de l'application généré par NetBeans
    3) pour appeler le rapport, on le prend dans le jar (voir dans la classe comment c'est fait), on lui donne les paramètres et la connexion à la base
    ... et ça marche tout seul


    Plutôt qu'une longue explication, voici une petite classe utilitaire
    qui permet d'utiliser un rapport depuis une application java.

    Il faut ajouter les jars de JaspertReport au classpath téléchargement ici : http://jasperforge.org/projects/jasperreports
    Dans NetBeans, c'est facile, il suffit de créer une librairie avec les jars et d'ajouter cette bibliothèque au projet.

    Il faut créer un package rapports dans lequel on place :
    - la classe ImprJasper
    - les différents rapports créés avec iReport (ne placer que les fichiers ayant .jasper comme extension)

    à la fin de la classe se trouve un exemple d'appel de rapport

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
     
    package rapports;
     
    import java.io.File;
    import java.net.URL;
    import java.sql.Connection;
    import java.util.HashMap;
    import java.util.Map;
    import net.sf.jasperreports.engine.JRException;
    import net.sf.jasperreports.engine.JRExporterParameter;
    import net.sf.jasperreports.engine.JRParameter;
    import net.sf.jasperreports.engine.JasperExportManager;
    import net.sf.jasperreports.engine.JasperFillManager;
    import net.sf.jasperreports.engine.JasperPrint;
    import net.sf.jasperreports.engine.JasperPrintManager;
    import net.sf.jasperreports.engine.JasperReport;
    import net.sf.jasperreports.engine.export.JRXlsExporter;
    import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
    import net.sf.jasperreports.engine.util.JRLoader;
    import net.sf.jasperreports.view.JasperViewer;
     
    /**
     * Petite classe utilitaire pour lancer une impression d'un état JasperReport
     * On suppose que cette classe est placée avec les différents rapports dans le package "rapports".
     */
    public class ImprJasper {
     
        /**
         * @param nomDuRapport Le nom du rapport sans son extension .jasper
         * @param conn La connexion java.sql à la base de donnée
         * @param formatSortie "Aperçu","Imprimante","Tableur","HTML","PDF"
         * @param params Map des différents paramètres passés au rapport (ID_CLIENT par exemple) pour utilisation par le rapport
         * @param cheminFichierDeSortie chemin complet (avec extension) du fichier de sortie (HTML, Tableur, PDF). Indiquer null si Aperçu ou Imprimante
         */
        public ImprJasper(String nomDuRapport, Connection conn, String formatSortie, Map<String, Object> params, String cheminFichierDeSortie){
     
            params.put("SUBREPORT_DIR", "rapports/");       //  on suppose que le package dans lequel se trouve le rapport est nommé "rapports"
     
            URL cheminRapport = getClass().getResource(nomDuRapport + ".jasper");
     
            try {
                // chargement du rapport :
                JasperReport jasperReport = (JasperReport)JRLoader.loadObject(cheminRapport);
     
                // suppression de la pagination si format HTML (sinon on est au format A4 !!!)
                if (formatSortie.equals("HTML")) {
                    params.put(JRParameter.IS_IGNORE_PAGINATION, Boolean.TRUE);
                }
     
                // calcul et mise en page du rapport avec utilisation des paramètres et de la connexion
                // l'objet jasperPrint contient le résultat
                JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, conn);
     
                // si le format de sortie est "Aperçu", le résultat est placé dans un JFrame (JasperViewer) qui fait un EXIT_ON_CLOSE par défaut
                // il faut donc passer le paramètre false pour empêcher l'arrêt de l'application après un aperçu
                if (formatSortie.equals("Aperçu")) {
                    final JasperViewer Jv = new JasperViewer(jasperPrint,false); // le false empèche l'arrêt de l'application
                }
     
                if (formatSortie.equals("PDF")) {
                    JasperExportManager.exportReportToPdfFile(jasperPrint, cheminFichierDeSortie);
                }
     
                // pour exporter au format HTML JasperExportManager crée un sous répertoire.
                // en cas de ré-exportation du rapport, il faut supprimer le sous-répertoire sinon ça plante
                if (formatSortie.equals("HTML")) {
                    String NomRepHtml = cheminFichierDeSortie.subSequence(0, cheminFichierDeSortie.lastIndexOf(".")) + "_files";
                    File RepHtm = new File(NomRepHtml);
                    if (RepHtm.exists()) {
                        File[] Fichiers = RepHtm.listFiles();
                        for (File fichier : Fichiers) {
                            fichier.delete();
                        }
                    }
                    RepHtm.delete();
                    JasperExportManager.exportReportToHtmlFile(jasperPrint, cheminFichierDeSortie);
                }            
     
                if (formatSortie.equals("Imprimante")) JasperPrintManager.printReport(jasperPrint,false);
     
                if (formatSortie.equals("Tableur")) {
                    JRXlsExporter exporter = new JRXlsExporter();
     
                    exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
                    exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, cheminFichierDeSortie);
                    exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
     
                    exporter.exportReport();
     
                }
     
            }
     
            catch (JRException ex) {
                ex.printStackTrace();
            }
     
        }
     
     
        public void testImpression() {
     
            // exemple de sortie au format PDF du rapport "interventions" au format PDF pour l'équipement N°123
     
            Connection conn = .... ;      // la connexion à la base de données
            Map<String, Object> params =  new HashMap<String, Object>();
            params.put("id_equipement",123);
            new ImprJasper("interventions", conn, "PDF", params, "c:/Users/MaPomme/kika.pdf");
        }    
     
     
    }
    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. #119
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Par défaut
    Bon j'ai tout fait:
    j'ai télèchargé les jars de jasperreports
    puis j'ai crée la library avec les jars
    et j'ai ajouté les jars dans mon projet
    j'ai crée le package avec la classe ImprJasper...
    et maintenant il faut que j'ajoute un bouton dans le MenuGeneral pour que si je clique sur ce bouton le rapport se génère oubien???
    parceque je vois toujours pas comment le lier a mon projet???

  20. #120
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    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 713
    Par défaut
    Citation Envoyé par grfall Voir le message
    Bon j'ai tout fait:
    j'ai télèchargé les jars de jasperreports
    puis j'ai crée la library avec les jars
    et j'ai ajouté les jars dans mon projet
    j'ai crée le package avec la classe ImprJasper...
    et maintenant il faut que j'ajoute un bouton dans le MenuGeneral pour que si je clique sur ce bouton le rapport se génère oubien???
    parceque je vois toujours pas comment le lier a mon projet???
    Ben oui, il faudrait faire un bouton ...
    quant à l'endroit, cela dépend du rapport à générer ; c'est une simple question d'ergonomie
    ... dans le menu général ce n'est pratiquement jamais le cas (sauf pour des statistiques générales)
    ... dans la fiche "équipement" certainement :
    exemple : un utilisateur veut imprimer toutes les interventions sur un équipement
    (c'est le cas que tu as choisi dans ton état avec paramètre) alors sur ton JFrame "équipement", tu ajoutes un bouton.
    Ce bouton crée un objet ImprJasper.
    -> voir code exemple à la fin de la classe ImprJasper.
    (à la place de 123 tu lui donnes l'ID_equipement bien sûr)
    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/

Discussions similaires

  1. par ou commencer un projet?
    Par Pixolovski dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 24/04/2013, 11h52
  2. [Projet] Par où commencer
    Par moithibault dans le forum Général Python
    Réponses: 4
    Dernier message: 05/09/2009, 19h34
  3. Réponses: 3
    Dernier message: 11/07/2008, 11h50
  4. Réponses: 10
    Dernier message: 07/04/2006, 10h03
  5. [Projet]Par quoi commencer ?
    Par Machjaghjolu dans le forum Général Java
    Réponses: 8
    Dernier message: 21/11/2005, 11h08

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