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

WD Correction de Stock

Discussion dans 'Windev' créé par WindevWindev, Mar 11, 2020.

Tags:
  1. WindevWindev

    WindevWindev Member

    Inscrit:
    Juil 13, 2019
    Messages:
    34
    J'aime reçus:
    2
    Problème enregistrement de la table.

    j'utilise la fonction TableEnregistre (qui ne fonctionne pas sur le multi-fichiers selon l'aide) qui enregistre seulement la table mais pas les fichiers de données qui sont rattachées.

    Comment aussi les données qui y sont rattachées

    N.B : j'ai essayé de modifier la requête directement qui fonctionne mais le but c'est d'aller le moins de fois possible vers le serveur ( 1 fois au chargement et ensuite a la fermeture) pour gagner en performance.

    POUR TOUT REQ_CorrectionLigne
    // SI SensCo = 1 ALORS
    // SI REQ_CorrectionLigne.QuantiteCorrigee < 0 ALORS
    // REQ_CorrectionLigne.QuantiteCorrigee = REQ_CorrectionLigne.QuantiteCorrigee * -1
    // REQ_CorrectionLigne.TotalLigneHT = REQ_CorrectionLigne.TotalLigneHT * -1
    // REQ_CorrectionLigne.TotalLigneTVA = REQ_CorrectionLigne.TotalLigneTVA * -1
    // REQ_CorrectionLigne.TotalLigneTTC = REQ_CorrectionLigne.TotalLigneTTC * -1
    // REQ_CorrectionLigne.TotalLigneVente = REQ_CorrectionLigne.TotalLigneVente * -1
    // REQ_CorrectionLigne.SensCorrection = SensCo
    // HModifie(REQ_CorrectionLigne)
    // FIN
    // FIN





    [windev]POUR i = 1 _À_ TableOccurrence(TABLE_Correction)

    SI SensCo = 1 ALORS // Type de Correction Plus
    SI CQtiteCorrigee < 0 ALORS
    CQtiteCorrigee = CQtiteCorrigee * -1
    CTotalLigneHT = CTotalLigneHT * -1
    CTotalLigneTVA = CTotalLigneTVA* -1
    CTotalLigneTTC = CTotalLigneTTC * -1
    CTotalLigneVente = CTotalLigneVente * -1
    CSensCorrection = SensCo
    FIN
    TableEnregistre(TABLE_Correction)
    FIN

    SI SensCo = 2 ALORS Type de Correction moins
    SI CQtiteCorrigee > 0 ALORS
    CQtiteCorrigee = CQtiteCorrigee * -1
    CTotalLigneHT = CTotalLigneHT * -1
    CTotalLigneTVA = CTotalLigneTVA* -1
    CTotalLigneTTC = CTotalLigneTTC[i] * -1
    CTotalLigneVente[i] = CTotalLigneVente[i] * -1
    CSensCorrection[i] = SensCo

    FIN
    TableEnregistre(TABLE_Correction)
    FIN[/windev][/i][/i][/i][/i]
     

    Fichiers attachés:

    • profff.JPG
      profff.JPG
      Taille de fichier:
      84.3 KB
      Affichages:
      34
    Tags:
  2. charlie

    charlie Active Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    200
    J'aime reçus:
    189
    Est ce que tu as essayé de relier tes champs en multi fichier( choisit bien ta clé de parcours et le champ à modifier) sur la description de la table , ce qui te permet de mettre à jour avec un" ecranversfichier()"?
     
  3. Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    544
    J'aime reçus:
    297
    Bonjour,
    Dans un premier temps, ton table enregistre devrait être exécuté une fois ta boucle POUR i = 1 _À_ TableOccurrence(TABLE_Correction) terminée.
    Cela s'appelle TableEnregistre et pas LigneEnregistre, c'est à dire que tu enregistre toutes les lignes. En supposant que tu ais 100 lignes, tu parcours toutes les lignes et en cas de correction, tu enregistres 100 lignes (algorithme de complexité n^2.) En mettant ton TableEnregistre à la fin, tu parcours 100 lignes puis tu enregistre 100 lignes (algorithme de complexité n.)
     
  4. WindevWindev

    WindevWindev Member

    Inscrit:
    Juil 13, 2019
    Messages:
    34
    J'aime reçus:
    2

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

    En mettant ton TableEnregistre à la fin, tu parcours 100 lignes puis tu enregistre 100 lignes (algorithme de complexité n.)
    Cliquez pour agrandir...
    Bien vu merci
     

Partager cette page

Chargement...