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

4D Discussion :

rafraichissement affichage après suppression sous-fiches


Sujet :

4D

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 12
    Points : 11
    Points
    11
    Par défaut rafraichissement affichage après suppression sous-fiches
    Mac OS X - 4D v11 - conversion d'une base programmée en v 6,5

    Bonjour à tous,
    J'ai un problème idiot que je ne parviens pas a régler.
    L'activation d'un bouton destiner à effacer les sous-enregistrements d'une table fonctionne parfaitement sur le formulaire initial (dont l'affichage est rendu obsolète par la taille d'écran du nouveau mac) ne marche pas sur le nouveau formulaire.
    Les données affichées dans le sous-formulaire ne s'effacent pas. Pourtant les données sont bien effacées du disque, ce que je peux vérifier en fermant et ouvrant le formulaire principal ?
    Il semble que le rafraichissement de l'affichage ne se produise pas. Pourtant les routines sont exactement les mêmes dans les deux versions ?
    Un gran dmerci d'avance

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    359
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 359
    Points : 613
    Points
    613
    Par défaut
    Bonjour,
    bonnes fêtes,

    c'est une sous-table ou une table liée ?
    Si c'est une sous-table, elle a été automatiquement convertie en table liée en 4D v11 SQL.
    Quel code contient le bouton sensé supprimer le sous-enregistrement (ou enregistrement lié) ?
    --Steph4D

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    c'est effectivement une sous-table transformée en table liée par 4D.
    Le bouton qui fonctionne avec le format transféré et pas avec le nouveau format contient le code suivant (classique)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    TOUS LES SOUS ENREGISTREMENTS([patient_ordonnance])
     
    Tant que (Sous enregistrements trouves([patient_ordonnance])#0)
    	SUPPRIMER SOUS ENREGISTREMENT([patient_ordonnance])
    	**TOUS LES SOUS ENREGISTREMENTS([patient_ordonnance])
    Fin tant que

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    359
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 359
    Points : 613
    Points
    613
    Par défaut
    J'ai fait le petit test suivant :

    4D 2003 (voir image 1) :
    Créer une petite base avec 1 table ([TABLE1]) contenant 1 sous-table ([TABLE1]Field3) et quelques enregistrements.
    Dans le formulaire d'entrée, à côté du sous-formulaire de la sous-table, il y a un bouton "+" avec action automatique "add subrecord" et un bouton "-" qui a une méthode objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TOUS LES SOUS ENREGISTREMENTS([TABLE1]Field3)
    Tant que (Sous enregistrements trouves([TABLE1]Field3)#0)
    	SUPPRIMER SOUS ENREGISTREMENT([TABLE1]Field3)
    	  `TOUS LES SOUS ENREGISTREMENTS([TABLE1]Field3)
    Fin tant que
    La suppression de tous les sous-enregistrements d'une fiche fonctionne très bien : les sous-enregistrements disparaissent du sous-formulaire et sont réellement supprimés après validation de la fiche.

    Conversion avec 4D v11 SQL (voir image 2) :
    4D convertit automatiquement ma sous-table en table liée. Je ne touche à rien (ni à la structure ni au code). Tout fonctionne comme pour 4D 2003.

    Quelque chose a été modifié après conversion pour ce formulaire qui expliquerait que cela ne fonctionne plus ?
    --Steph4D

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 12
    Points : 11
    Points
    11
    Par défaut problème résolu
    j'ai finalement reprogrammé le bouton avec l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SUPPRIMER SELECTION([patient_ordonnance])
    Je n'avais pas repéré le fait que 4D v11 transforme les sous-tables en table. J'ai donc traité la sous-table comme une table avec les instructions ad hoc.

    Il semble en fait que 4D v11 assure la portabilité lors de la conversion mais sans doute pas lors de la création de nouvelles méthodes.
    En tout cas je n'ai pas d'autre explication.

    Merci à toi Steph. Tu l'as tiré une belle épine du pied !
    Cordialement.
    Pietr.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 25/07/2009, 09h21
  2. Réponses: 6
    Dernier message: 22/05/2009, 21h04
  3. Problème affichage photo après suppression
    Par ThieBEN dans le forum VBA Access
    Réponses: 5
    Dernier message: 13/03/2008, 16h22
  4. Réponses: 4
    Dernier message: 24/08/2007, 16h44
  5. [delphi 4] erreur d'affichage apres l'ouverture d'une fiche 2 fois
    Par manu7901 dans le forum Bases de données
    Réponses: 1
    Dernier message: 16/01/2007, 17h32

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