Freigeben über


InfoPath Formulare: XPathNavigator Klasse und SetTypedValue - Not implemented

Beim Arbeiten in InfoPath 2007 Formularen setzt häufig per XPathNavigator die entsprechenden Werte in der Datenquelle des Forumulars.

Für Strings klappt dies auch recht gut mit der SetValue Funktion, und für alles andere gibt es ja die SetTypedValue Funktion.

Dachte ich zumindestens, für einige Datentypen (int, bool) funktioniert dies auch, wenn man jedoch darum geht Datums-Werte zu setzen gibt es eine SchemaValidation Exception mit dem Text "Not implemented".

Lösen läßt sich das Thema indem man das Datum als formatierten-String übergibt, und zwar genau so wie InfoPath ihn gerne hätte.

 XPathNavigator myForm = MainDataSource.CreateNavigator();

// Ein Datumsfeld im Formular auswählen
XPathNavigator myDate = myForm.SelectSingleNode("/my:myFields/my:myDate", NamespaceManager);

// Abhandeln des nil-Attributs
DeleteNil(myDate);

// Datums-String im richtigen Format erzeugen (yyyy-mm-dd)
string curDate = DateTime.Today.Year + "-" + DateTime.Today.Month + 
   "-" + DateTime.Today.Day;

// Feldwert setzen
myDate.SetValue(strCurDate);

viel Erfolg

Sven

Comments