• Advertisement

Aide sur Etat avec Rupture

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

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

Aide sur Etat avec Rupture

Messagepar GDev » Mar Mai 31, 2011 12:11 pm

Bonjour à tous,

On me demande aujourd'hui de reprendre un Etat existant développé par un ancien développeur.
Cet état est simple dans l'ensemble puisqu'il affiche le CA de la société sur n-3 années, cela ressemble à cela :

--------------N-----------N-1-------------N-2
Janvier-----
Février-----
.....--------
Décembre-
-------------------------------------------------
Total

Voilà rien de bien compliqué jusque la.
Maintenant on me demande de faire cela mais en fonction des différentes catégories de clients.
Soit :

CATÉGORIE 1

Nom Client 1
--------------N-----------N-1-------------N-2
Janvier-----
Février-----
.....--------
Décembre-
-------------------------------------------------
Total

Nom Client 2
--------------N-----------N-1-------------N-2
Janvier-----
Février-----
.....--------
Décembre-
-------------------------------------------------
Total

CATÉGORIE 2
Nom Client 1
--------------N-----------N-1-------------N-2
Janvier-----
Février-----
.....--------
Décembre-
-------------------------------------------------
Total

Nom Client 2
--------------N-----------N-1-------------N-2
Janvier-----
Février-----
.....--------
Décembre-
-------------------------------------------------
Total

Nom Client 3
--------------N-----------N-1-------------N-2
Janvier-----
Février-----
.....--------
Décembre-
-------------------------------------------------
Total

Étant loin (voir inexistant) d'être bon dans la programmation d'état, je demande conseil et on me dit c'est simple il suffit de mettre une rupture.
Je mets donc une rupture mais sur cette état (ne me demandez pas pourquoi) impossible de lier la rupture a une rubrique.
Je dois donc la programmer............et la c'est le drame.................je ne vois pas du tout comment faire, ou mettre le code, quoi mettre dans le code......

Auriez-vous une idée ?

Merci d'avance
GDev
Membre Confirmé
 
Messages: 222
Inscription: Jeu Jan 27, 2011 2:16 pm

Advertisement

Re: Aide sur Etat avec Rupture

Messagepar Samifred » Mar Mai 31, 2011 1:05 pm

Salut,
Je pense qu'il serait plus simple de créer directement un nouvel état.
Une rupture c'est tout simplement une boucle sur une boucle filtrée.

-------------------------------------------------------------- Haut Rupture
//Fichier client = Rupture de boucle sur l'ID du client
RUB_NomClient = Client.Nom // Bloc data client
...
RUB_IDClient = Client.IDClient //Rupture sur l'IDClient (Affiche dans le bloc corps les data de ID)
...
--------------------------------------------------------------Corps
RUB_ChiffreAffaire = NomFichier.Chiffre
...
...
---------------------------------------------------------------Bas Rupture
RUB_TotalChiffre = (Cumul d'une rubrique chiffre mensuel ou annuel du bloc coprs)
------------------------------------------------------------------------------
Cordialement, en espérant que ma collaboration soit profitable. Fred Image
PS: Il est important d'indiquer, dans la question, la version WD utilisée.
Note: Pas de question par MP, merci.
Avatar de l’utilisateur
Samifred
 
Messages: 3550
Inscription: Sam Nov 26, 2005 12:16 pm
Localisation: 128.0.0.0

Re: Aide sur Etat avec Rupture

Messagepar GDev » Mar Mai 31, 2011 1:08 pm

Ok merci SamiFred je vais voir ce qu'il y a de mieux
GDev
Membre Confirmé
 
Messages: 222
Inscription: Jeu Jan 27, 2011 2:16 pm

Re: Aide sur Etat avec Rupture

Messagepar GDev » Mar Mai 31, 2011 2:29 pm

Samifred a écrit:Salut,
Je pense qu'il serait plus simple de créer directement un nouvel état.
Une rupture c'est tout simplement une boucle sur une boucle filtrée.

-------------------------------------------------------------- Haut Rupture
//Fichier client = Rupture de boucle sur l'ID du client
RUB_NomClient = Client.Nom // Bloc data client
...
RUB_IDClient = Client.IDClient //Rupture sur l'IDClient (Affiche dans le bloc corps les data de ID)
...
--------------------------------------------------------------Corps
RUB_ChiffreAffaire = NomFichier.Chiffre
...
...
---------------------------------------------------------------Bas Rupture
RUB_TotalChiffre = (Cumul d'une rubrique chiffre mensuel ou annuel du bloc coprs)
------------------------------------------------------------------------------


SamiFred chose que je ne comprends pas.
Il y a bien un moment ou je dois boucler pour afficher les diffèrents CA de mes CATEGORIES, donc un hlitrecherche ou quelque chose dans le genre.
De plus si je fais ça comment passer au suivant ? Avec un HlitSuivant j'imagine mais ou dois-je mettre ça ?

C'est dingue comme je ne supporte pas les états.
GDev
Membre Confirmé
 
Messages: 222
Inscription: Jeu Jan 27, 2011 2:16 pm

Re: Aide sur Etat avec Rupture

Messagepar Samifred » Mar Mai 31, 2011 3:03 pm

Je sais que c'est pas facile de faire un état avec rupture comme l'on désire...

Personnellement j'utilise les blocs d'Itérations... dont voici un exemple de code se trouvant dans la section lecture des données de l'état xx. (Code de l'état)
Tu peux faire toutes les boucles que tu veux et au moins tu peux suivre la chronologie de ton code.

Tout d'abord la création des blocs d'itérations avec les libellés et les rubriques ainsi que les totaux.

Seul le bloc Corps ne peut être supprimé, il reste en haute de page presque caché.

Image

J'ai même le bloc 11 de réserve.

Code de la section lecture des données de l'état xx.
Code: Tout sélectionner
moTotalCrédit, moTotalDébit, moTotalVente sont des monétaires
d, c sont des entiers
LIB_Comptabilité = DateVersChaîne(gdDébutCompta,"JJ.MM.AAAA") + "  au: " + DateVersChaîne(gdFinCompta,"JJ.MM.AAAA")
iImprimeBloc(ITERATION1)

POUR TOUT PlanCompte SUR CompteNuméro
   RUB_Compte = PlanCompte.CompteNuméro
   RUB_NomCompte = PlanCompte.CompteDescript
   RUB_MontantCrédit = PlanCompte.MontantCrédit
   RUB_MontantDébit = PlanCompte.MontantDédit
   SI PlanCompte.TypeCompte = 6 ALORS moTotalVente = moTotalVente + PlanCompte.MontantDédit
   SI PlanCompte.TypeCompte = 3 A 4 ALORS moTotalDébit = moTotalDébit + PlanCompte.MontantDédit
   iImprimeBloc(ITERATION2)
FIN
RUB_Résultat = moTotalVente - moTotalDébit
SI moTotalVente > moTotalDébit ALORS LIB_Résultat = "Résultat d'exploitation positif Fr."
SI moTotalVente < moTotalDébit ALORS LIB_Résultat = "Résultat d'exploitation négatif  Fr."
SI moTotalVente = moTotalDébit ALORS LIB_Résultat = "Résultat d'exploitation équilibré Fr."
iImprimeBloc(ITERATION3)

POUR TOUT Débiteur SUR IDDébiteur
   d++
   RUB_NomDébiteur = Débiteur.NomDébiteur
   RUB_DateFact = Débiteur.Fact
   RUB_DateEchu = Débiteur.Echu
   RUB_MontantDéb = Débiteur.Montant
   iImprimeBloc(ITERATION4)
FIN
SI d = 0 ALORS RUB_NomDébiteur = "AUCUN" ; iImprimeBloc(ITERATION4)
iImprimeBloc(ITERATION5)

POUR TOUT Créancier SUR IDCréancier
   c++
   RUB_NomCréancier = Créancier.NomCréancier
   RUB_FactCréancier = Créancier.NumFacture
   RUB_DateFactCré = Créancier.Date
   RUB_DateEchuCré = Créancier.Echu
   RUB_MontantCré = Créancier.Montant
   iImprimeBloc(ITERATION6)
FIN
SI c = 0 ALORS RUB_NomCréancier = "AUCUN" ; iImprimeBloc(ITERATION6)
iImprimeBloc(ITERATION7)

RUB_TotalExploitation = RUB_Résultat
RUB_TotalDébiteurs = CALC_CALCUL1
RUB_TotalCréanciers = CALC_CALCUL2
iImprimeBloc(ITERATION8)

RUB_TotalFinal = (RUB_Résultat + CALC_CALCUL1) - CALC_CALCUL2
iImprimeBloc(ITERATION9)

HChangeRep(Propriété,gsRépertoire)
HLit(Propriété,1)
LIB_Propriété = Propriété.NomPrénom + RC + Propriété.Adresse + RC + Propriété.Localité + RC + Propriété.Téléphone + RC + RC +...
Propriété.Localité + ", le " + DateVersChaîne(DateSys(),"JJ MMMM AAAA") + "           Signature:............................................."
iImprimeBloc(ITERATION10)

Cordialement, en espérant que ma collaboration soit profitable. Fred Image
PS: Il est important d'indiquer, dans la question, la version WD utilisée.
Note: Pas de question par MP, merci.
Avatar de l’utilisateur
Samifred
 
Messages: 3550
Inscription: Sam Nov 26, 2005 12:16 pm
Localisation: 128.0.0.0

Re: Aide sur Etat avec Rupture

Messagepar GDev » Mar Mai 31, 2011 3:09 pm

Samifred a écrit:Je sais que c'est pas facile de faire un état avec rupture comme l'on désire...

Personnellement j'utilise les blocs d'Itérations... dont voici un exemple de code se trouvant dans la section lecture des données de l'état xx. (Code de l'état)
Tu peux faire toutes les boucles que tu veux et au moins tu peux suivre la chronologie de ton code.

Tout d'abord la création des blocs d'itérations avec les libellés et les rubriques ainsi que les totaux.

Seul le bloc Corps ne peut être supprimé, il reste en haute de page presque caché.

Image

J'ai même le bloc 11 de réserve.

Code de la section lecture des données de l'état xx.
Code: Tout sélectionner
moTotalCrédit, moTotalDébit, moTotalVente sont des monétaires
d, c sont des entiers
LIB_Comptabilité = DateVersChaîne(gdDébutCompta,"JJ.MM.AAAA") + "  au: " + DateVersChaîne(gdFinCompta,"JJ.MM.AAAA")
iImprimeBloc(ITERATION1)

POUR TOUT PlanCompte SUR CompteNuméro
   RUB_Compte = PlanCompte.CompteNuméro
   RUB_NomCompte = PlanCompte.CompteDescript
   RUB_MontantCrédit = PlanCompte.MontantCrédit
   RUB_MontantDébit = PlanCompte.MontantDédit
   SI PlanCompte.TypeCompte = 6 ALORS moTotalVente = moTotalVente + PlanCompte.MontantDédit
   SI PlanCompte.TypeCompte = 3 A 4 ALORS moTotalDébit = moTotalDébit + PlanCompte.MontantDédit
   iImprimeBloc(ITERATION2)
FIN
RUB_Résultat = moTotalVente - moTotalDébit
SI moTotalVente > moTotalDébit ALORS LIB_Résultat = "Résultat d'exploitation positif Fr."
SI moTotalVente < moTotalDébit ALORS LIB_Résultat = "Résultat d'exploitation négatif  Fr."
SI moTotalVente = moTotalDébit ALORS LIB_Résultat = "Résultat d'exploitation équilibré Fr."
iImprimeBloc(ITERATION3)

POUR TOUT Débiteur SUR IDDébiteur
   d++
   RUB_NomDébiteur = Débiteur.NomDébiteur
   RUB_DateFact = Débiteur.Fact
   RUB_DateEchu = Débiteur.Echu
   RUB_MontantDéb = Débiteur.Montant
   iImprimeBloc(ITERATION4)
FIN
SI d = 0 ALORS RUB_NomDébiteur = "AUCUN" ; iImprimeBloc(ITERATION4)
iImprimeBloc(ITERATION5)

POUR TOUT Créancier SUR IDCréancier
   c++
   RUB_NomCréancier = Créancier.NomCréancier
   RUB_FactCréancier = Créancier.NumFacture
   RUB_DateFactCré = Créancier.Date
   RUB_DateEchuCré = Créancier.Echu
   RUB_MontantCré = Créancier.Montant
   iImprimeBloc(ITERATION6)
FIN
SI c = 0 ALORS RUB_NomCréancier = "AUCUN" ; iImprimeBloc(ITERATION6)
iImprimeBloc(ITERATION7)

RUB_TotalExploitation = RUB_Résultat
RUB_TotalDébiteurs = CALC_CALCUL1
RUB_TotalCréanciers = CALC_CALCUL2
iImprimeBloc(ITERATION8)

RUB_TotalFinal = (RUB_Résultat + CALC_CALCUL1) - CALC_CALCUL2
iImprimeBloc(ITERATION9)

HChangeRep(Propriété,gsRépertoire)
HLit(Propriété,1)
LIB_Propriété = Propriété.NomPrénom + RC + Propriété.Adresse + RC + Propriété.Localité + RC + Propriété.Téléphone + RC + RC +...
Propriété.Localité + ", le " + DateVersChaîne(DateSys(),"JJ MMMM AAAA") + "           Signature:............................................."
iImprimeBloc(ITERATION10)



Ok merci SamiFred je vais essayer de partir sur cette idée.
Merci pour ton aide.
GDev
Membre Confirmé
 
Messages: 222
Inscription: Jeu Jan 27, 2011 2:16 pm



  • 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: Aucun utilisateur enregistré et 0 invités