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
|
public String exportCSV( HttpServletRequest request, HttpServletResponse response){
try {
String type = (String) request.getAttribute("type");
String dateDebut = (String) request.getAttribute("dateDebut");
String dateFin = (String) request.getAttribute("dateFin");
if (type == null || type.equals("0")) {
return null;
}
File fileRep = new File(Contexte.getInstance().getCheminApplication() + "log");
// Créer le répertoire de log si inexistant
if (!fileRep.exists()) {
fileRep.mkdir();
}
File fileLog = new File(fileRep, "journal.log");
String nomRapport = fileLog.getName();
nomRapport = nomRapport.substring(0, nomRapport.indexOf("."));
PrintWriter pt = response.getWriter();
FileInputStream fr = new FileInputStream(fileLog);
BufferedReader br = new BufferedReader(new InputStreamReader(fr, Encodage.UTF8));
String lignelu = br.readLine(); // lire une 1ere ligne
while (lignelu != null) { // tant qu'il ya des lignes
// System.out.println("lignelu"+lignelu);
StringTokenizer strt = new StringTokenizer(lignelu, ";"); //recuperer la ligne sous forme de token separer par un ;
String typeLigne = strt.nextToken(); // on prend le type sous forme de code
System.out.println("typeLigne"+typeLigne);
String typeAction = strt.nextToken();
String dateRecup = strt.nextToken(); // on récupère la date de la ligne
dateRecup = dateRecup.substring(7,11) + dateRecup.substring(3, 7) + dateRecup.substring(1, 3); // on la convertie en yyyy/MM/dd
System.out.println("daterecup: " + dateRecup);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
Date dd = null, df = null, dr;
dr = sdf.parse(dateRecup);
if(dateDebut.length()>0){
dd = sdf.parse(dateDebut);
}
if(dateFin.length()>0){
df = sdf.parse(dateFin);
}
System.out.println("dateDebut converti: "+dd);
System.out.println("dateDebut converti: "+df);
if ( (type.equals("4") || typeLigne.equals(type)) && ((dateDebut.equals("")||!dr.before(dd)) && (dateFin.equals("")||!dr.after(df))) ){ //si le type de la ligne du fichier correspond au type rechercher
// et si la date de debut contient rien ou date debut est <= dateDebut // et si la date fin contient rien ou la date fin est >= dateFin
dateRecup = dateRecup.substring(8) + dateRecup.substring(4, 8) + dateRecup.substring(0, 4);
System.out.println("dateRecup"+dateRecup);
pt.print("<tr class='texte_liste'>"); //imprimer la balise d'ouverture d'une ligne dans un tableau
pt.print("<td class='entetelisteb'><div align='center'>"+ typeAction +"</div></td>");
pt.print("<td class='entetelisteb'><div align='center'>"+ dateRecup +"</div></td>");
System.out.println("un type trouvée compris dans la periode");
while (strt.hasMoreTokens()) { // tant qu'il ya des tokens
pt.print("<td class='entetelisteb'><div align='center'>" + strt.nextToken() + "</div></td>");
}
pt.print("</tr>");
}
lignelu = br.readLine();// relire une nouvelle ligne
}
fr.close();
if (type.equals("csv")) {
ecrireFichierDansFluxReponse(response, nomRapport, fileLog, "text/csv", true);
}
}
catch (Exception e) {
traiterErreur(request, response, e);
}
return null;
} |
Partager