Modifie

4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant

version 2004 (Modifiée)

Note de compatibilité

Cette fonction est conservée pour des raisons de compatibilité uniquement car elle s'appuie sur l'ancienne gestion des cycles d'exécution, elle-même obsolète depuis la version 6 (cf. commandes Avant, Pendant, etc.). Dans la plupart des cas, il est désormais fortement conseillé d'utiliser la fonction Evenement formulaire et de tester si elle retourne l'événement Sur données modifiées.


Modifie (champ) Booléen

ParamètreTypeDescription
champChampChamp dont vous voulez tester la modification
RésultatBooléenVrai si une nouvelle valeur a été assignée au
champ, sinon Faux

Description

Modifie retourne Vrai si une valeur a été assignée par programmation au champ champ ou s'il a été modifié lors de la saisie de données. La commande Modifie ne fonctionne que lorsqu'elle est appelée dans le cadre d'une méthode formulaire (ou d'une sous-méthode appelée par la méthode formulaire).

Attention, cette commande ne retourne une valeur significative qu'à l'intérieur d'un même cycle d'exécution. Elle est notamment remise à Faux pour tous les événements formulaires correspondant à l'ancien cycle d'exécution Pendant.

Dans le cas de la saisie de données, un champ est considéré comme modifié à partir du moment où un utilisateur l'édite (et change ou non sa valeur originale) puis le quitte pour un autre champ ou pour cliquer sur un objet de formulaire. Notez que le fait qu'un utilisateur active puis quitte un champ à l'aide de la touche Tabulation ne suffit pas en soi à ce que Modifie retourne Vrai. Le champ doit avoir été réellement modifié pour que Modifie retourne Vrai.

Dans le cas de l'exécution d'une méthode, un champ est considéré comme modifié si une valeur lui a été assignée (différente ou non de sa valeur précédente).

Note : La commande Modifie retourne toujours Vrai après l'exécution des commandes EMPILER ENREGISTREMENT et DEPILER ENREGISTREMENT.

Dans tous les cas, pour savoir si la valeur d'un champ a été effectivement modifiée, utilisez la commande Ancien.

Note : Bien que la fonction Modifie puisse être appliquée à tout type de champ, si vous l'utilisez conjointement avec la fonction Ancien, vous devez dans ce cas tenir compte des restrictions liées à cette fonction. Reportez-vous à la description de la commande Ancien.

Pendant la saisie de données, il est généralement plus pratique d'effectuer des opérations dans des méthodes objet que d'utiliser la fonction Modifie dans des méthodes formulaires. Comme une méthode objet reçoit l'événement Sur données modifiées à chaque fois qu'un champ est modifié, utiliser une telle méthode équivaut à appeler Modifie dans une méthode formulaire.

Exemples

(1) L'exemple suivant teste si le champ [Commandes]Quantité ou le champ [Commandes]Prix a été modifié. Si c'est le cas, le champ [Commandes]Total est recalculé :

   Si ((Modifie ([Commandes]Quantité) | (Modifie ([Commandes]Prix))
      [Commandes]Total := [Commandes]Quantité * [Commandes]Prix
   Fin de si

Notez que le même résultat aurait pu être obtenu en utilisant la seconde ligne de cette méthode en tant que méthode objet des champs [Commandes]Quantité et [Commandes]Prix dans le cadre de l'événement formulaire Sur données modifiées.

(2) Vous sélectionnez un enregistrement de la table [uneTable], puis vous appelez plusieurs sous-routines qui sont susceptibles de modifier le champ [uneTable]Champ important mais sans provoquer de sauvegarde de l'enregistrement. A la fin de la méthode principale, vous pouvez utiliser la commande Modifie pour déterminer si vous devez stocker l'enregistrement :

      ` L'enregistrement a été sélectionné comme enregistrement courant
      ` Puis vous effectuez des actions à l'aide des sous-routines
   FAIRE QUELQUE CHOSE
   FAIRE AUTRE CHOSE 
   NE PAS OUBLIER DE FAIRE CA
      ` ...
      ` Enfin, vous testez le champ pour déterminer s'il faut stocker l'enregistrement
   Si (Modifie([uneTable]Champ important))
      STOCKER ENREGISTREMENT([uneTable])
   Fin de si

Référence

Ancien, Evenement formulaire.


4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant