Exporter des données vers un .CSV
salut, je développe une petite application avec struts qui consiste a extraire des données de ma base et les enregistré dans un fichier csv . le probleme c'est que lorsque le fichier est crée il est vide il n'y a aucun enregistrement.
dans l'action :
Code:
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
| public ActionForward load(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
{
IterfacagecaisseActionForm fb = (IterfacagecaisseActionForm)form;
ArrayList listAntenne = new ArrayList();
listAntenne = (ArrayList)request.getAttribute("listAntenne");
String userRole = (String)request.getAttribute("userRole");
Date date = new Date();
Calendar dateCalendar = new GregorianCalendar();
dateCalendar.setTimeInMillis(date.getTime());
String jour;
if(dateCalendar.get(5) < 10)
{
jour = (new StringBuilder("0")).append(dateCalendar.get(5)).toString();
} else
{
jour = (new StringBuilder()).append(dateCalendar.get(5)).toString();
}
String mois;
if(dateCalendar.get(2) + 1 < 10)
{
mois = (new StringBuilder("0")).append(dateCalendar.get(2) + 1).toString();
} else
{
mois = (new StringBuilder()).append(dateCalendar.get(2) + 1).toString();
}
String annee = (new StringBuilder()).append(dateCalendar.get(1)).toString();
fb.setJour(jour);
fb.setMois(mois);
fb.setAnnee(annee);
fb.setUserRole(userRole);
fb.setListAntenne(listAntenne);
System.out.println("InterfacagecaisseActionAction : load");
return mapping.findForward("interfacage_caisse");
}
public ActionForward generate(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
{
IterfacagecaisseActionForm fb = (IterfacagecaisseActionForm)form;
System.out.println("InterfacagecaisseActionAction : generate");
try
{
String antenne = fb.getAntenne();
String date_generation = (new StringBuilder(String.valueOf(fb.getAnnee()))).append("-").append(fb.getMois()).append("-").append(fb.getJour()).toString();
CsvWriter CMTracewriter = new CsvWriter(new PrintWriter(new OutputStreamWriter(new FileOutputStream("c:/CMTrace.csv"), Charset.forName("UTF-8"))), '!');
GenerateFileManager.generate_disbursaleLoan(CMTracewriter, antenne, date_generation);
GenerateFileManager.generate_payment(CMTracewriter, antenne, date_generation);
GenerateFileManager.generate_adjustment(CMTracewriter, antenne, date_generation);
GenerateFileManager.generate_fees(CMTracewriter, antenne, date_generation);
CMTracewriter.flush();
CMTracewriter.close();
response.setContentType("text/csv");
response.addHeader("Content-Disposition", "filename=\"CMTrace.csv\"");
try
{
File uFile = new File("c:/CMTrace.csv");
int fSize = (int)uFile.length();
FileInputStream fis = new FileInputStream(uFile);
PrintWriter pw = response.getWriter();
for(int c = -1; (c = fis.read()) != -1;)
{
pw.print((char)c);
}
fis.close();
pw.flush();
pw = null;
}
catch(Exception exception) { }
}
catch(IOException ex)
{
System.out.println((new StringBuilder("probleme envoi fichier, erreur=")).append(ex.getMessage()).toString());
}
return mapping.findForward("interfacage_caisse");
} |
et dans la classe qui génère le resultat de mes requetes :
Code:
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
| public static void generate_disbursaleLoan(CsvWriter CMTracewriter, String antenne, String date_generation)
throws IOException
{
JDBCAdapter adapter = new JDBCAdapter();
try
{
System.out.println("generate_disbursaleLoan");
adapter.getConnection();
for(ResultSet rs_loanAccount = adapter.executeQuery((new StringBuilder("SELECT * FROM loan_trxn_detail l,account_trxn a,account ac,office o where ac.acc" +
"ount_id=a.account_id and l.ACCOUNT_TRXN_ID=a.ACCOUNT_TRXN_ID and l.PRINCIPAL_AMO" +
"UNT > 0 and ac.OFFICE_ID=o.OFFICE_ID and o.DISPLAY_NAME='"
)).append(antenne).append("' and ac.CREATED_DATE='").append(date_generation).append("'").toString()); rs_loanAccount.next(); CMTracewriter.endRecord())
{
System.out.println("rs_loanAccount");
CMTracewriter.write(rs_loanAccount.getString("ACCOUNT_ID"));
CMTracewriter.write(rs_loanAccount.getString("GLOBAL_ACCOUNT_NUM"));
CMTracewriter.write(rs_loanAccount.getString("ACTION_DATE"));
CMTracewriter.write("");
CMTracewriter.write("");
CMTracewriter.write("1");
CMTracewriter.write("");
CMTracewriter.write(rs_loanAccount.getString("PRINCIPAL_AMOUNT"));
CMTracewriter.write("");
CMTracewriter.write("0");
CMTracewriter.write(rs_loanAccount.getString("ACTION_DATE"));
CMTracewriter.write("");
CMTracewriter.write("");
for(ResultSet rs_customer = adapter.executeQuery((new StringBuilder("SELECT DISPLAY_NAME FROM CUSTOMER,ACCOUNT WHERE CUSTOMER.CUSTOMER_ID=ACCOUNT.CUS" +
"TOMER_ID AND ACCOUNT_ID='"
)).append(rs_loanAccount.getString("ACCOUNT_ID")).append("'").toString()); rs_customer.next(); CMTracewriter.write(rs_customer.getString("DISPLAY_NAME"))) { }
CMTracewriter.write("");
CMTracewriter.write("0");
CMTracewriter.write("");
CMTracewriter.write("0");
}
CMTracewriter.flush();
System.out.println("generate_disbursaleLoan complete...");
}
catch(Exception e)
{
e.printStackTrace();
}
} |
merci d'avance