Précédent   Forum des professionnels en informatique > Dotnet > Général Dotnet > Développement Office System > InfoPath
InfoPath Forum d'entraide sur InfoPath (concevoir des formulaires basés sur XML)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/12/2011, 16h58   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2007
Messages : 44
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 44
Points : 10
Points : 10
Par défaut Selecteur de dates code c#

Bonjour, voila j'aimerais tout simplement renseigner un sélecteur de date

Problème si je met une date par défaut, mon code c# suivant

Code :
nav.SelectSingleNode("//my:madate" , NamespaceManager).SetValue("2011/01/01");
ça passe mon sélecteur devient 2001/01/01(avec la mise en forme adéquat)

En revanche si je ne met rien en valeur par défaut du champs InfoPath.
La même ligne C# génère une erreur.

Citation:
Message "La validation de schéma a détecté des erreurs qui ne concernent pas le type de données." string
Source "Microsoft.Office.InfoPath.Client.Internal.Host.Interop" string
StackTrace " à Microsoft.MsoOffice.InfoPath.MsxmlInterop.MsxmlDocument.ThrowExceptionFromMsxmlInteropError(MsxmlInteropError eError)\r\n à Microsoft.MsoOffice.InfoPath.MsxmlInterop.MsxmlNodeImpl.set_Text(String strText)\r\n à Microsoft.Office.InfoPath.MsxmlNavigator.SetValue(String value)\r\n
j'avoue être un peu perdu la... (j'ai régénérer code + le sélecteur de date au cas ou)

merci d'avance

note : j'ai passé mon Control sélecteur de date en format (string) rien ne change j'ai le même problème, je ne peux insérer aucune chaine
Code :
nav.SelectSingleNode("//my:madate" , NamespaceManager).SetValue("");
ne passe pas

edit: j'ai lu des trucs sur le xnil:nil mais trop flou
Logann23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2011, 11h10   #2
Candidat au titre de Membre du Club
 
Inscription : novembre 2007
Messages : 44
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 44
Points : 10
Points : 10
Code :
1
2
3
4
if (xnmyDate.MoveToAttribute("nil", "http://www.w3.org/2001/XMLSchema-instance"))
     xnmyDate.DeleteSelf();
xnmyDate.SetValue("2011-01-01");
xnmyDate=null;
apparemment faut détruire la Node avec un check sur le schéma XML

je suis preneur si quelqu'un a une simple et bonne explication ^^
Logann23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2011, 11h26   #3
Membre chevronné
 
Avatar de billout rm
 
MVP InfoPath
Inscription : juillet 2007
Messages : 556
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : MVP InfoPath

Informations forums :
Inscription : juillet 2007
Messages : 556
Points : 613
Points : 613
Bonjour,

Désolé je viens à peine de voir votre question.
En fait l'explication réside dans le fait que lorsqu'un élément de type Nombre, Décimal, Date est nul dans InfoPath, il possède un attribut "xsi:nil"!
Pour vérifier, il suffit d'enregistrer le formulaire. En ouvrant le xml vous pourrez constater que si votre champ date est vide, il possède cet attribut.

Lorsque vous souhaitez affecter une valeur à ce genre de champ, il faut enlever l'attribut "nil" sur ce même champ.

Voila pourquoi vous êtes obligé de supprimer l'attribut nil avant d'affecter une date.
D'ailleurs pour bien faire, il faudrait remettre l'attribut nil lorsque vous remettez la valeur à vide.

J'avais écrit un article à l'époque sur ce fonctionnement:
http://rmatayron.blogspot.com/2009/0...ribut-nil.html


Cordialement.
__________________
Rémi MATAYRON
MVP InfoPath

N'hésitez pas à visiter mon blog Infopath
billout rm est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/12/2011, 08h45   #4
Candidat au titre de Membre du Club
 
Inscription : novembre 2007
Messages : 44
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 44
Points : 10
Points : 10
Merci beaucoup

Effectivement la c'est plus clair ^^
Logann23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h52.


 
 
 
 
Partenaires

Hébergement Web