greglover
Messages postés58Date d'inscriptionmardi 16 janvier 2007StatutMembreDernière intervention10 mars 2008
-
28 janv. 2007 à 02:50
sabriGhan
Messages postés1Date d'inscriptionmercredi 12 mai 2010StatutMembreDernière intervention27 mars 2012
-
27 mars 2012 à 16:54
Bonsoir,
je suis actuellement sur un projet de gestion de garderie d'une école.
en fonction du nombre de jour de garde et du nombre d'enfant à charge, mon programme calcule le montant que la famille devra payer.
il ne me reste plus qu'à coder l'impression des factures.
Que me conseillez vous à savoir, qu'il y a environ 100 factures par mois et qu'elles doivent toutes être imprimées 2 fois (compta).
Au début j'ai pensé à un bouton qui lancerait une séquence d'export grâce à iText et ensuite la personne n'aurait plus qu'à selectionner tous les fichiers et les imprimer.
Ensuite je me suis demandé s'il n'était pas possible d'exporter les données (nom, prenom, montant) vers un publipostage word. La personne n'aurait plus qu'a ouvrir le modèle et lancer l'impression.
Je voulais avoir votre avis. Que choisiriez vous ? Avez vous une autre idée ? Est ce réalisable et si oui pouvez vous me diriger vers un tuto ?
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 28 janv. 2007 à 05:51
utilise plutôt un système de reporting qui sont fait pour cà : tu créer un modèle d'impression (où est situé tel champ ou tel champ, imprimer une photo ici, etc), et tu n'as plus qu'à lancer l'impression comme cà.
Il existe plusieurs projets de reporting sur sourceforge, je suis sûr que t'y trouvera ton bonheur.
Perso, j'utilise Report Manager (qui est développé sous forme d'ocx, donc plutôt orienté pour vb, mais au vu des newsgroup de report manager, il y en a certains qui ont réussi à l'utiliser en java).
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 28 janv. 2007 à 16:43
Un report c'est tout simplement un modèle d'impression : tu définit ce que tu doit imprimer et où l'imprimer, puis tu n'as plus qu'à lancer l'impression en lui envoyant les données à imprimer (bien souvent, il s'agit d'une simple requête SQL).
Tu n'as donc quasiment aucun code a faire : juste à faire le report en lui-même (et si l'outil utilisé est pratique, ca se fait presque de la même façon que taper du texte sous Excel !).
Exemple : tu pose un champ texte sur une grille, tu lui dit qu'il s'agit du champ "nom" de la table "personne", et c'est tout. Pour l'imprimer, tu lui passe une requête SQL avec le champ nom de la table personne avec les enregistrements qu'il faut que tu imprime, et il se débrouille.
C'est toute la puissance des reports, mais si tu ne connais pas du tout, documente toi dessus, ce sera plus simple.
Je ne connais pas iText, mais apparement, ca te permet juste de créer des pdf par programmation, donc tu sera sûrement moins limité, mais par contre, tu aura tout à coder !
public Connection getConnection(){
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql://localhost/tache", "root","");
if(!con.isClosed()){
System.out.println("Successfully connected to " + "MySQL server using TCP/IP...");
return con;
}
} catch(Exception e) {
return con;
}
return con;
}
@SuppressWarnings("unchecked")
public void getPDF(Connection connection,String requete, String titre){
try{
// - Chargement et compilation du rapport
JasperDesign jasperDesign = JRXmlLoader.load("E:\\Salima\"+requete+".jrxml");
//JasperDesign jasperDesign = JRXmlLoader.load("report\"+requete+".jrxml");
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
// - Param�tres � envoyer au rapport
Map parameters = new HashMap();
parameters.put("annee", 1990);
parameters.put("Titre", "Titre");
// - Execution du rapport
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters,connection);
// - Cr�ation du rapport au format PDF
File file;
file = selectDirectory(null, null); // selection de l'emplacement
JasperExportManager.exportReportToPdfFile(jasperPrint,file+"\"+titre+".pdf");
}
catch (Exception e) {
}
}
public static File selectDirectory(JDialog dialog, File dir) {
File f = dir;
JFileChooser chooser = new JFileChooser();
if (f == null)
chooser.setCurrentDirectory(new File("c:\"));
else
chooser.setCurrentDirectory(f);
chooser.setDialogTitle("Selectionnez un répertoire d'enregistrement ");
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.setAcceptAllFileFilterUsed(false);
chooser.setApproveButtonText("Accepter");
chooser.setApproveButtonToolTipText("Accepter le r�pertoire selectionn�");
if (chooser.showOpenDialog(dialog) == JFileChooser.APPROVE_OPTION) {
f = chooser.getSelectedFile();
}
return f;
}
public static void main(String args[]) {
GenererPlacePDF genererPDF = new GenererPlacePDF();
genererPDF.getPDF(genererPDF.getConnection(),"requete1","la liste des X selon Y");
sabriGhan
Messages postés1Date d'inscriptionmercredi 12 mai 2010StatutMembreDernière intervention27 mars 2012 27 mars 2012 à 16:54
Bonjour,
je suis une nouvelle : si quelqu'un peut m'aider :
j'essaye de créer et imprimer un fichier facture sous un modèle précis
comment faire ça en java ? respecter le modèle et imprimer???
Merci d'avance pour tout aide
Léna Sabri