Sous-totalisation et rupture
Bonsoir,
Je suis NUL de chez NUL en algo....et je n'arrive pas à effectuer une simple sous-totalisation...
Mon but est d'écrire toute les lignes d'une liste, en insérant une ligne de sous-totalisation à rupture sur un attribut de type String.
Classe Java utilisée
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
| import java.math.BigDecimal;
public class FondsMontant
{
private BigDecimal montant;
private String codeFonds;
public FondsMontant(BigDecimal montant, String codeFonds)
{
super();
this.montant = montant;
this.codeFonds = codeFonds;
}
/**
* @return the montant
*/
public BigDecimal getMontant()
{
return montant;
}
/**
* @param montant the montant to set
*/
public void setMontant(BigDecimal montant)
{
this.montant = montant;
}
/**
* @return the codeFonds
*/
public String getCodeFonds()
{
return codeFonds;
}
/**
* @param codeFonds the codeFonds to set
*/
public void setCodeFonds(String codeFonds)
{
this.codeFonds = codeFonds;
}
} |
Début de codage de la sous-totalisation :
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
| public class DateTest extends TestCase
{
public void testerRupture()
{
BigDecimal sousTotal = BigDecimal.ZERO;
String fondsPrecedent = "ceci nest pas un fonds";
List<FondsMontant> liste = new ArrayList<FondsMontant>();
FondsMontant fm1 = new FondsMontant(new BigDecimal("1.1"), "code1");
FondsMontant fm2 = new FondsMontant(new BigDecimal("2.2"), "code1");
FondsMontant fm3 = new FondsMontant(new BigDecimal("3.3"), "code1");
FondsMontant fm4 = new FondsMontant(new BigDecimal("4.4"), "code2");
FondsMontant fm5 = new FondsMontant(new BigDecimal("5.5"), "code2");
FondsMontant fm6 = new FondsMontant(new BigDecimal("6.6"), "code2");
liste.add(fm1);
liste.add(fm2);
liste.add(fm3);
liste.add(fm4);
liste.add(fm5);
liste.add(fm6);
for (FondsMontant fondsMontant : liste)
{
if (fondsPrecedent.compareTo(fondsMontant.getCodeFonds()) == 0)
{
sousTotal=sousTotal.add(fondsMontant.getMontant());
System.out.println(fondsMontant.getCodeFonds() + " - "
+ fondsMontant.getMontant());
System.out.println(sousTotal);
}
else
{
fondsPrecedent = fondsMontant.getCodeFonds();
sousTotal=BigDecimal.ZERO;
}
System.out.println(fondsMontant.getCodeFonds() + " - "
+ fondsMontant.getMontant());
System.out.println(sousTotal);
}
}
} |
Si vous pouviez m'aider pour l'algo au moins.....j'ai honte!
Cordialement,
Sherkaan