IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

InfoPath .NET Discussion :

Test sur un jour de la semaine [Débutant]


Sujet :

InfoPath .NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2014
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Test sur un jour de la semaine
    Bonjour, j'aurai besoin d'un petit coup de main sur mon formulaire.

    Pour faire simple c'est un formulaire de demande qui est rempli par des utilisateurs et envoyé par mail une fois rempli.

    Dans ce formulaire j'ai un champ qui récupère la date du jour par la fonction auj()
    Et plus loin j'ai deux sélecteurs de date pour choisir une date de début et une date de fin.

    Le contrôle que je souhaiterai mettre en place est le suivant :
    Si dans la date du jour, le jour est "vendredi", et si l'utilisateur sélectionne le lundi dans le sélecteur de date de début : Je souhaite afficher un message d'alerte.
    Mon souci réside dans le test sur le "vendredi", je n'arrive pas à le faire vu que le format de base de la date est "AAAA-MM-JJ"

    J'ai vu qu'on pouvait peut-être passer par du code Javascript ou vb mais je ne sais absolument pas comment le faire...

    Donc si quelqu'un a une idée je suis preneur

  2. #2
    Membre éprouvé
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour,

    Vous souhaitez réaliser le contrôle sur le jour de la semaine plutôt que sur la date elle-même? C'est une demande peu courante...
    Nativement dans IP, pas de possibilité de pouvoir récupérer le jour associé à la date. Par contre, vous pouvez facilement réaliser ceci en .Net.
    Pour cela, allez dans l'onglet programmation de votre InfoPath et ajouter le type de code que vous souhaitez utiliser (C# ou VB.net).

    Ensuite, vous pourrez réaliser des contrôles de cohérence de données en utilisant les méthodes suivantes : http://www.bizsupportonline.net/info...a-infopath.htm

    Cordialement,
    Rémi MATAYRON
    N'hésitez pas à visiter mon blog dédié à InfoPath et SharePoint : http://rmatayron.blogspot.com/

    Pour plus de visibilité sur le forum, marquer la question en [Résolu] lorsque la réponse fournie vous convient.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2014
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Bonjour billout rm,

    Oui mon contrôle doit bien se faire sur le jour de la semaine et non sur la date, justement parce que j'aimerai ajouter un test si la date du jour est le vendredi et de ce fait bloquer l'accès à une zone.

    Un peu particulier je le conçois ^^

    Merci pour ton lien, je vais consulter ça et reviens vers vous si j'ai des souci (ce qui risque d'arriver ...)

  4. #4
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2014
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    après avoir fait quelques tests, je n'ai vraiment aucune idée de la manière dont je dois faire mon test, ne connaissant pas C# et très peu VB.net (j'ai des notions en vbscript mais c'est encore différent ...)

    Si vous pouvez me donner un coup de main je suis preneur.

    Pour réexpliquer correctement le contexte et mon problème, je réalise un formulaire de demande de prêt de matériel. L'utilisateur peut faire une demande mais il faut un délai minimum de 48h (2 jours ouvrés) entre le jour de la demande et la date souhaitée.


    J'ai donc un champ date qui récupère la date du jour affichée à l'écran sous le format "jeudi 16 octobre 2014"
    Il y en dessous une section regroupant une zone de texte et deux champs date (début et fin de période). Le champ texte est libre et non contrôlé en saisie.
    Pour le champ date de début : si l'utilisateur sélectionne un lundi ou un mardi et que le jour actuel est un vendredi, dans ce cas j'affiche un message d'information à l'utilisateur (pour lui indiquer que le délai est trop court pour traiter sa demande).

    Est-ce que vous avez des idées ?
    Merci par avance

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Août 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    Une idée directement dans Infopath :
    tu peux ajouter un champ texte1 qui va être alimenté par une règle.
    Quand le champ date est modifié par l'utilisateur, ta règle va définir la valeur du champ texte1 et y indiquer le jour de la semaine.
    La fonction serait celle ci mais il faut l'adapter à Infopath :

    Colonne1 Formule Description (résultat possible)
    19-févr.-2007 =TEXTE(JOURSEM([Colonne1]), "dddd") Calcule le jour de la semaine pour la date et retourne le nom complet du jour (Lundi)

    Pareil pour ressortir le jour en fonctions de aujourd'hui : texte2.

    Ensuite tu met une nouvelle règle : si ton champ texte1 = lundi ou mardi et que ton texte2=vendredi alors tu affiches un message.

    à voir si ça peut t'aider.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour,

    En C#, rien de plus simple. Il faut utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string sdayNow = DateTime.Now.DayOfWeek.ToString();
    Il vous suffit juste d'associer cette valeur à un champ du formulaire par le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.MainDataSource.CreateNavigator().SelectSingleNode("//my:Field", NamespaceManager).SetValue(sdayNow);
    Ainsi vous pourrez afficher le jour actuel dans votre formulaire (et surtout faire des règles de gestion sur cette valeur).


    Cordialement.
    Rémi MATAYRON
    N'hésitez pas à visiter mon blog dédié à InfoPath et SharePoint : http://rmatayron.blogspot.com/

    Pour plus de visibilité sur le forum, marquer la question en [Résolu] lorsque la réponse fournie vous convient.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2014
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Bonjour et merci pour vos réponses.

    j'ai testé ta solution billout rm, j'arrive bien à afficher le jour de la semaine dans un champ texte. Le jour est en anglais mais pas de souci ça ne me dérange pas pour ma règle.

    J'avance plutôt bien grâce à vous, mais je ne vois pas comment transformer en texte le jour que l'utilisateur saisit dans la date de début de période.

    Exemple :
    Nous sommes le vendredi 17 octobre 2014
    L'utilisateur choisit en date de début le lundi 20 octobre 2014

    Le vendredi s'affiche correctement dans un champ texte, mais comment afficher le lundi dans un autre champ texte ? pour pouvoir faire un test sur les deux ?

    Désolé de demander pour tout et n'importe quoi mais je ne connais pas le C#

  8. #8
    Membre éprouvé
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Points : 1 219
    Points
    1 219
    Par défaut
    Avec du code, il suffit de créer on évènement "OnChanged" sur le secteur de date (allez dans l'onglet développeur pour voir cet évènement une fois que vous êtes sur le contrôle).
    Il suffira ainsi de récupérer la valeur saisie, de calculer le jour et de renvoyer dans un autre champ du formulaire.
    Voici un exemple de code sur l'évènement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    string strUserDate = this.MainDataSource.CreateNavigator().SelectSingleNode("//my:FieldDateUser", NamespaceManager).Value;
    if(!String.IsNullOrEmpty(strUserDate))
    {
         string sdayUser = DateTime.Parse(strUserDate).DayOfWeek.ToString();
         this.MainDataSource.CreateNavigator().SelectSingleNode("//my:DayInfoPath", NamespaceManager).SetValue(sdayNow);
    }
    Rémi MATAYRON
    N'hésitez pas à visiter mon blog dédié à InfoPath et SharePoint : http://rmatayron.blogspot.com/

    Pour plus de visibilité sur le forum, marquer la question en [Résolu] lorsque la réponse fournie vous convient.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2014
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Merci pour ton aide billout rm, ça fonctionne correctement, juste une erreur dans la dernière ligne de ton code : tu as indiqué sdayNow au lieu de sdayUser. en tout cas j'ai dû modifier cette variable pour que ça marche ^^

    Je vais maintenant voir si ça répond correctement à mon besoin, je te remercie infiniment pour ton aide.

    J'indique dans le sujet que c'est résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Jour de la semaine sur interval de date
    Par Naaby dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/06/2012, 09h58
  2. Nb de jours d'une semaine a cheval sur 2 mois ?
    Par mederik dans le forum Cognos
    Réponses: 0
    Dernier message: 16/04/2010, 15h19
  3. Nb de jours d'une semaine a cheval sur 2 mois ?
    Par mederik dans le forum SQL
    Réponses: 2
    Dernier message: 16/04/2010, 15h08
  4. Test du jour dans la semaine
    Par Patchain dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 07/04/2010, 12h21
  5. test sur jour de la semain
    Par munity dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 29/01/2010, 12h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo