PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → taches parallèles
taches parallèles
Débuté par JUPETON, 10 déc. 2018 00:00 - Aucune réponse
Membre enregistré
7 messages
Posté le 10 décembre 2018 - 00:00
Bonjour à tous,
suite à mes recherches sur la gestion des taches parallèles, je me suis exercé sur un projet mais malheureusement j'ai message d'erreur : "Un élément de type 'TâcheParallèle' n'a pas de valeur."
je ne sais pas où commencer dans mes recherches. j'ai besoin de votre aide!!!

voici mon code :
//Trace("calcul stock : "+HeureSys())
gMaTache_qtéSortie,gMaTache_qtéEntrée,gMaTache_qtéUG,gMaTache_qtéAttente, gMaTache_qtéTransf, gMaTache_qtéRegul, gMaTache_qtéDét, gMaTache_qtéCH, gMaTache_qtéReclam, gMaTache_qtéMatPre, gMaTache_qtéRetourDepot sont des TâcheParallèle

dDateDbt, dDateFin est une Date
xStkInit, xIDMémo, xStockVente,xStockTransferé, xQteAttente, xStkAchat, xStkDef, xStkRegul,xStkDeconditionnéeDet,xStkDeconditionnéePr, xStkRéclamé,xStkUG,xStkMatPremiere, xStkRetourDepot est un numérique = 0

//HExécuteRequête(REQ_LastDateMémoStock,hRequêteDéfaut)
SI HNbEnr(MémoStock) = 0 ALORS
dDateDbt = "10000101"
dDateFin = gdDatejournée
SINON
//HLitDernier(MémoStock,IDMémoStock)
HExécuteRequête(REQ_MemoStockLast,hRequêteDéfaut)
//dDateDbt = MémoStock.DateMémoStock
dDateDbt = REQ_MemoStockLast.DateMémoStock
dDateDbt..Jour ++
//trace("date debut "+dDateDbt)
xIDMémo = REQ_MemoStockLast.IDMémoStock
dDateFin = gdDatejournée
//dDateFin..Jour --
//Trace("date fin "+dDatefin)
FIN

REQ_StockInitialMémo.art = xIDARTICL
REQ_StockInitialMémo.MémoID = xIDMémo
HExécuteRequête(REQ_StockInitialMémo,hRequêteDéfaut)//,xIDARTICL,xIDMémo)
SI HNbEnr(REQ_StockInitialMémo) = 0 ALORS
xStkInit = 0
SINON
xStkInit = REQ_StockInitialMémo.StockArticle
FIN
//Trace("Stock init "+xStkInit)

gMaTache_qtéSortie = TâcheParallèleExécute(Calcul_QtéVendue,(xIDARTICL,dDateDbt,dDateFin,xStockVente),tpoCopieComplèteContexteHFSQL)
gMaTache_qtéEntrée = TâcheParallèleExécute(Calcul_QtéLivrée,(xIDARTICL,dDateDbt,dDateFin,xStkAchat),tpoCopieComplèteContexteHFSQL)
gMaTache_qtéUG = TâcheParallèleExécute(Calcul_QtéUG,(xIDARTICL,dDateDbt,dDateFin,xStkUG),tpoCopieComplèteContexteHFSQL)
gMaTache_qtéAttente = TâcheParallèleExécute(Calcul_QtéVenteEnAttente,(xIDARTICL,dDateDbt,dDateFin,xQteAttente),tpoCopieComplèteContexteHFSQL)
gMaTache_qtéTransf = TâcheParallèleExécute(Calcul_QtéTransférée,(xIDARTICL,dDateDbt,dDateFin,xStockTransferé),tpoCopieComplèteContexteHFSQL)

gMaTache_qtéRegul = TâcheParallèleExécute(Calcul_QtéCorrigée,(xIDARTICL,dDateDbt,dDateFin,xStkRegul),tpoCopieComplèteContexteHFSQL)
gMaTache_qtéDét = TâcheParallèleExécute(Calcul_QtéDéstockageDétail,(xIDARTICL,dDateDbt,dDateFin,xStkDeconditionnéeDet),tpoCopieComplèteContexteHFSQL)
gMaTache_qtéCH = TâcheParallèleExécute(Calcul_QtéDéstockagePr,(xIDARTICL,dDateDbt,dDateFin,xStkDeconditionnéePr),tpoCopieComplèteContexteHFSQL)
gMaTache_qtéReclam = TâcheParallèleExécute(Calcul_QtéRetournée,(xIDARTICL,dDateDbt,dDateFin,xStkRéclamé),tpoCopieComplèteContexteHFSQL)
gMaTache_qtéMatPre = TâcheParallèleExécute(Calcul_QtéMP,(xIDARTICL,dDateDbt,dDateFin,xStkMatPremiere),tpoCopieComplèteContexteHFSQL)
gMaTache_qtéRetourDepot = TâcheParallèleExécute(Calcul_QtéRetourDépôt,(xIDARTICL,dDateDbt,dDateFin,xStkRetourDepot),tpoCopieComplèteContexteHFSQL)

TâcheParallèleExécuteAprèsToutes([gMaTache_qtéSortie,gMaTache_qtéEntrée,gMaTache_qtéUG,gMaTache_qtéAttente,gMaTache_qtéTransf,gMaTache_qtéRegul,gMaTache_qtéDét,gMaTache_qtéCH,gMaTache_qtéReclam,gMaTache_qtéMatPre,gMaTache_qtéRetourDepot],...)
AfficheStock,(xIDARTICL,0,xStkInit,gMaTache_qtéEntrée,gMaTache_qtéSortie,gMaTache_qtéTransf,gMaTache_qtéAttente,gMaTache_qtéRegul,gMaTache_qtéCH,gMaTache_qtéDét,gMaTache_qtéReclam,gMaTache_qtéUG,gMaTache_qtéMatPre,gMaTache_qtéRetourDepot),tpoThreadPrincipal)



voici le code d'une de mes taches parallèles
Procedure Calcul_QtéLivrée(xIDARTICL,dDateDbt,dDateFin,xStkAchat)
xStkAchat = 0
SI HExécuteRequête(REQ_HistoriqueQtéEntrée,hRequêteDéfaut,xIDARTICL,dDateDbt,dDateFin) ALORS
SI HNbEnr(REQ_HistoriqueQtéEntrée) = 0 ALORS
xStkAchat = 0
SINON
POUR TOUTE REQ_HistoriqueQtéEntrée
xStkAchat += REQ_HistoriqueQtéEntrée.QteAchetée
FIN
FIN
SINON
xStkAchat = 0
FIN
RENVOYER xStkAchat