|
| Détection d'un champ saisi vide ou avec texte |
| Iniciado por Anthony, 07,abr. 2019 12:09 - 5 respuestas |
| |
| | | |
|
| |
Miembro registrado 108 mensajes |
|
| Publicado el 07,abril 2019 - 12:09 |
Bonjour à tous,
Dans une fenêtre interne je détecte facilement si un champ a été modifié ou pas. Dans cette même fenêtre, j'ai deux trois champs que je remplis en ouvrant d'abord une autre fenêtre, puis en choisissant (double clic) une ligne dans une table. en double cliquant sur une ligne, les informations sélectionnées sont envoyées dans les champs de ma fenêtre principale, tout se passe correctement, seulement, Windev ne détecte pas que les champs ont été modifiés... J'imagine que cela va trop vite ou alors que ce n'est pas une saisi mais un "coller".
Je sèche là, je ne sais pas comment détecter que le champ comporte bien du texte.
Quelqu'un aurait-il une idée ? J'ai effectué des recherches mais rien de concret...
Je vous remercie de votre aide. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.321 mensajes |
|
| Publicado el 07,abril 2019 - 15:39 |
Bonjour,
Il suffit de stocker la valeur du champ dans la propriété ..Note du champ (à l'initialisation et à la modification). cf. https://doc.pcsoft.fr/fr-FR/index.awp?2510085 Il n'y a plus qu'à comparer la valeur du champ à celle stockée pour savoir si elle a été modifiée par programmation.
-- Bon dev, Jean-Pierre |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.362 mensajes |
|
| Publicado el 07,abril 2019 - 17:30 |
Bonjour, Cela peut se faire de la manière suivante : 1-Fenêtre appelée 1-1 Code de la fenêtre Partie Initialisation
Procedure FEN_FenêtreAppelée(sChampConcerné est chaîne) bChampModifié est booléen
1-2 Code du champ table Dans la partie Sélection d'une ligne (on suppose que les données du champ concernée se trouvent dans COL_Champ)
SI TABLE_Sélection.COL_Champ<>sChampConcerné ALORS bChampModifié=Vrai FIN MaFenêtre..ValeurRenvoyée=bChampModifié
2-Utilisation
SI Ouvre(FEN_FenêtreAppelée,SAI_ChampConcerné) ALORS SINON FIN
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 108 mensajes |
|
| Publicado el 07,abril 2019 - 17:45 |
Merci Jean-Pierre de ta réponse rapide, je vais étudier ça !
Merci également Voroltinquo pour ton explication avec le code !
(Je vous tiendrai au courant).
Bon dimanche ! |
| |
| |
| | | |
|
| | |
| |
| Publicado el 08,abril 2019 - 08:35 |
Tu peux également passer par des variables déclarées en global que tu associent aux champs en saisies et aux rubriques de la table. Ainsi à chaque fermeture de la fenêtre appelée tu peux comparer leurs contenus et savoir précisément se qui à été modifié ou pas et ce champ par champ.
ChampEnSaisie1, ChampEnSaisie2 sont des chaînes Rubrique1Table, Rubrique2Table sont des chaînes
ChampEnSaisie1 = "" ChampEnSaisie2 = "" Rubrique1Table = "" Rubrique2Table = ""
ChampEnSaisie1 = Saisie1 ChampEnSaisie2 = Saisie2
Rubrique1Table = Table.Rubrique1 Rubrique2Table = Table.Rubrique2
ProcédureComparaison()
SI ChampEnSaisie1 <> Table.Rubrique1 ALORS SINON FIN
SI ChampEnSaisie2 <> Table.Rubrique2 ALORS SINON FIN
SI ChampEnSaisie1 <> Table.Rubrique1 ET ChampEnSaisie2 <> Table.Rubrique2 SINON FIN
Facile à mettre en œuvre et précise, à l'ancienne quoi...
Bon Dev Alain |
| |
| |
| | | |
|
| | |
| |
| Publicado el 08,abril 2019 - 09:34 |
Ou alors tu déclare les champs alimentés comme étant modifiés: MonChamp..modifié=vrai |
| |
| |
| | | |
|
| | | | |
| | |
|