Perte du sous-enregistrement courant

Bonjour,

je viens de passer de V13 à V16

j’ai un changement de comportement dans un formulaire

  • j’ai un sous-formulaire
  • quand je clique l’un des sous-enregistrement il devient l’enregistrement courant
  • si je clique sur un bouton (sans action, sans méthode) du formulaire parent, je perd le sous-enregistrement courant
  • en V13 l’enreg courant était conservé

j’ai tout supprimé dans mon formulaire parent (autres pages, méthode formulaire) pour ne garder que le sous-formulaire et le bouton “test”

ça ne change rien, je perd le sous-enregistrement courant

est-ce le nouveau comportement standard ? si oui comment recharger le sous-enregistrement cliqué ?

Bonjour,

Je pense qu’une lecture attentive de la page de la documentation est nécessaire :
http://doc.4d.com/4Dv16R4/4D/16-R4/Lire-cle-sous-enregistrement.301-3317999.fr.html

On y dit très clairement que le “Les sous-tables ne sont plus prises en charge à compter de la version 11 de 4D”. Pour rappel la version 11 a été introduite en 2008, soit il y a presque 10 ans …

Cordialement,

on est bien d’accord, je n’ai plus de sous-table dans mes bases depuis des années

je n’utilise probablement pas le bon terme

c’est un sous-formulaire liste qui m’affiche une autre table de ma base

bref, je viens de découvrir que désormais je dois appeler CHARGER ENREGISTREMENT avant d’utiliser l’enreg cliqué dans le sous-formulaire, ce qui n’était pas nécessaire en V13

Salut Jean Philippe,
j’ai remarqué aussi que la sélection dans les sous formulaires ne se comportait plus de la même façon - genre le bouton supposé agir sur la ligne X agit sur une autre (la première ou aucune, je ne me rappelle plus trop). Le fait qu’il faille exécuter CHARGER est probablement un effet de bord d’une bonne chose en termes d’optimisation…

À dire vrai, je ne me pose plus de question : dès que je vois un sous formulaire, je le remplace par une listbox sélection.

Tu as échappé un mot Arnaud… (il faut être précis ;-))

: Arnaud DE MONTARD

À dire vrai, je ne me pose plus de question : dès que je vois un sous
formulaire liste, je le remplace par une listbox sélection.

Mama mia, une période difficile commence pour moi si tu te mets à corriger mes imprécisions. Je vais demander à Djompolo si elle est partante pour une action de groupe. :lol:

C’est pour éviter aux débutants de penser qu’il ne faut plus utiliser de sous-formulaire (en général) alors que c’est tout le contraire… Et que ton propos ne visait que les formulaires liste. :wink:

J’aime bien couper les cheveux en quatre comme tu le sais… :mrgreen:

C’est pour votre bien… (qui aime bien châtie bien) :razz:

ce groupe ?

[]22015394;“Your comment here…”[/]

Dans ton code, il manque le fait de charger l’enregistrement. Le premier l’est automatiquement suite au chercher, pas le second

Patrick

ENREGISTREMENT SUIVANT([Synchro]) le fait :?: :!:

Si je retire la ligne “Synchro_Maj_Document”, j’ai pas de souci :roll:

Et plus précisément la commande <code 4D>
STOCKER ENREGISTREMENT([Documents])
</code 4D> me fait perdre l’enregistrement chargé dans la table [Synchro]

et si tu ajoutes la ligne CHARGER ENR… ?

testé sans succès

Je pense avoir trouvé…

J’ai une méthode Trigger qui est exécutée en //

c’est mieux ainsi :wink:

Bonsoir Matthieu,

D’une part, on ne sait pas si la recherche initiale est en lecture seulement ou en lecture écriture.

D’autre part, dans une boucle, n’utilisez pas LIBERER ENREGISTREMENT dans la boucle, car cela est fait automatiquement par 4D. Il ne faut demander cela qu’après la fin de boucle, pour libérer le dernier enregistrement, après passage de la table en lecture seulement. De même, votre méthode Synchro_Maj_Document n’a pas besoin de la commande LIBERER ENREGISTREMENT, pour les mêmes raisons.

Cordialement,

JB