IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Ressortir les mouvements d'un exercice et période sur le même état


Sujet :

WinDev

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2015
    Messages : 102
    Points : 106
    Points
    106
    Par défaut Ressortir les mouvements d'un exercice et période sur le même état
    Bonjour à tous

    Je développe une application de Mini Compte Bancaire et la je travaille sur la Balance des Comptes à 6 colonnes.Cette balance devra se présenter sous cette forme

    Nom : Capture.PNG
Affichages : 254
Taille : 7,0 Ko

    j'alimente cet État par programmation (via une requête ) et donc voici le code source de la

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    SELECT 
    	Mouvement.Code_Agence AS Code_Agence,	
    	Mouvement.Valider AS Valider,	
    	SUM(Ecr_compt.Debit_Ecr) AS la_somme_Debit_Ecr,	
    	SUM(Ecr_compt.Credit_Ecr) AS la_somme_Credit_Ecr,	
    	LEFT(Mouvement.Date_Mouv ,4)  AS Année,	
    	Ecr_compt.Num_Compte AS Num_Compte,	
    	Compte.Lib_Compte AS Lib_Compte,	
    	LEFT(Mouvement.Date_Mouv,6) AS Mois
    FROM 
    	Mouvement,	
    	Ecr_compt,	
    	Compte
    WHERE 
    	Compte.Num_Compte = Ecr_compt.Num_Compte
    	AND		Mouvement.IDMouvement = Ecr_compt.IDMouvement
    	AND
    	(
    		Mouvement.Valider = 1
    		AND	Mouvement.Code_Agence = {ParamCode_Agence}
    		AND	LEFT(Mouvement.Date_Mouv ,4)  = {ParamAnnée}
    		AND	LEFT(Mouvement.Date_Mouv,6) = {ParamMois}
    	)
    GROUP BY 
    	Mouvement.Code_Agence,	
    	Mouvement.Valider,	
    	LEFT(Mouvement.Date_Mouv ,4) ,	
    	Ecr_compt.Num_Compte,	
    	Compte.Lib_Compte,	
    	LEFT(Mouvement.Date_Mouv,6)
    Cette requête à 2 paramètres à savoir {ParamAnnée} :lorsqu'elle est activée devra ressortir les Mouvement de l Exercice et {ParamMois} pour la période.
    Lorsque j exécute la requête en prenant en compte {ParamAnnée} voila ce que j ai comme résultat ceci

    Nom : Capture3.PNG
Affichages : 222
Taille : 26,0 Ko

    Lorsque j exécute la requête en prenant en compte {ParamMois} voila ce que j ai comme résultat ceci(par exemple pour la période d octobre)

    Nom : Capture4.PNG
Affichages : 183
Taille : 10,3 Ko

    Maintenent le souci est que je voudrais pouvoir contenir ces 2 requêtes dans mon état de tel sorte que je puisse avoir tous les mouvement de l exercice 2019 (9 enregistrement) et de la période de Octobre 2019 (2 enregistrements) le tout dans dans mon état comme la cette figure

    Nom : Capture5.PNG
Affichages : 208
Taille : 26,5 Ko


    code ouverture de l etat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HExécuteRequête(REQ_Balance,hRequêteDéfaut,"AG01")
    HLitPremier(REQ_Balance)
    Lecture des données de l etat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    SI HEnDehors() = Vrai ALORS
    	// Arrêt de l'impression du bloc Corps
    	RENVOYER Faux
    SINON
    	// Impression du bloc Corps et exécution de ses événements
    	//Pour l exercice
    	LIB_Num_Compte1=REQ_Balance.Num_Compte
    	LIB_Int_Compte1=REQ_Balance.Lib_Compte
    	LIB_Mouv_Solde_D_Exerc1=REQ_Balance.la_somme_Debit_Ecr
    	LIB_Mouv_Solde_C_Exerc1=REQ_Balance.la_somme_Credit_Ecr
    	//pour la période
     
    	s est un réel =(REQ_Balance.la_somme_Credit_Ecr-REQ_Balance.la_somme_Debit_Ecr)
     
    	SELON s
    		CAS >0
    			LIB_Crédit_Solde1=s
    			LIB_Débit_Solde1 = 0 
    		CAS <0
    			LIB_Débit_Solde1= -s
    			LIB_Crédit_Solde1=0
    			Trace(LIB_Débit_Solde1)
    		CAS 0
    			LIB_Crédit_Solde1=0
    			LIB_Débit_Solde1=0
    		AUTRE CAS
     
    	FIN
    	HLitSuivant(REQ_Balance)
     
    	RENVOYER Vrai
    FIN
    Merci.

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 187
    Points : 9 171
    Points
    9 171
    Par défaut
    Bonjour à toi,

    je pars du postulat que ton état est correct pour l'année.

    Tu dois exécuter ta requête mois et stocker le résultat dans 2 tableaux associatifs (un débit et un crédit) avec pour clé le numéro de compte.

    Dans le code "avant impression du bloc", il faut que tu mettes la valeur de ton tableau quand cela est requis.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2015
    Messages : 102
    Points : 106
    Points
    106
    Par défaut
    bonsoir je vois certes que j ai eu à lire les cours dessus sans savoir l utilité et je me demandais à quoi cela me servirais,mais présentement tout est unpeut confu,j aurais besoin d un canevas svp qui cadrerais avec mon exemple .Svp vraiment car je suis en phase d apprentissage.
    Merci

  4. #4
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 187
    Points : 9 171
    Points
    9 171
    Par défaut
    Dans le code d'ouverture de ton état :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    TabDebitMois, TabCreditMois sont des tableaux associatifs de monétaires
    MaRequête est source de données
    SI PAS HExécuteRequêteSQL(MaRequête, ...
    ....) ALORS // voir pour les paramètres/ options à mettre
    Erreur("Erreur d'initialisation de la requête" + RC + HErreurInfo())
    RETOUR
    FIN
    Pour tout MaRequete
    si MaRequete.montant > 0 alors 
    TabCreditMois[MaRequete.NumeroCompte] = MaRequete.montant
    sinon
    TabDebitMois[MaRequete.NumeroCompte] = MaRequete.montant
    FIN
    Code Avant impression de corps :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    si TabCreditMois[RUB_NumeroCompte]..existe alors RUB_Credit = TabCreditMois[RUB_NumeroCompte]
    si TabDebitMois[RUB_NumeroCompte]..existe alors RUB_Debit = TabDebitMois[RUB_NumeroCompte]
    A toi d'adapter par rapport aux rubriques/variables de tes codes/requêtes/rubriques...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

Discussions similaires

  1. [AC-2000] Dans un état, numéroter les pages d’un groupe « page x sur y ».
    Par ClaudeLELOUP dans le forum Contribuez
    Réponses: 9
    Dernier message: 14/12/2016, 18h07
  2. Réponses: 1
    Dernier message: 25/01/2012, 18h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo