• Advertisement

Un Projet Windev Sans une seul requête

Tout ce qui concerne la version 11 & plus récentes de windev

**Windev est une marque déposée de Pcsoft**

Un Projet Windev Sans une seul requête

Messagepar madykob » Mer Avr 09, 2008 9:49 am

Salut j'ai crée un projet ou je ne veux pas voir de requête physique dans mon projet cela marche très bien. Mais le souci se trouve dans les États qui est un peu lent puisqu'il n'y a pas de requête les états ont des source par programation.
Code: Tout sélectionner
[b]ouverture de l'état[/b]
gsTxt=
[
SELECT Pisteurs.CodePist AS CodePist,
Pisteurs.NomPist AS NomPist,
Pisteurs.PrenomsPist AS PrenomsPist,
Pisteurs.Residance AS Residance,
Pisteurs.Photo AS Photo
FROM PISTEURS
WHERE Pisteurs.CodePist IN (SELECT Livraisons.CodePist From Livraisons) OR Pisteurs.CodePist IN (SELECT Mandats.CodePist From Mandats)
]

HExécuteRequêteSQL(gsdRst,hRequêteDéfaut,gsTxt)

HLitPremier(gsdRst,"CodePist")

[b]Lecture de données[/b]
SI HEnDehors() ALORS
   // Arrêt de l'impression du bloc Corps
   RENVOYER Faux
SINON
   // Impression du bloc Corps et exécution de ses traitements
   
   RENVOYER Vrai
FIN


là où il y'à problème
il y' a trop de calcule à faire pour chaque individu Exp: 200 clients dont on veut connaitre un bilan journalier qui consiste à:
explication Un client reçois plusieurs fois de l'argent à des dates différentes et en retour livre des produit café cacao à des prix donc un bilan journalier sur un état un nécessaire.
Code: Tout sélectionner
GlobCodePist=""
moTotal_Mdt_Credit est un monétaire
moTotal_Mdt_Achat est un monétaire
moTotal_Mdts est un monétaire


NbSr est un entier


Mavs est un monétaire

moLvrsGlog est un monétaire

GlobCodePist=gsdRst.CodePist


moTotal_Mdt_Achat=0
moTotal_Mdt_Credit=0
//HOptimiseRequête(MatMultiplie(
POUR TOUT Mandats AVEC CodePist = gsdRst.CodePist
   
   SELON Mandats.Types
      CAS "Credits"
         moTotal_Mdt_Credit+=Mandats.MontantRecus
      CAS "Achats"
         moTotal_Mdt_Achat+=Mandats.MontantRecus
   FIN
   
FIN
moTotal_Mdts=moTotal_Mdt_Credit+moTotal_Mdt_Achat



gsCriter=
[
SELECT
Pisteurs.CodePist AS CodePist,   
Livraisons.NumBL AS NumBL_Li,   
Livraisons.DateRcp AS DateRcp,   
Pesages.CodeArt AS CodeArt,   
Pesages.SacsPes AS SacsPes,   
Pesages.PoidsNet AS PoidsNet,   
Pesages.PrixKg AS PrixKg,   
Pesages.PCom AS PCom,
Livraisons.Avance AS Avance,   
SUM(Pesages.PoidsNet * Pesages.PrixKg) AS Montant_Tot,   
SUM(Pesages.PoidsNet * Pesages.PCom) AS Montant_Comm,   
Livraisons.ModeReglement AS ModeReglement
FROM
Livraisons,   
Pesages,   
Pisteurs
WHERE
Livraisons.NumBL = Pesages.NumBL
AND   Pisteurs.CodePist = Livraisons.CodePist
GROUP BY
Pisteurs.CodePist,   
Livraisons.NumBL,   
Pesages.CodeArt,   
Pesages.SacsPes,   
Pesages.PoidsNet,   
Pesages.PrixKg,   
Pesages.PCom,   
Livraisons.DateRcp,   
Livraisons.ModeReglement,
Livraisons.Avance
]

moTotal_Lvs_Payé est un monétaire
moTotal_Lvs_Non_Payé est un monétaire
moTotal_Lvrs est un monétaire

HExécuteRequêteSQL(gsdRst0,hRequêteDéfaut,gsCriter)

moTotal_Lvs_Payé=0
moTotal_Lvs_Non_Payé=0

Mavs=0

POUR TOUT gsdRst0 AVEC CodePist =GlobCodePist
   SELON gsdRst0.ModeReglement
      
      CAS "Non_Payé"
      moTotal_Lvs_Non_Payé+=gsdRst0.Montant_Tot
      Mavs=gsdRst0.Avance
   
      CAS "Payé"
      moTotal_Lvs_Payé+=gsdRst0.Montant_Tot
         
   FIN
FIN
moTotal_Lvrs=moTotal_Lvs_Non_Payé+moTotal_Lvs_Payé


NbSr=LesSacSortie(GlobCodePist)-LesSacEntre(GlobCodePist)
RUB_RUBRIQUE1=gsdRst.Codepist
RUB_RUBRIQUE2=gsdRst.Nompist
RUB_RUBRIQUE3=gsdRst.PrenomsPist
RUB_RUBRIQUE4=gsdRst.Residance
RUB_RUBRIQUE5=moTotal_Mdts
RUB_RUBRIQUE6=moTotal_Lvs_Non_Payé
RUB_RUBRIQUE11=moTotal_Mdts+Mavs-moTotal_Lvrs


//moTotal_Mdt_Achat

RUB_RUBRIQUE8=moTotal_Mdt_Credit
RUB_RUBRIQUE10=moTotal_Lvrs
RUB_RUBRIQUE9=Mavs
RUB_RUBRIQUE7=(Mavs)-moTotal_Lvs_Non_Payé
RUB_RUBRIQUE12=NbSr


CALC_CALCUL1+=RUB_RUBRIQUE7

HLitSuivant(gsdRst,CodePist)

aidez moi c'est un peut lent je cherche des conseil merci

:?:
madykob
Nouveau Membre
 
Messages: 5
Inscription: Mer Mar 05, 2008 11:42 am

Advertisement


  • Advertisement

Retourner vers Forum windev 11 & plus récentes

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 0 invités