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

WinDev Discussion :

Suppression enregistrement après travail sur un tableau


Sujet :

WinDev

  1. #1
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 219
    Points : 72
    Points
    72
    Par défaut Suppression enregistrement après travail sur un tableau
    Bonjour,

    Désolé pour le titre pas trop clair, mais je ne savais pas trop comment formuler ça.

    Je vais essayer de m'expliquer.

    J'ai 1 fichier de RDV et 1 fichier de Travaux demandé RDV. Les 2 évidement lié.
    Par mon planning, je cré un rdv dans lequel je défini les travaux dans un tableau. Ci dessous le code de bouton de validation/modification.
    Si je reviens sur mon rdv, je recharge bien mon tableau et mes infos, et j'autorise la suppression des lignes dans le tableau (Je n'ai pas précisé mais la 1ere colonne est l'ID de RDV Travaux demandé)

    Comment je peux savoir que la ligne est à supprimé puisqu'elle n'est plus là?
    Pour le moment je supprime tout via une requête de suppression en re cré uniquement le contenu du tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    EcranVersFichier()
    RDV.DateDebutRDV=SAI_DateArrivée+SAI_HeureArrivée+"00000"
    RDV.DateFinRDV=SAI_DateRestitution+SAI_HeureRestitution+"00000"
     
    SI 	gRDV<>Null ALORS
    	RDV.NumClient=CLIENT.NumClient
    	RDV.IDVEHICULE=VEHICULE.IDVEHICULE
    	HEnregistre(RDV)
     
    SINON 
    	HExécuteRequête(REQ_Suppr_RDV_TD,hRequêteDéfaut,RDV.IDRDV) // On vide les Travaux demandé
     
    	HModifie(RDV)
    FIN
     
    POUR TOUT LIGNE DE TABLE_RDV_TD // On cré les travaux demandé
    	RDVTD.IDRDV=RDV.IDRDV
    	RDVTD.NumForfait=TABLE_RDV_TD.COL_NumForfait
    	RDVTD.DesignationArticle=TABLE_RDV_TD.COL_Designation
    	RDVTD.Quantitée=TABLE_RDV_TD.COL_Quantitée
    	HAjoute(RDVTD)
    FIN
     
     
     
    Ferme()


    Merci

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Une solution serait de mémoriser les lignes qui vont être supprimées (idcleunik), exécuter la requête puis supprimer les lignes du tableau correspondant aux lignes supprimées.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #3
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 219
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    Une solution serait de mémoriser les lignes qui vont être supprimées (idcleunik), exécuter la requête puis supprimer les lignes du tableau correspondant aux lignes supprimées.
    C'est un peu ce que je me suis dis hier soir. A chaque suppression de ligne, remplir une chaine ou autre élément avec les ID supprimés puis traiter cette chaine.

    idcleunik?

    Merci

  4. #4
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Citation Envoyé par Nicos77 Voir le message
    idcleunik?
    Lorsque tu crées un fichier dans l'analyse, c'est l'identifiant automatique créé. Il est toujours en clé unique.

    Tu crées une colonne invisible dans ton tableau contenant cette valeur.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 397
    Points
    9 397
    Par défaut
    Pour gérer les suppressions de lignes, tu es plus ou moins obligé de trouver des contournements.

    Une solution que j'avais utilisée dans un cas similaire, c'était la suivante :
    - Quand l'utilisateur cliquait sur le bouton Supprimer, je ne supprimais pas à proprement parler la ligne. Je faisais : matable[i]..hauteur = 0
    - Ainsi, dans le bouton 'Save' , je pouvais faire ma cuisine.

    L'autre solution plus propre, c'est toujours de jouer sur le bouton 'Supprimer'.
    Quand l'utilisateur clique sur Supprimer, tu copies l'enregistrement en cours dans une autre table invisible, puis tu fais la suppression de la table principale.

    Autre contournement : au moment où tu affiches ta fenêtre, tu dupliques ta table dans une autre table invisible... et dans le bouton save, tu peux comparer les 2 tables et retrouver les enregistrement détruits.

    Et plein d'autres solutions certainement.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/09/2007, 19h24
  2. [XSL] passer sur le tableau suivant apres X lectures
    Par zejo63 dans le forum XSL/XSLT/XPATH
    Réponses: 18
    Dernier message: 13/07/2007, 17h53
  3. [MySQL] Garder "la main" sur un enregistrement après un INSERT
    Par pc.bertineau dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/05/2007, 11h07
  4. Réponses: 1
    Dernier message: 08/03/2007, 10h47
  5. Réponses: 4
    Dernier message: 07/10/2005, 18h34

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