Zugriff auf die aktuellen Daten einer Repeating Table in Infopath 2003

by Marc Andre Zhou April 16, 2007 06:16
In Infopath kann zur Dateneingabe eine fortlaufende Tabelle (Repeating Table) zur Datenerfassung verwendet werden. Dies bietet sich an, wenn die Datenmenge nicht von vornherein feststeht und ständig variiert. Möchte man dann nach Eingaben von Daten z. Bsp. eine Zeilensumme programmtechnisch berechnen, so muss man per Script auf die dynamisch angelegte Zeile zugreifen. Der folgende Codeausschnitt zeigt wie das möglich ist

function msoxd_my_summand2::OnAfterChange(eventObj)
{
if ((eventObj.NewValue > 0) && (eventObj.Operation == "Insert"))
{
var summand1 = eventObj.Source.parentNode.parentNode.selectSingleNode("my:summand1");
var summe = eventObj.Source.parentNode.parentNode.selectSingleNode("my:rowsum");
summe.text = parseInt(eventObj.NewValue) + parseInt(summand1.text, 10);
}
if (eventObj.IsUndoRedo)
{
return;
}
}

Die benutzte Tabelle besitzt 3 Textboxen. Die ersten beiden bilden summand1 und summand2, die dritte Textbox stellt die Summe der Zeile dar. Das OnAfterChange Ereignis wird jeweils 2 mal gefeuert. Beim ersten Aufruf wird der Wert aus der Textbox gelöscht und die Eigenschaft Operation des eventObj hat dann den Wert "Delete". Beim zweiten Aufruf wird der Wert gesetzt und die Eigenschaft Operation hat dann den Wert "Insert". Hierbei ist es auch möglich, auf den OldValue zuzugreifen.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , ,

InfoPath

 
Marc Andre Zhou - China Signature