PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → cellule dans un champs table modifiable par programmation
cellule dans un champs table modifiable par programmation
Débuté par FERNANDO, 25 jan. 2023 18:50 - 6 réponses
Membre enregistré
42 messages
Popularité : +1 (1 vote)
Posté le 25 janvier 2023 - 18:50
Bonjour,

Savez-vous s'il est possible de rendre une cellule dans un champs table (saisie texte) modifiable dynamiquement par programmation ?
Par exemple si une cellule d'une ligne contient une certaine valeur alors une autre cellule est modifiable ou pas.
L'idéal serait de pouvoir écrire :
si autreColonne[ligne] = "OK" alors maColonne[ligne].ensaisie = vrai

Connaissez vous une technique pour faire cela ?

En vous remerciant d'avance pour vos réponses.

Fernando.
Membre enregistré
112 messages
Popularité : +1 (1 vote)
Posté le 25 janvier 2023 - 19:41
Bonjour,

si autreColonne[ligne] = "OK" alors maColonne[ligne]..Etat = Actif // Actif ou AffichageSansSélection ou Grisé

Reste plus qu'à trouver l'endroit pour mettre la ligne de code car il n'y a pas d'événement associé à la cellule qui recevrait le "ok". On a juste entrée, sortie ou sélection d'une ligne.
Membre enregistré
950 messages
Popularité : +53 (63 votes)
Posté le 25 janvier 2023 - 21:01
Bonjour,
a la fin d'initialisation de ta fenetre
pour i = 1 _a_ MAtable..occurence
SI MAtable[i].maColonne = "OK" ALORS
MAtable[i].maColonne..Etat = Actif
SINON
MAtable[i].maColonne..Etat = AffichageSansSélection
FIN
FIN


Jordan
Membre enregistré
3 889 messages
Popularité : +227 (347 votes)
Posté le 25 janvier 2023 - 23:24
Bonjour,
Dans "Affichage d'une ligne", on gagne une boucle.

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
16 messages
Posté le 26 janvier 2023 - 11:36
bonjour
Si c'est une table mémoire alimenter par un tableajouteligne()
il est possible de codifier la programmation de la colonne de la manière suivante :
indicedeligne est entier
pour TOUT masourcededonnée
TableAjouteLigne(matable,marubrique1, ma rubrique2, marubriquen)
indicedeligne++
SI MAtable[indicedeligne ].maColonne = "OK" ALORS
MAtable[indicedeligne].maColonne..Etat = Actif
SINON
MAtable[indicedeligne].maColonne..Etat = AffichageSansSélection
FIN

en espérant vous avoir apporté mon aide.
Bon développement
Membre enregistré
112 messages
Popularité : +1 (1 vote)
Posté le 26 janvier 2023 - 11:52
bonjour,

Si la cellule à activer ou désactiver se fait au moment où le texte est modifié par saisie dans la table, il faut utiliser l'événement de la colonne "à chaque modification".

SI MAtable[IndiceEnCours].maColonne = "OK" ALORS
MAtable[IndiceEnCours].monAutreColonne..Etat = Actif
SINON
MAtable[IndiceEnCours].monAutreColonne..Etat = AffichageSansSélection
FIN
Membre enregistré
42 messages
Popularité : +1 (1 vote)
Posté le 29 janvier 2023 - 18:15
Bonsoir,

Je tiens à vous remercier tous pour vos réponses et vos aides qui m'ont permis de résoudre mon problème.
Curieusement il m'a fallu apporter 2 modifications à vos conseils pour que mon projet fonctionne:
1) les colonnes doivent être initialement en saisie (pas en affichage seulement) avant donc la modification dynamique sinon cela ne marche pas.
2) le code de modification dynamique dans mon projet est dans l'évènement init de la table et pas de la fenêtre sinon cela ne marche pas non plus.

En vous souhaitant de bons et beaux développements.
Fernando.