1. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

WD BorneMin et Bornemax: Utilisation sur champ date possible ?

Discussion dans 'Windev' créé par LAPIPE2018, Juil 30, 2018.

  1. LAPIPE2018

    LAPIPE2018 Active Member
    MEMBRE WX

    Inscrit:
    Fev 17, 2018
    Messages:
    657
    J'aime reçus:
    232
    Bonsoir,
    est-il possible d'utiliser le les propriétés BorneMin et BorneMax sur un champ date ?
    [windev]SAI_Date..BorneMin="20170101"
    SAI_Date..BorneMax="20170630"[/windev]
     
    Tags:
  2. Fouedusa

    Fouedusa Active Member

    Inscrit:
    Avr 22, 2018
    Messages:
    141
    J'aime reçus:
    120
    Bonjour;
    Comment les utiliser ??
    j'ai tester ce code avec deux champs de type date :
    Code (Text):
    SAI_SansNom1..BorneMin="20180701"
    SAI_SansNom1..BorneMax="20180731"

    SI SAI_SansNom2>SAI_SansNom1..BorneMax ALORS
        SAI_SansNom2= SAI_SansNom1..BorneMax
    SINON
        SI SAI_SansNom2<SAI_SansNom1..BorneMin ALORS
            SAI_SansNom2= SAI_SansNom1..BorneMin
        FIN
    FIN
     
    ça fonctionne

    Bon Dev.
     
    joker apprécie ceci.
  3. channibal

    channibal Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 22, 2018
    Messages:
    210
    J'aime reçus:
    277
    Malheureusement la gestion automatique des Bornes Max et Min sur les champs de saisi de type date est impossible (elle est possible seulement pour le type durée)

    Pour contourner ceci tu peux passer par le bouton calendrier, là Les Bornes Min et Max marchent très bien :

    [​IMG]

    Et pour interdire la saisi et forcer le lancement de la calendrier

    [​IMG]

    Bon dev
     
    joker apprécie ceci.
  4. joker

    joker New Member
    MEMBRE WX

    Inscrit:
    Jan 30, 2018
    Messages:
    0
    J'aime reçus:
    14

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Malheureusement la gestion automatique des Bornes Max et Min sur les champs de saisi de type date est impossible (elle est possible seulement pour le type durée)
    ...
    Bon dev
    Cliquez pour agrandir...

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour;
    Comment les utiliser ??
    j'ai tester ce code avec deux champs de type date :
    Code (Text):
    SAI_SansNom1..BorneMin="20180701"
    SAI_SansNom1..BorneMax="20180731"

    SI SAI_SansNom2>SAI_SansNom1..BorneMax ALORS
        SAI_SansNom2= SAI_SansNom1..BorneMax
    SINON
        SI SAI_SansNom2<SAI_SansNom1..BorneMin ALORS
            SAI_SansNom2= SAI_SansNom1..BorneMin
        FIN
    FIN
     
    ça fonctionne
    Bon Dev.
    Cliquez pour agrandir...
    ;)

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    ça dépend des cas sur "les champs de saisi de type date"

    Dans le fichier ZIP ci-joint,
    c'est une fenêtre faite avec Wd20 66p qui montre une sélection de date entre 2 dates :)

    C'est le code appliqué de

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    :)

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     

    Fichiers attachés:

  • channibal

    channibal Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 22, 2018
    Messages:
    210
    J'aime reçus:
    277

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ;)

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    ça dépend des cas sur "les champs de saisi de type date"

    Dans le fichier ZIP ci-joint,
    c'est une fenêtre faite avec Wd20 66p qui montre une sélection de date entre 2 périodes :)

    C'est le code appliqué de

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    :)

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Cliquez pour agrandir...
    Oui mais ça n'a rien a voir avec la gestion automatique des bornes Min et Max

    [​IMG]

    Normalement le contrôle se fait automatiquement par le programme apres un renseignement des bornes via l’éditeur propriété du champs ou par programmation.

    Ce que vous avez fait c'est un simple contrôle de saisi par programmation sur le champs date qui peut se faire par :


    Code (Text):
    dBorneMin est une Date = ChaîneVersDate("01/01/2017")
    dBorneMax est une Date = ChaîneVersDate("30/06/2017")


    SI   SAI_Date < dBorneMin _OU_ SAI_Date > dBorneMax ALORS
        SAI_SansNom3 = "Pas OK <<<<<"
        RepriseSaisie(SAI_Date)
    SINON
        SAI_SansNom3 = " Date OK "  
    FIN
     
    Regarde le résultat avec un champs de type numérique par exemple qui attend la saisie de nombre d'heures compris entre 1 et 24 (le contrôle se fait automatiquement )
    Or sur le champs de type date, renseigner les 2 Bornes n'a aucun effet et le contrôle ne se fait pas automatiquement, malgré que dans les propriétés du champs date on trouve les 2 Bornes mais ils sont sans effet, voila :)

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
    joker et suenodesign aiment ça.
  • LAPIPE2018

    LAPIPE2018 Active Member
    MEMBRE WX

    Inscrit:
    Fev 17, 2018
    Messages:
    657
    J'aime reçus:
    232
    Bonjour à Tous, effectivement je parlais de la gestion automatique comme pour les numériques.
    Merci

    Bonjour
    Je pense qu'on peut le faire en passant par une fenêtre Modèle, qui gère tous les champs dates avec les bornes et une fonction de controle systématique. Une procédure interne et une surcharge du champ en question avec une procédure interne .
    J'y pense vraiment
     
    #6 LAPIPE2018, Juil 31, 2018
    Dernière édition par un modérateur: Juil 31, 2018
    channibal apprécie ceci.
  • Fouedusa

    Fouedusa Active Member

    Inscrit:
    Avr 22, 2018
    Messages:
    141
    J'aime reçus:
    120
    Bonjour;
    On peut avoir un résultat en utilisant une Procédure (Fonction)

    Exemple :

    Code (Text):
    PROCEDURE ValidationDate(champsdate , dateMin, dateMax sont des chaînes)
    SI champsdate>dateMax ALORS
        champsdate=dateMax
    SINON
        SI champsdate<dateMin ALORS
            champsdate=dateMin
        FIN
    FIN
    RENVOYER champsdate
     
    le code initialisation du champ Date :
    Code (Text):
    MoiMême..BorneMin = "20180701"
    MoiMême..BorneMax = "20180731"
    Le code de sortie du champ Date :
    Code (Text):
    MoiMême = ValidationDate(MoiMême, MoiMême..BorneMin, MoiMême..BorneMax)
    Bon Dev.
     
    joker, suenodesign et WX1331 aiment ça.
  • channibal

    channibal Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 22, 2018
    Messages:
    210
    J'aime reçus:
    277

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour
    Je pense qu'on peut le faire en passant par une fenêtre Modèle, qui gère tous les champs dates avec les bornes et une fonction de controle systématique. Une procédure interne et une surcharge du champ en question avec une procédure interne .
    J'y pense vraiment
    Cliquez pour agrandir...
    Voici un modèle vite fait (a améliorer)

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Bon Dev.
     
  • LAPIPE2018

    LAPIPE2018 Active Member
    MEMBRE WX

    Inscrit:
    Fev 17, 2018
    Messages:
    657
    J'aime reçus:
    232
    Bonjour,
    j'essaie de voir ce que

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    a fait, mais l'interêt c'est pouvoir le généraliser. Je vais continuer, par rapport à WDControleDate_W22, il faudrait probablement remplacer sai_date du modèle par une variable champ de type date, ensuite utiliser les procédure suivante :
    [windev]lechamp est un Champ
    lechamp..Traitement[trtSortie]..Après="procedure post traitement"
    lechamp..Traitement[trtInit]..Avant="procedure initialisation"
    [/windev]
    C'est pour ça qu'il faille regarder les closures et les procedures interne.
    Ensuite, on va juste déclarer les champs dates concernées et leur procédure de traitement.
    J'essaie de lire progressivement
     
  • channibal

    channibal Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 22, 2018
    Messages:
    210
    J'aime reçus:
    277
    Une petite amélioration ;)

    [​IMG]


    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!




    Bon Dev.
     
    #10 channibal, Juil 31, 2018
    Dernière édition: Juil 31, 2018
    joker et suenodesign aiment ça.
  • LAPIPE2018

    LAPIPE2018 Active Member
    MEMBRE WX

    Inscrit:
    Fev 17, 2018
    Messages:
    657
    J'aime reçus:
    232
    Bonsoir,
    Essayez ceci et améliorer

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Pour exploiter, c'est simple
    1-Importer le composant Interne
    2-appliquer le modèle sur la fenêtre
    3-déclarer les variables min et max
    3-dans l'initialisation, appelet dateajoute(champdate concerné, date minimal, datemaximal)
    Ca devrait aller
     
    #11 LAPIPE2018, Juil 31, 2018
    Dernière édition par un modérateur: Juil 31, 2018
    joker apprécie ceci.
  • Fouedusa

    Fouedusa Active Member

    Inscrit:
    Avr 22, 2018
    Messages:
    141
    J'aime reçus:
    120

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Est-ce possible de poster le code et les images de ce que vous avez fait, pour pouvoir les reproduire en version 20.
    merci d'avance.

    Foued
     
    joker apprécie ceci.
  • LAPIPE2018

    LAPIPE2018 Active Member
    MEMBRE WX

    Inscrit:
    Fev 17, 2018
    Messages:
    657
    J'aime reçus:
    232
    Bonsoir

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ,
    La fenêtre Fen_Bulle n'est pas la même. C'est le composant Interne, tu suis la procédure de déploiement simplement. C'est le comosant en version 20
     

    Fichiers attachés:

    joker et Fouedusa aiment ça.
  • Partager cette page

    Chargement...