PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 25 → ParallelTaskExecute
ParallelTaskExecute
Iniciado por FETOUI MOHAMED, mai., 10 2016 5:38 PM - Sem resposta
Membro registado
148 mensagems
Popularité : +4 (14 votes)
Publicado em maio, 10 2016 - 5:38 PM
Hello

I tried to parallelize the processing of calculating the stock is based on parallel tasks.
At run time I have a little problem. When I run the program a message appears saying that the connection was interrupted.





NB: My files are in HFCS WINDEV 20

My code is as follows:

TableDeleteAll(LIBTableInvent)
HExecuteQuery(Req_Article_TP)
TableDisplay(LIBTableInvent)
WinRedraw()
RécupèreStock()

// Procedure RécupèreStock()

ParallelTaskRequestCancelation(TABTache)
ArrayDeleteAll(TABTache)
FOR ALL LIGNE nligne DE LIBTableInvent
soit T=TâcheParallèleExécute(CalculeStockMagasin,(COL_Refrence[nligne],Sit_NumSite,Sai_Année))
TâcheParallèleExécuteAprès(T,AfficheStock,(ValeurRenvoyéeTâchePrécédente,nligne),tpoThreadPrincipal)

Procedure INTERNE AfficheStock(pStockDispo,pLigne)

LIBTableInvent[pLigne,4]=pStockDispo

FIN
Ajoute(TABTache,T)

FIN
HFreeQuery(Req_StockV_TP)
HFreeQuery(Req_StockA_TP)

///// Procedure CalculeStockMagasin

Procedure CalculeStockMagasin(pRefrence,pSite,pAnnée)

////////////////////////////////// Earn quantities per item FILE "ONLINE SALES"

Req_StockV_TP.Param1_Ref=pRefrence
Req_StockV_TP.Param1_Depot=vDep
Req_StockV_TP.Param1_Année=pAnnée
Req_StockV_TP.Param1_Site=pSite
Req_StockV_TP.Param1_EtatCommande="FA;BL"

HExecuteQuery(Req_StockV_TP)
HReadFirst(Req_StockV_TP)
IF Not HOut((Req_StockV_TP)
Quantité_V=Req_StockV_TP.la_somme_Quantite_Livr
FIN
Req_StockV_TP.Param1_Ref=pRefrence
Req_StockV_TP.Param1_Depot=vDep
Req_StockV_TP.Param1_Année=pAnnée
Req_StockV_TP.Param1_Site=pSite
Req_StockV_TP.Param1_EtatCommande="AV;RB" // RETURN

HExecuteQuery(Req_StockV_TP)
HReadFirst(Req_StockV_TP,hSansRafraîchir)
IF Not HOut(Req_StockV_TP)
Quantité_V-=Req_StockV_TP.la_somme_Quantite_Livr
FIN

////////////////////////////////// Earn quantities per item FILE "BUY ONLINE"
Req_StockA_TP.Param1_ref=pRefrence
Req_StockA_TP.Param1_Depot=vDep
Req_StockA_TP.Param1_Année=pAnnée
Req_StockA_TP.Param1_Site=pSite
Req_StockA_TP.Param1_EtatCommande="FA;BL"

HExecuteQuery(Req_StockA_TP)
HReadFirst(Req_StockA_TP,hNoRefresh)
IF Not HOut(Req_StockA_TP)
Quantité_A=Req_StockA_TP.la_somme_Quantite_Livr
FIN
Req_StockA_TP.Param1_ref=pRefrence
Req_StockA_TP.Param1_Depot=vDep
Req_StockA_TP.Param1_Année=pAnnée
Req_StockA_TP.Param1_Site=pSite
Req_StockA_TP.Param1_EtatCommande="AV;RB"

HExecuteQuery(Req_StockA_TP)
HReadFirst(Req_StockA_TP,hNoRefresh)
IF Not HOut(Req_StockA_TP)
Quantité_A-=Req_StockA_TP.la_somme_Quantite_Livr
FIN

vStockDispo=Quantité_V-Quantité_A
SI ErreurDétectée() ALORS
RENVOYER (-1)
SINON
RENVOYER vStockDispo
FIN


Thank you for giving me a track.
cordially

--
FETOUI MOHAMED
Développeur, Consultant et Formateur WinDev, WebDev et WinDev Mobile
fib.fetouimed@gmail.com
https://www.linkedin.com/pub/mohamed-el-fetoui/a0/680/109
MAROC+212(0)661249774
Membre de http://www.be-dev.be
Skype : FETOUI MOHAMED