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 :

double modification dans un fichier [WD14]


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 25
    Points : 23
    Points
    23
    Par défaut double modification dans un fichier
    Bonjour à tous,

    Toujours aussi débutant avec Windev et toujours dans la même application, la gestion de containers sur un parc, j'ai besoin de votre aide.

    Un container est sur une remorque routière "A", et pour une raison quelconque, par exemple une réparation sur cette remorque le container doit être transféré sur une autre.

    Les remorques ont pour valeur 0 quand elles sont vides et 1 quand elles sont pleines.

    En fin de saisie en cliquant sur le bouton "Valider", je dois donc passer le container de "A" à "B" - A a 1 comme valeur et doit avoir 0 et B à 0 et doit avoir 1.

    Mon souci :

    Seul la valeur de B est prise en compte avec : code dans "Sélection d'une ligne de COMBO_CHGT_REMORQUE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    HLitRecherche(REMORQUE,REMORQUE,COMBO_CHGT_remorque)
    SI HTrouve(REMORQUE) ALORS
    	FichierVersEcran(FEN_RETOUR,REMORQUE)
    	LIB_nouvelle_valeuremorque = REMORQUE.Valeur_REMORQUE + 1
    FIN
    Pour la remorque A : code dans Initialisation de LIB_ancienne_remorque

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    HLitRecherche(REMORQUE,REMORQUE,LIB_ancienne_remorque)
    SI HTrouve(REMORQUE) ALORS
    	FichierVersEcran(FEN_RETOUR,REMORQUE)
    	LIB_ancienne_valeuremorque = REMORQUE.Valeur_REMORQUE -1
    FIN
    Bouton Valider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SI EXTERIEUR..NouvelEnregistrement = Faux ALORS
    	EcranVersFichier(FEN_RETOUR,EXTERIEUR)
    	HAjoute(EXTERIEUR)
    FIN
    SI REMORQUE..NouvelEnregistrement = Faux ALORS
    	EcranVersFichier(FEN_RETOUR,REMORQUE)
    	HModifie(REMORQUE,LIB_ancienne_remorque)
    FIN
     
    MaFenêtre..ValeurRenvoyée = Faux
    Action prédéfinie : Fermer la fenêtre et renvoyer une valeur
    J'espère avoir été suffisamment précis, merci d'avance pour votre aide.

  2. #2
    Membre chevronné Avatar de EDM-TAHITI
    Homme Profil pro
    Directeur Service informatique et projet développement
    Inscrit en
    Janvier 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Directeur Service informatique et projet développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 994
    Points : 1 995
    Points
    1 995
    Par défaut
    Hello,
    Bon, déja, on va commencer par le début
    Dans ton code, je me permettrais quelques modifications, à savoir

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    HRecherche(REMORQUE,REMORQUE,COMBO_CHGT_remorque)
    SI HTrouve(REMORQUE) ALORS
                 // on monte l'enreg en mémoire
                 HLITRecherche(REMORQUE,REMORQUE,COMBO_CHGT_remorque)
    	// on remonte les infos du fichier vers l'ecran
                 FichierVersEcran(FEN_RETOUR,REMORQUE)
                 // on passe le flag de vide à plein
    	LIB_nouvelle_valeuremorque = 1
                 // on passe de vide à plein
                 REMORQUE.Valeur_REMORQUE = 1
                 // on modifie
                 si pas hmodifie(remorque) alors
                      // tiens, y'a erreur
                      info("erreur sur la remorque n° ".......)
                 sinon
                      // je changement a eu lieu, on rappelle la remorque
                      // d'origine et on modifie le plein à vide
     
                     HRecherche(REMORQUE,REMORQUE,remorque_origine)
                     SI HTrouve(REMORQUE) ALORS
                         // on monte l'enreg en mémoire
                         HLITRecherche(REMORQUE,REMORQUE,remorque_origine)
    	        // on remonte les infos du fichier vers l'ecran
                         FichierVersEcran(FEN_RETOUR,REMORQUE)
                         // on passe le flag de plein à vide
    	        LIB_nouvelle_valeuremorque = 0
                         // on passe de plein à vide
                        REMORQUE.Valeur_REMORQUE = 1
                       // on modifie
                      si pas hmodifie(remorque) alors
                           // tiens, y'a erreur
                           info("erreur sur la remorque n° ".......)
                      sinon
                           // fin du traitement
                      fin
                  sinon
                          // erreur remorque A
                          info("Erreur remorque A")
                  fin
    sinon
         // tiens, y'a erreur pour la remorque B
         info("ERREUR REMORQUE 'B'")
    FIN
    Voilà comment je vois la chose pour être sur que cela fonctionne. Je vous engage A NE JAMAIS FAIRE UN HLITRECHERCHE directement car cela à la mauvaise habitude de charger l'enreg en mémoire et par la même, de changer le pointeur fichier, les descripteurs, etc...
    Ou alors, utilisez la fonction Hsauveposition et HrestaurePosition, mais ayant essayé cela, je n'ai pas été convaincu de la chose...
    le savoir est dans les livres, 'the magic touch F1'
    Amicalement
    Eric

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 25
    Points : 23
    Points
    23
    Par défaut Remerciements
    Eric,
    Merci infiniment pour toutes ces précisions, en effet cela fonctionne parfaitement.
    Je vous suis très redevable car je bloquais dessus depuis plusieurs jours.
    Amicalement.
    Thierry

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

Discussions similaires

  1. Probleme modification dans un fichier text
    Par zanouba_girl dans le forum Langage
    Réponses: 4
    Dernier message: 10/12/2009, 11h29
  2. modification dans un fichier texte
    Par abdelhamidem dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/10/2008, 17h48
  3. double pointeur dans un fichier txt
    Par micka180 dans le forum VBScript
    Réponses: 14
    Dernier message: 22/01/2008, 16h23
  4. modif dans un fichier xml
    Par calimero91 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/01/2008, 08h06
  5. Réponses: 10
    Dernier message: 05/01/2007, 20h54

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