j'ai presque reussi avec un mélange de code managé et de formule
code managé :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
public void Ligne_Changed(object sender, XmlEventArgs e)
{
XPathNavigator SoldeMoisPrecedent = this.MainDataSource.CreateNavigator().SelectSingleNode("/my:mesChamps/my:SoldeMoisPrecedent", NamespaceManager);
XPathNavigator champ40 = this.MainDataSource.CreateNavigator().SelectSingleNode("/my:mesChamps/my:groupe3/my:Ligne/my:champ40", NamespaceManager);
XPathNavigator champ27 = this.MainDataSource.CreateNavigator().SelectSingleNode("/my:mesChamps/my:groupe3/my:Ligne/my:champ27", NamespaceManager);
XPathNavigator champ39 = this.MainDataSource.CreateNavigator().SelectSingleNode("/my:mesChamps/my:groupe3/my:Ligne/my:champ39", NamespaceManager);
if (!SoldeMoisPrecedent.InnerXml.Equals(""))
{
Double doubleSoldeMoisPrecedent = Double.Parse(SoldeMoisPrecedent.Value);
Double doublechamp27 = Double.Parse(champ27.Value);
Double doublechamp39 = Double.Parse(champ39.Value);
Double resultat = doubleSoldeMoisPrecedent + doublechamp27 - doublechamp39;
champ40.SetValue("" + resultat);
}
} |
mais je ne comprends pas pourquoi ce code fonctionne que pour la première ligne du tableau ( mais ca m'arrange )
les lignes suivantes ajoutés restent vide pour le contrôle 40 .... et sans la formule qui suit
ensuite je rajoute dans la formule 40
../preceding-sibling::*/my:champ40 + ../my:champ27 - ../my:champ39
mais ca ne reprend pas la ligne précédente, mais la première ligne, donc chaque ligne utilise la première ligne pour faire son calcul
et dans l'inspecteur de logique j'ai pour le champ40 :
valeurs calculées par défaut
champ40 : [introuvable] + champ27 - champ39
Partager