Partage
  • Partager sur Facebook
  • Partager sur Twitter

répéter une action et prendre les changements en c

Sujet résolu
    26 août 2016 à 8:48:41

    package factures;
    
    import java.awt.*;
    import java.io.*;
    import java.util.*;
    
    import com.itextpdf.text.Chunk;
    import com.itextpdf.text.Document;
    import com.itextpdf.text.DocumentException;
    import com.itextpdf.text.Font;
    import com.itextpdf.text.FontFactory;
    import com.itextpdf.text.Element;
    import com.itextpdf.text.PageSize;
    import com.itextpdf.text.pdf.PdfPTable;
    import com.itextpdf.text.pdf.PdfPCell;
    import com.itextpdf.text.Paragraph;
    import com.itextpdf.text.pdf.PdfWriter;
    
    
    
    
    
    
    
    
    
    /**
     *
     * @author Mathias
     */
    public class Factures {
       
    
        /**
         * @param args the command line arguments
         * @throws com.itextpdf.text.DocumentException
         */
        public static void main(String[] args) throws DocumentException, FileNotFoundException { 
            
       
            
           
        
            
            // Création des variables
            String  prixTotal,  remise = null;
            int numeroFacture;
            String  nom, prenom, adresse, ville, nomD, prenomD, adresseD, codePostalD, villeD;
            String numeroSIREN, codePostal, titre, prixUT = null, quantitee = null;
            byte choix;
           
    
            // Informations sur l'emmetteur
            Scanner LectureClavier = new Scanner(System.in);
            System.out.print("Entrez le prénom de l'èmetteur de la facture : ");
            prenom = LectureClavier.next();
            System.out.print ("Entrez le nom de l'émmeteur de la facture :");
            nom = LectureClavier.next();
            LectureClavier.nextLine();
            System.out.print("Entrez l'adresse de l'émetteur de la facture : ");
            adresse = LectureClavier.nextLine();
            System.out.print("Entrez le code Postal : ");
            codePostal = LectureClavier.next();
            System.out.print("Entrez la ville : ");
            ville = LectureClavier.next();
            System.out.print("Entrez le numéro SIREN : ");
            numeroSIREN = LectureClavier.next();
           
            // Informations sur le destinataire
           
            System.out.print ("Entrez le nom du destinataire : ");
            nomD = LectureClavier.next();
             System.out.print ("Entrez le prénom du destinataire : ");
            prenomD = LectureClavier.next();
            LectureClavier.nextLine();
             System.out.print ("Entrez l'adresse du destinataire : ");
            adresseD = LectureClavier.nextLine();
             System.out.print ("Entrez le code postal du destinataire : ");
            codePostalD = LectureClavier.next();
             System.out.print ("Entrez la ville du destinataire : ");
            villeD = LectureClavier.next();
             
            do {
            LectureClavier.nextLine();
             System.out.print ("Entrez une description : ");
            titre = LectureClavier.nextLine();
             System.out.print ("Entrez un prix : ");
            prixUT = LectureClavier.next();
                
            System.out.print("Entrez la quantitée : ");
            quantitee = LectureClavier.next();
               
            System.out.print ("Entrez une remise (en Euros) : ");
            remise = LectureClavier.next();
                float remisefl = Float.parseFloat(remise);
                
                // Calcul du prix HT d'un élément
              
                
                System.out.print ("Voulez-vous ajouter un autre élément ? 1=oui/ 0=non ");
                choix = LectureClavier.nextByte();
                
            } while(choix == 1);
    
           float prixUTfl = Float.parseFloat(prixUT);
            float quantiteefl = Float.parseFloat(quantitee);  
             float rem = prixUTfl * quantiteefl;
            String essaiAsString = String.valueOf(rem);
           
         
                Document document;
            document = new Document();
                    PdfWriter.getInstance(document, new FileOutputStream("java.pdf"));
                    // Ouvrir le fichier créé
                    document.open();
                    // Ecrire dans le fichier PDF
                    document.add(new Paragraph(nom + " " + prenom + "\r\n" + adresse + "\r\n" + codePostal + " " + ville
                        + "\r\n" + "SIREN : " + numeroSIREN));
                    Paragraph paragraph = new Paragraph(nomD + " " + prenomD + "\r\n" + adresseD + "\r\n" + codePostalD + " "
                        + villeD);
                    paragraph.setAlignment(Element.ALIGN_RIGHT);
                    document.add(paragraph);
                    
                    Chunk chunk;
            chunk = new Chunk("\r\n" +  "Dispensé d’immatriculation au registre du commerce et des sociétés (RCS) et au répertoire des métiers (RM)",
                    FontFactory.getFont(FontFactory.TIMES_ROMAN, 8));
    document.add(chunk);
    
    PdfPTable tableau = new PdfPTable(4);
    tableau.setWidths(new int[]{50,10,20,20});
      
        tableau.addCell("Description");
        tableau.addCell("Qte");
        tableau.addCell("PRIX UT");
        tableau.addCell("PRIX HT");
        
        tableau.addCell(titre);
        tableau.addCell(quantitee);
        tableau.addCell(prixUT);
        tableau.addCell(essaiAsString);
        
        document.add(tableau);
        
            
    PdfPTable tableau2 = new PdfPTable(2);
    tableau2.setWidths(new int[]{20,20});
    
        tableau2.addCell("SOUS-TOTAL HT");
        tableau2.addCell("");
        tableau2.addCell("REMISE/ACOMPTE");
        tableau2.addCell(remise);
        tableau2.addCell("TOTAL HT");
        tableau2.addCell("");
       
        
        document.add(tableau2);
    
    
        
         
                    // Fermer le document, à ne pas oublier
                    document.close();
            }
        
       
        
            
           
    
        private static void ileOutputStream(String javapdf) {
            throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }
        
        
        
    }


    Bonjour !

    Alors voilà, comme vous le voyez, mon programme est dans une boucle. Le programme demandes informations que l'utilisateurs entre et il enregistre ces informations dans des variables. Ensuite, le programme demande si on veut en ajouter d'autres. Si on dit oui, il doit enregistrer de nouvelles informations sans les effacer pour pouvoir les afficher à la suite dans un tableau. Comment faire ?

    Merci d'avance de m'avoir répondu.

    • Partager sur Facebook
    • Partager sur Twitter
      26 août 2016 à 9:52:15

      Hello!

      Une solution est d'encapsuler tes variables dans un objet puis de stocker cet objet dans une collection à chaque remplissage du formulaire par l'utilisateur. Ensuite il ne restera qu'à créer une classe qui permettra de lire cette collection en l'organisant sous forme de tableau.

      • Partager sur Facebook
      • Partager sur Twitter
        26 août 2016 à 10:57:05

        info A;
            A = new info();
         
        public String prixTotal, remise = null, prixUT = null, quantitee = null, titre; public void Afficher() { Scanner LectureClavier = new Scanner(System.in); LectureClavier.nextLine(); System.out.print ("Entrez une description : "); titre = LectureClavier.nextLine(); System.out.print ("Entrez un prix : "); prixUT = LectureClavier.next(); System.out.print("Entrez la quantitée : "); quantitee = LectureClavier.next(); System.out.print ("Entrez une remise (en Euros) : "); remise = LectureClavier.next(); float remisefl = Float.parseFloat(remise); } public String Renvoyer(String titre, String prixUT, String quantitee, String remise) { } }


        Alors j'ai fait ça mais je sais pas si c'est bon. de plus, je ne sais pas comment faire pour que les aleurs enregistrées soient renvoyer dans le programme principal...

        de plis quand j'essaye de créer un objet (ici A) il me met une erreur...(info est le nom de la classe publique)

         Bon, j'ai réussi à trouver quelques solutions mais pas toutes. Par exemple, je ne sais pas toujours comment ajouter de nouvelle variables en même temps que les autres soient gardées. Cela dit, elles n'ont pas besoins d'être gardées vu qu'elles sont affichées dans un PdfPTable. C'est de ce tableau que je parlais. A l'aide !

        -
        Edité par mathias13 26 août 2016 à 12:23:27

        • Partager sur Facebook
        • Partager sur Twitter
          26 août 2016 à 14:34:20

          Ton objet A doit être défini dans une classe à part.

          Par exemple:

          public class A {
          	private String description, prix, quantite;
          	private float remise;
          	
          	public A(){
          		//Constructeur par défaut
          	}
          	
          	public A(String description, String prix, String quantite, float remise){
          		//Constructeur appellé dans ta méthode d'affichage
          		this.description = description;
          		this.prix = prix;
          		this.quantite = quantite;
          		this.remise = remise;
          	}
          	
          	//GETTERS
          	public String getDescription(){
          		return description;
          	}
          		//...
          	
          	//SETTERS
          	public void setDescription (String description){
          		this.description = description;;
          	}
          		//... 
          
          	//Affichage
          	public void Display(){
          		System.out.println("Description : "+description+ "/n"+
          						   "Cet objet coûte : "+prix+ "/n"+
          						   "Quantité en stock : "+quantite+ "/n"+
          						   "Remise en cours : "+remise);
          	}
          }

          Ensuite dans ta méthode Afficher() tu crée ta collection d'objet:

          private Collection<A> allA = new ArrayList<A>();

          Et tu ajoute tes objets de cette manière:

          allA.add(new A(description, prix, quantite, remise));


          Et ensuite tu appelle la méthode Display() pour chaque objet A de la collection:

          for(A a : allA)
          	a.Display();

          -
          Edité par -Nox 26 août 2016 à 14:38:55

          • Partager sur Facebook
          • Partager sur Twitter
            26 août 2016 à 15:16:14

            Salut, merci. J'ai ben regarder tes lignes de codes. J'ai compris qu'il faut placer la première dans la classe A dans la fonction afficher mais je vois pa où placer les deux autres, en particulier la dernière. Pour info la classe s'appelle justement Info

            -
            Edité par mathias13 26 août 2016 à 15:19:38

            • Partager sur Facebook
            • Partager sur Twitter
              26 août 2016 à 15:42:20

              ➔ Oui la première est à placer dans son propre fichier. C'est une classe à part.

              ➔ La deuxième c'est simplement la déclaration de la variable qui contient la collection. Elle est à placer avec tes autres déclaration de variable dans ta classe Info.

              ➔ La troisième est à placer à la fin de ta méthode Afficher()

              ➔ Quant à la dernière elle est à placer là où tu as décider de passer en revue tous tes objets. Essaie de la mettre à la fin de méthode Afficher() ou dans ta méthode Renvoyer() et tu jugera après du meilleur endroit où la placer.

              • Partager sur Facebook
              • Partager sur Twitter
                26 août 2016 à 17:11:26

                Non, dsl ca marche pas, tes lignes decodes font bugger mon programme. Mais c'est pas grave. Tu as essayé de répondre et c'est déjà ça. Merci
                • Partager sur Facebook
                • Partager sur Twitter

                répéter une action et prendre les changements en c

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown