1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

[Résolu] Dupliquer un bon de commande

Discussion dans 'Windev' créé par jfk2lax, Août 8, 2018.

  1. jfk2lax

    jfk2lax Member

    Inscrit:
    Juin 26, 2018
    Messages:
    157
    J'aime reçus:
    9
    Bonjour à tous ,

    J'ai un logiciel de bon de commande.
    J'aimerai savoir si il est possible de dupliquer un bon de commande et ses lignes de commandes ?

    Merci pour votre aide
     
    Tags:
  2. Kelard

    Kelard Active Member
    MEMBRE WX

    Inscrit:
    Avr 6, 2018
    Messages:
    103
    J'aime reçus:
    134
    Salut,

    Si c'est du HFSQL, ce genre de code devrait fonctionner, a tester ;) :

    Code (Windev):
    ID_BONCOMMANDE_ORIGINE, ID_BONCOMMANDE_DUPLIQUER est un entier

    //On fait un commit de la transaction seulement si elle est OK, sinon on annule la duplication via GOTO_ERREUR_PROC

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ()

    //On charge la commande à duliquer

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (COMMANDE, ID_COMMANDE,ID_BONCOMMANDE_ORIGINE)

    //Si on ne trouve pas la commande, on quitte le traitement
    SI PAS

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (COMMANDE) GOTO GOTO_ERREUR_PROC

    //On ajoute l'enregistre avec HAjoute pour dupliquer la commande
    SI PAS

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (COMMANDE) GOTO GOTO_ERREUR_PROC

    //On récupère le nouveau id commande
    ID_BONCOMMANDE_DUPLIQUER    = COMMANDE.ID_COMMANDE

    //On parcours les ligne de la commande
    POUR TOUT LIGNE_COMMANDE AVEC ID_COMMANDE = ID_BONCOMMANDE_ORIGINE
        //On affecte le nouvel ID de la commande dupliquer
        LIGNE_COMMANDE.ID_COMMANDE    = ID_BONCOMMANDE_DUPLIQUER
       
        //On ajoute le nouveau id ligne commande
        SI PAS

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (LIGNE_COMMANDE) GOTO GOTO_ERREUR_PROC
    FIN

    //On valide les transactions

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ()

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("Duplication OK")

    RETOUR

    GOTO_ERREUR_PROC:
    //On annule les transactions si erreurs

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ()

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ()

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("Erreur")
     
     
    elhacene, taoufik1_1 et jfk2lax aiment ça.
  3. jfk2lax

    jfk2lax Member

    Inscrit:
    Juin 26, 2018
    Messages:
    157
    J'aime reçus:
    9
    Un moment donner je dois changer le numéro de bon de commande dupliqué sinon il y a une erreur.
    Est ce que je peux ajouter mon conde à partie de cette ligne

    //Si on ne trouve pas la commande, on quitte le traitement
    SI PAS HTrouve(COMMANDE) GOTO GOTO_ERREUR_PROC


    Merci



    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Salut,

    Si c'est du HFSQL, ce genre de code devrait fonctionner, a tester ;) :

    Code (Windev):
    ID_BONCOMMANDE_ORIGINE, ID_BONCOMMANDE_DUPLIQUER est un entier

    //On fait un commit de la transaction seulement si elle est OK, sinon on annule la duplication via GOTO_ERREUR_PROC

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ()

    //On charge la commande à duliquer

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (COMMANDE, ID_COMMANDE,ID_BONCOMMANDE_ORIGINE)

    //Si on ne trouve pas la commande, on quitte le traitement
    SI PAS

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (COMMANDE) GOTO GOTO_ERREUR_PROC

    //On ajoute l'enregistre avec HAjoute pour dupliquer la commande
    SI PAS

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (COMMANDE) GOTO GOTO_ERREUR_PROC

    //On récupère le nouveau id commande
    ID_BONCOMMANDE_DUPLIQUER    = COMMANDE.ID_COMMANDE

    //On parcours les ligne de la commande
    POUR TOUT LIGNE_COMMANDE AVEC ID_COMMANDE = ID_BONCOMMANDE_ORIGINE
        //On affecte le nouvel ID de la commande dupliquer
        LIGNE_COMMANDE.ID_COMMANDE    = ID_BONCOMMANDE_DUPLIQUER
     
        //On ajoute le nouveau id ligne commande
        SI PAS

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (LIGNE_COMMANDE) GOTO GOTO_ERREUR_PROC
    FIN

    //On valide les transactions

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ()

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("Duplication OK")

    RETOUR

    GOTO_ERREUR_PROC:
    //On annule les transactions si erreurs

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ()

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ()

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("Erreur")
     
    Cliquez pour agrandir...
     
  • Kelard

    Kelard Active Member
    MEMBRE WX

    Inscrit:
    Avr 6, 2018
    Messages:
    103
    J'aime reçus:
    134

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    , en fonction de comment est construite l'analyse, tu auras besoin d'initialiser la clé de la commande/ligne de commande à 0. :)

    Code (Windev):

    //On fait un commit de la transaction seulement si elle est OK, sinon on annule la duplication via GOTO_ERREUR_PROC

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ()

    //On charge la commande à duliquer

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (COMMANDE, ID_COMMANDE,ID_BONCOMMANDE_ORIGINE)

    //Si on ne trouve pas la commande, on quitte le traitement
    SI PAS

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (COMMANDE) GOTO GOTO_ERREUR_PROC

    //Init la clé
    COMMANDE.ID_COMMANDE = 0

    //On ajoute l'enregistre avec HAjoute pour dupliquer la commande
    SI PAS

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (COMMANDE) GOTO GOTO_ERREUR_PROC

    //On récupère le nouveau id commande
    ID_BONCOMMANDE_DUPLIQUER    = COMMANDE.ID_COMMANDE

    //On parcours les ligne de la commande
    POUR TOUT LIGNE_COMMANDE AVEC ID_COMMANDE = ID_BONCOMMANDE_ORIGINE
        //On affecte le nouvel ID de la commande dupliquer
        LIGNE_COMMANDE.ID_COMMANDE    = ID_BONCOMMANDE_DUPLIQUER
       
        //Init la clé
        LIGNE_COMMANDE.ID_COMMANDE_LIGNE = 0

        //On ajoute le nouveau id ligne commande
        SI PAS

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (LIGNE_COMMANDE) GOTO GOTO_ERREUR_PROC
    FIN

    //On valide les transactions

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ()

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("Duplication OK")

    RETOUR

    GOTO_ERREUR_PROC:
    //On annule les transactions si erreurs

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ()

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ()

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("Erreur")
     
     
  • jfk2lax

    jfk2lax Member

    Inscrit:
    Juin 26, 2018
    Messages:
    157
    J'aime reçus:
    9

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    , en fonction de comment est construite l'analyse, tu auras besoin d'initialiser la clé de la commande/ligne de commande à 0. :)

    Code (Windev):

    //On fait un commit de la transaction seulement si elle est OK, sinon on annule la duplication via GOTO_ERREUR_PROC

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ()

    //On charge la commande à duliquer

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (COMMANDE, ID_COMMANDE,ID_BONCOMMANDE_ORIGINE)

    //Si on ne trouve pas la commande, on quitte le traitement
    SI PAS

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (COMMANDE) GOTO GOTO_ERREUR_PROC

    //Init la clé
    COMMANDE.ID_COMMANDE = 0

    //On ajoute l'enregistre avec HAjoute pour dupliquer la commande
    SI PAS

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (COMMANDE) GOTO GOTO_ERREUR_PROC

    //On récupère le nouveau id commande
    ID_BONCOMMANDE_DUPLIQUER    = COMMANDE.ID_COMMANDE

    //On parcours les ligne de la commande
    POUR TOUT LIGNE_COMMANDE AVEC ID_COMMANDE = ID_BONCOMMANDE_ORIGINE
        //On affecte le nouvel ID de la commande dupliquer
        LIGNE_COMMANDE.ID_COMMANDE    = ID_BONCOMMANDE_DUPLIQUER
     
        //Init la clé
        LIGNE_COMMANDE.ID_COMMANDE_LIGNE = 0

        //On ajoute le nouveau id ligne commande
        SI PAS

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (LIGNE_COMMANDE) GOTO GOTO_ERREUR_PROC
    FIN

    //On valide les transactions

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ()

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("Duplication OK")

    RETOUR

    GOTO_ERREUR_PROC:
    //On annule les transactions si erreurs

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ()

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ()

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("Erreur")
     
    Cliquez pour agrandir...

    je ne sais pas si je me suis bien m'exprimer. l'id est une chose.
    J'ai une rubrique qui s’appelle numéro de commande qui est une rubrique clée et qui est formartée (0000-XYX-FOUR.-NUMEROID)
    Après j'ai une rubrique titre du bon de commande que je dois mettre à jour par bon de commande dupliqué.

    Voilà là ou je voulais en venir avec ma précédente question.
     
  • Kelard

    Kelard Active Member
    MEMBRE WX

    Inscrit:
    Avr 6, 2018
    Messages:
    103
    J'aime reçus:
    134

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    je ne sais pas si je me suis bien m'exprimer. l'id est une chose.
    J'ai une rubrique qui s’appelle numéro de commande qui est une rubrique clée et qui est formartée (0000-XYX-FOUR.-NUMEROID)
    Après j'ai une rubrique titre du bon de commande que je dois mettre à jour par bon de commande dupliqué.

    Voilà là ou je voulais en venir avec ma précédente question.
    Cliquez pour agrandir...
    Autant pour moi :)

    Si ta rubrique clé utilise l'idde la commande pour sa conception, il faut le faire après le HAjoute(COMMANDE) pour éviter de construire la rubrique avec la commande d'orgine (pas oublier le HModifie(COMMANDE) dans ce cas là.

    Sinon si elle n'a pas de l'id, tu peux le faire après le HTROUVE comme tu l'avais indiqué. :)
     
    jfk2lax apprécie ceci.
  • jfk2lax

    jfk2lax Member

    Inscrit:
    Juin 26, 2018
    Messages:
    157
    J'aime reçus:
    9

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Autant pour moi :)

    Si ta rubrique clé utilise l'idde la commande pour sa conception, il faut le faire après le HAjoute(COMMANDE) pour éviter de construire la rubrique avec la commande d'orgine (pas oublier le HModifie(COMMANDE) dans ce cas là.

    Sinon si elle n'a pas de l'id, tu peux le faire après le HTROUVE comme tu l'avais indiqué. :)
    Cliquez pour agrandir...
    Est ce que tu peux encore m'aider je ne comprends pas avec ton code ou insérer mon code

    Commande.NuméroInterneCommande=""
    Commande.NomCommande="Commande dubliquée"

    Commande.DateCommande=DateDuJour()
    Commande.Heure=HeureSys()

    Commande.Etat="Non envoyé"
    Commande.EtatFacturation="Non validé / Non visualisé"
    Commande.EtatFournisseur="Non envoyé"
    Commande.EtatLivraison="Non envoyé"
     
  • Ezekiel056

    Ezekiel056 Active Member

    Inscrit:
    Jan 17, 2018
    Messages:
    200
    J'aime reçus:
    154
    Code (Text):
    Commande.NuméroInterneCommande=""
    Commande.NomCommande="Commande dubliquée"

    Commande.DateCommande=DateDuJour()
    Commande.Heure=HeureSys()

    Commande.Etat="Non envoyé"
    Commande.EtatFacturation="Non validé / Non visualisé"
    Commande.EtatFournisseur="Non envoyé"
    Commande.EtatLivraison="Non envoyé
    Ca tu le met Juste apres le Hajoute(Commande)

    En gros :

    Code (Text):
    HlitRecherchePremier(Commande,IDcommande) // La commande que tu cherche a dupliquer
    Si htrouve(Commande) ALORS
    Hajoute(Commande) // Ceci va créer une commande avec un nouvel ID mais tout les reste des champs seront identiques a la commande initiale
    // ensuite ici tu mets ton code qui te permet de modifier certains champs pour personnaliser la nouvelle commande
    Hmodifie(Commande) // Sauvegarder les modifs.
    FIN
     
    suenodesign apprécie ceci.
  • Ezekiel056

    Ezekiel056 Active Member

    Inscrit:
    Jan 17, 2018
    Messages:
    200
    J'aime reçus:
    154

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    comment arrive tu a utiliser la balise [windev] chez moi elle ne fonctionne pas .. ??
     
  • Kelard

    Kelard Active Member
    MEMBRE WX

    Inscrit:
    Avr 6, 2018
    Messages:
    103
    J'aime reçus:
    134
    Pour commande :

    Code (Windev):

    SI PAS

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (COMMANDE) GOTO GOTO_ERREUR_PROC

    //Tu inseres tes données ici

    //On ajoute l'enregistre avec HAjoute pour dupliquer la commande
    SI PAS

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (COMMANDE) GOTO GOTO_ERREUR_PROC
     
    pour ligne commande :

    Code (Windev):

    //On affecte le nouvel ID de la commande dupliquer
    LIGNE_COMMANDE.ID_COMMANDE    = ID_BONCOMMANDE_DUPLIQUER
     
     
    //Tu inseres tes données ici

    //On ajoute le nouveau id ligne commande
    SI PAS

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (LIGNE_COMMANDE) GOTO GOTO_ERREUR_PROC
     
     
    suenodesign et jfk2lax aiment ça.
  • jfk2lax

    jfk2lax Member

    Inscrit:
    Juin 26, 2018
    Messages:
    157
    J'aime reçus:
    9

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Pour commande :

    Code (Windev):

    SI PAS

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (COMMANDE) GOTO GOTO_ERREUR_PROC

    //Tu inseres tes données ici

    //On ajoute l'enregistre avec HAjoute pour dupliquer la commande
    SI PAS

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (COMMANDE) GOTO GOTO_ERREUR_PROC
     
    pour ligne commande :

    Code (Windev):

    //On affecte le nouvel ID de la commande dupliquer
    LIGNE_COMMANDE.ID_COMMANDE    = ID_BONCOMMANDE_DUPLIQUER
     
     
    //Tu inseres tes données ici

    //On ajoute le nouveau id ligne commande
    SI PAS

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (LIGNE_COMMANDE) GOTO GOTO_ERREUR_PROC
     
    Cliquez pour agrandir...
    Merci c'est parfait !
     
  • channibal

    channibal Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 22, 2018
    Messages:
    210
    J'aime reçus:
    277
    Bonsoir,

    Voici la procédure que j'utilise pour dupliquer un devis par exemple

    C'est pour voir où tu peux surcharger les données dans le nouveau document qui sera crée

    Tout se base sur la fonction HDupliqueEnregistrement()

    Code (Text):
    PROCEDURE DupliquerDevis()

    ToastAffiche("Duplication en cours...",toastCourt,cvMilieu,chGauche)

    nIdDevAncient est un entier sur 8 octets = F_DevisCli.IDDevisCli
    nIdDevNouveau est un entier sur 8 octets
    sNumDevch est une chaîne
    dLaDatedujour est une Date = DateSys()

    HDupliqueEnregistrement(F_DevisCli)
    nIdDevNouveau = F_DevisCli.IDDevisCli

    SI HNbEnr(F_params) = 0 ALORS
        F_DevisCli.NUMDevis = 1
    SINON
        HLitPremier(F_params)
        F_DevisCli.NUMDevis = F_params.NDev + 1
    FIN

    F_DevisCli.NumFactChaine = "DE"+NumériqueVersChaîne(F_DevisCli.NUMDevis, "04d")+"/"+AnnéeEnCours()
    sNumDevch = F_DevisCli.NumFactChaine
    F_DevisCli.DATE = dLaDatedujour
    dLaDatedujour += 15
    F_DevisCli.ECHEANCE = dLaDatedujour
    F_DevisCli.Annee = AnnéeEnCours()

    HModifie(F_DevisCli)

    F_params.NDev++
    HModifie(F_params)

    //Duplication des lignes
    POUR TOUT F_LIDEVIS SUR IDLIDEVIS
        SI F_LIDEVIS.IDDevisCli = nIdDevAncient ALORS
            HDupliqueEnregistrement(F_LIDEVIS)
            F_LIDEVIS.IDDevisCli = nIdDevNouveau
            HModifie(F_LIDEVIS)
        FIN
    FIN

    InfoConstruit("Duplication de devis terminée"+RC+" Devis N° %1 crée",sNumDevch)
     
    Bon dev.
     
    #12 channibal, Août 11, 2018
    Dernière édition: Août 11, 2018
  • Fouedusa

    Fouedusa Active Member

    Inscrit:
    Avr 22, 2018
    Messages:
    132
    J'aime reçus:
    120
    Bonjour;

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    merci beaucoup

    Juste une petite suggestion pour cette boucle :
    Code (Text):
    //Duplication des lignes
    POUR TOUT F_LIDEVIS SUR IDLIDEVIS
        SI F_LIDEVIS.IDDevisCli = nIdDevAncient ALORS
            HDupliqueEnregistrement(F_LIDEVIS)
            F_LIDEVIS.IDDevisCli = nIdDevNouveau
            HModifie(F_LIDEVIS)
        FIN
    FIN
    Pour ne pas avoir deux accès au fichier F_LIDEVIS , un avec HDupliqueEnregistrement et un avec HModifie, ça sera mieux avec :
    Code (Text):
    POUR TOUT F_LIDEVIS AVEC F_LIDEVIS.IDDevisCli = nIdDevAncient
        F_LIDEVIS.IDDevisCli= nIdDevNouveau
        HAjoute(F_LIDEVIS)
    FIN
    Bon Dev.
     
    Wafi_bba apprécie ceci.
  • channibal

    channibal Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 22, 2018
    Messages:
    210
    J'aime reçus:
    277

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour;

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    merci beaucoup

    Juste une petite suggestion pour cette boucle :
    Code (Text):
    //Duplication des lignes
    POUR TOUT F_LIDEVIS SUR IDLIDEVIS
        SI F_LIDEVIS.IDDevisCli = nIdDevAncient ALORS
            HDupliqueEnregistrement(F_LIDEVIS)
            F_LIDEVIS.IDDevisCli = nIdDevNouveau
            HModifie(F_LIDEVIS)
        FIN
    FIN
    Pour ne pas avoir deux accès au fichier F_LIDEVIS , un avec HDupliqueEnregistrement et un avec HModifie, ça sera mieux avec :
    Code (Text):
    POUR TOUT F_LIDEVIS AVEC F_LIDEVIS.IDDevisCli = nIdDevAncient
        F_LIDEVIS.IDDevisCli= nIdDevNouveau
        HAjoute(F_LIDEVIS)
    FIN
    Bon Dev.
    Cliquez pour agrandir...
    Bonjour,

    Edité pour correction suite à la demande de

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    . Merci :!horse: :)


    Le deuxième accès au fichier avec le HModif() est obligatoire, c'est pour modifier l'identifiant du devis dans la nouvelle ligne dupliquée par défaut avec l’ancien ID et le remplacer avec le nouveau ID (ici on parle de l'identifiant du devis et non pas de l'identifiant de la ligne devis)


    Le but est de dupliquer un document (devis, bon de commande, facture...) et de dupliquer aussi toutes ses lignes reliées à ce document.

    Après l'utilisation de HDupliqueEnregistrement() on se retrouve avec 2 documents identiques (entête et détail) à l'exeption de l'identifiant automatique qui ne peut pas être dupliqué.
    Par contre, l'identifiant qui relis les détail de l'ancien devis à son entête est aussi dupliqué dans les nouvelle lignes du nouveau document crée ce qui est faut. c'est pour ça, qu’après la duplication des nouvelles lignes, il faut remplacer l’ancien identifiant du devis avec le nouveau en utilisant le HModif()

    Voila :)

    Bon dev.
     
    #14 channibal, Août 12, 2018
    Dernière édition par un modérateur: Août 12, 2018
    suenodesign et joker aiment ça.
  • Fouedusa

    Fouedusa Active Member

    Inscrit:
    Avr 22, 2018
    Messages:
    132
    J'aime reçus:
    120
    Re;
    Voila un exemple vite fais

    On va dupliquer la dernière commande et toutes ses lignes de l'exemple CRM livré avec windev.

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Pour cela j'ai crée une fenêtre vierge avec un bouton

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Le code du bouton :

    Code (Text):
    // Duplication de la dernière commande
    HLitDernier(COMMANDE,NumCommande)
    SI PAS HEnDehors(COMMANDE) ALORS
        nAncienid est un entier sur 8 octets = COMMANDE.NumCommande
       
        // Pas de souci pour la clé car c'est un IdAutomatique
        // Si ce n'etait pas le cas donc à traiter
        HAjoute(COMMANDE)
       
        // Déplucation des lignes de commande
        POUR TOUT LIGNECDE AVEC NumCommande = nAncienid
            // Faire les changements avant l'ajout si nécessaire
            LIGNECDE.NumCommande = COMMANDE.NumCommande
            HAjoute(LIGNECDE)
        FIN
    FIN
    Le résultat :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Bon Dev.
     
    suenodesign et joker aiment ça.
  • jfk2lax

    jfk2lax Member

    Inscrit:
    Juin 26, 2018
    Messages:
    157
    J'aime reçus:
    9
    J'étais en vacances, c'est super. Merci a tous il est génial ce forum .
     
  • Partager cette page

    Chargement...