Por favor, antes de me criticarem e dizerem que existem milhoes de posts na net sobre isso, deixem-me explicar o meu caso pois tentei implementar todos eles.
Meu código é os eguinte:
[code]protected String doIt() throws Exception {
PreparedStatement pstm = null;
ResultSet rs = null;
String trx = null;
String sql = " SELECT cbp.name2, cmr.grandtotal "+
" FROM c_commissionrun cmr "+
" INNER JOIN c_commission cm ON cmr.c_commission_id = cm.c_commission_id "+
" INNER JOIN c_bpartner cbp ON cm.c_bpartner_id = cbp.c_bpartner_id "+
" WHERE cmr.startdate = ? ";
try {
pstm = DB.prepareStatement(sql, trx);
pstm.setTimestamp(1, p_Date);
rs = pstm.executeQuery();
while(rs.next())
{
String Nome2 = rs.getString("name2");
BigDecimal ValorTotal = rs.getBigDecimal("grandtotal");
BufferedWriter arquivo;
String Nome = String.format ("%08d", Nome2);
String valores = "460-"+ Nome + "-00322-" + ValorTotal;
try {
arquivo = new BufferedWriter(new FileWriter("TBDIGI004.txt", true));
arquivo.write(valores);
arquivo.newLine();
arquivo.flush();
arquivo.close();
}
catch (IOException erro)
{
// trata o erro
}
if(Nome2 == "")
continue;
}
}catch(Exception ex){
//
}
finally {
DB.close(rs, pstm);
pstm = null;
rs = null;
}
return null;
}[/code]
É um processo que exporta dados para um Txt. Só que tanto o Nome, quanto o valor total, eu tenho que completar com zeros, o nome tem q ter ao total 8 digitos e o valor 18.
Primeiro, o valor eu vou ter que converter para integer, ou seja, colocar os numeros depois da virgula, antes dela, como se fosse um só (ex 1,50 = 150) porque o programa que vai importar o txt sabe que os dois ultimos campos são os centavos. E isso não estou conseguindo fazer.
O outro problema, é que essa parte aqui String Nome = String.format ("%08d", Nome2);
que deveria completar com os zeros é executada, e daí ele não passa no restante do código, ou seja, não gera o Txt!
Estou fazendo algo errado???
Tentei usar o DecimalFormat também, mas acontecia a mesma coisa, ele pulava o restante do código.
Desde já agradeço se alguém puder me ajudar, pois não sei o que estou fazendo de errado! :?: :?