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

WinDev Discussion :

[WD11] Blocage zone dans une table suivant critère


Sujet :

WinDev

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2002
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur indépendant

    Informations forums :
    Inscription : Mai 2002
    Messages : 231
    Points : 116
    Points
    116
    Par défaut [WD11] Blocage zone dans une table suivant critère
    Bonjour,

    J'ai une table avec plusieurs sur une fenetre dans laquelle il est possible de saisir des montants.
    Je voudrais bloquer la possibilité de modifier le montant si la ligne se retrouve en statut payé ( = 4 )

    J'ai mis en place le code suivant mais soit je bloque la saisie de la colonne pour toutes les lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if table.col_statut = 4 then TABLE.COL_montant[Var_ligne]..Etat =Inactif else 
    TABLE.COL_montant[Var_ligne]..Etat =actif
    La valeur de var_ligne est un increment alimenté à chaque ajout dans la table
    J'alimente la table par programmation

    Merci de votre aide

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2002
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur indépendant

    Informations forums :
    Inscription : Mai 2002
    Messages : 231
    Points : 116
    Points
    116
    Par défaut
    bonjour,

    je reviens sur ma demande en précisant que j'arrive à bloquer toutes les zones de la même colonne de la table mais que lorsque je veux bloquer la zone montant sur une seule ligne cela ne fonctionne pas.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 14
    Points : 16
    Points
    16
    Par défaut Blocage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if table.col_statut = 4 then TABLE.COL_montant[Var_ligne]..Etat =Inactif else 
    TABLE.COL_montant[Var_ligne]..Etat =actif
    Avec ce code ci-dessus, dès qu'une ligne vérifie la condition '4', il te grisera toutes les autres lignes de ta table.
    Voici ce qu'il fallait érire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    pour Var_ligne=1 a tableoccurence(table)
    if table.col_statut[Var_ligne] = 4 then TABLE.COL_montant[Var_ligne]..Etat =Inactif else 
    TABLE.COL_montant[Var_ligne]..Etat =actif
    fin

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2002
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur indépendant

    Informations forums :
    Inscription : Mai 2002
    Messages : 231
    Points : 116
    Points
    116
    Par défaut
    Bonjour,
    Merci pour ta réponse mais le code saisi dans le forum est erroné
    Voici le code exact
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    FOR Var_i =1 TO Var_ligne
    	IF TABLE_TEOM.COL_statut[Var_i] = 4 THEN 
    		TABLE_TEOM.COL_TEOM_montant_total[Var_i]..Etat =Inactif
    		TABLE_TEOM.COL_statut[Var_i]..Etat =Inactif  
    	ELSE
    		TABLE_TEOM.COL_TEOM_montant_total[Var_i]..Etat =Actif
    		TABLE_TEOM.COL_statut[Var_i]..Etat =Actif  
    	END
    END
    Je prends bien en compte la ligne spécifique mais impossible de bloquer la cellule montant et statut de la table sur une ligne alors que je peux le faire sur toute la colonne de la table

    Je ne comprends pas le problème

    Philippe

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 14
    Points : 16
    Points
    16
    Par défaut Blocage-zone
    Bonjour
    Si ton problème persiste, le mieux est de nous envoyer sur une copie décran de ta fenètre avec la tablce concernée afin que nous voyons clairement la description de ta table.
    Coordialement merci!

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,

    Je crois que tu veux utiliser une "nouveauté WD12".

    A confirmer.
    _

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2002
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur indépendant

    Informations forums :
    Inscription : Mai 2002
    Messages : 231
    Points : 116
    Points
    116
    Par défaut WD11 Blocage zone
    Bonjour,

    Cette fonctionnalité est présente dans WD11
    car TABLE_TEOM.COL_TEOM_montant_total[Var_i]..Etat =Inactif fonctionne pour l'ensemble de la table mais ne serait pas utilisable sur une seule ligne ???

    Dommage ...

    Philippe

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,

    J'utilise WinDev 12 et j'ai essayé de reproduire ton problème sur une cellule d'une table.

    Dans mon test, l'état Inactif est inopérant.
    En revanche, l'état AffichageSansSélection permet de rendre inaccessible la cellule concernée.
    L'état Grisé fonctionne aussi.
    Citation Envoyé par philippe30 Voir le message
    Cette fonctionnalité est présente dans WD11
    car TABLE_TEOM.COL_TEOM_montant_total[Var_i]..Etat =Inactif fonctionne pour l'ensemble de la table mais ne serait pas utilisable sur une seule ligne ???

    Dommage ...
    Peut-être pas !?...
    Tiens nous au courant.
    _

  9. #9
    Membre régulier
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2002
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur indépendant

    Informations forums :
    Inscription : Mai 2002
    Messages : 231
    Points : 116
    Points
    116
    Par défaut blocage d'une zone dans une table
    J'ai trouvé une méthode dont voici le détail

    Il faut mettre le code dans la sélection d'une ligne de la table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    IF TABLE_TEOM.COL_statut[Var_i] = 4 THEN 
    		TABLE_TEOM.COL_TEOM_montant_total[Var_i]..Etat =Inactif
    		TABLE_TEOM.COL_statut[Var_i]..Etat =Inactif  
    	ELSE
    		TABLE_TEOM.COL_TEOM_montant_total[Var_i]..Etat =Actif
    		TABLE_TEOM.COL_statut[Var_i]..Etat =Actif  
    	END
    Ainsi lorsque lorsque l'on veux saisir dans une cellule de la table, le code contrôle les paramétres et bloque ou débloque la cellule.


    Merci JBO , je vais regarder aussi du coté de l'affichage sans sélection et du grisé

    Philippe

  10. #10
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Dans le code ci-dessus, en WD10 ça ne marchera pas car on ne peut pas inactivé qu'une seule cellule, mais toute la colonne. Il faut donc enlever [Var_i] lors des changements d'état !

  11. #11
    Membre régulier
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2002
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur indépendant

    Informations forums :
    Inscription : Mai 2002
    Messages : 231
    Points : 116
    Points
    116
    Par défaut WD11 Cellule bloquée dans une table
    Tu as raison Kwasin, il s'agit d'un mauvais copier coller
    Le code exact est le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    IF TABLE_TEOM.COL_statut = 4 THEN 
            TABLE_TEOM.COL_TEOM_montant_total..Etat =Inactif
            TABLE_TEOM.COL_statut..Etat =Inactif  
        ELSE
            TABLE_TEOM.COL_TEOM_montant_total..Etat =Actif
            TABLE_TEOM.COL_statut..Etat =Actif  
        END
    Mea culpa pour le Ctrl-C et Ctr-V

    Pour ce qui est de l'affichage du grisé ou de l'affichage sans sélection , je préfère la méthode indiqué ci dessus



    Philippe

Discussions similaires

  1. Recherche dans une table selon critères
    Par Senkai dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/05/2015, 05h32
  2. [XL-2003] Suppression des donnnées dans une table suivant liste de N° d'Id
    Par Benoit Schwob dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 18/06/2011, 16h15
  3. Réponses: 4
    Dernier message: 22/09/2010, 09h11
  4. Réponses: 6
    Dernier message: 16/02/2009, 13h11
  5. Réponses: 8
    Dernier message: 20/06/2005, 16h10

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