Code Windev pour afficher une requete sur la Vente mensuelle par articles et generer les stats
Anonyme
Salut Les amis
Nous sommes un petit groupe qui vient juste d'acquerir windev et on est entrain de construire une petite application. Actuellement on est bloqué et voici notre probleme:
On aimerait creer une requete sql(vente mensuelle par articles) dont les données vont etre affichées sur une table memoire comme le montre le tableau ci-dessous:
-----------------------------------------------------------
2003|Jan|Feb|Mars |Avril|..... | | Dec | |Total|
-----------------------------------------------------------
art1 |119.5|33.63| |152.98|
----------------------------------------------------------
art2 |59.68| |537.08| |596.76|
----------------------------------------------------------
art3 |1541.78| |1541.78|
---------------------------------------------------------
Total |119.5||93 .31| |2078.86|
-------------------------------------------------------
2)Ensuite on aimerait avoir sur l'ecran contenant le tableau une graphe en fonction du mois le nombre d'articles vendu.
Nous apprécieront bien votre aide .
Merci

Contribution le : 01/09/2004 22:23
Créer un fichier PDF de la contribution Imprimer


Re: Code Windev pour afficher une requete sur la Vente mensuelle par articles et generer les stats
Anonyme
Bonjour ,

Vous bloquez a quel niveau , sql? graphe? affichage dans table ?

Il serait bon de donner l'organisation de vos fichiers si vous voulez qu'on vous aide a faire votre requete.


Contribution le : 02/09/2004 11:34
Créer un fichier PDF de la contribution Imprimer


Re: Code Windev pour afficher une requete sur la Vente mensuelle par articles et generer les stats
Anonyme
SQL graphe et table memoire...
Merci

Contribution le : 02/09/2004 13:50
Créer un fichier PDF de la contribution Imprimer


Re: Code Windev pour afficher une requete sur la Vente mensuelle par articles et generer les stats
Anonyme
Avez-vous déja effectuer une analyse ?
Je veux dire vus avez un fichier article,comment il est structurer ...

De cette façon je pourrais vous donner une requete SQL exacte

Contribution le : 03/09/2004 13:40
Créer un fichier PDF de la contribution Imprimer


Re: Code Windev pour afficher une requete sur la Vente mensuelle par articles et generer les stats
Anonyme
Salut
Voici le fichier "ARTICLE"
Reference Cle primaire Chaine(50)
Libelle Chaine (100)
IDCategorie Cle secondaire Chaine(50)
PUHT Monetaire
Code TVA Reel
GestStock booleen
Minalert entier
Description Chaine (200)

Table Categorie
IDCategorie Cle Primaire Chaine(50)

Votre aide sera bien appreciee.
Merci

Contribution le : 04/09/2004 02:40
Créer un fichier PDF de la contribution Imprimer


Re: Code Windev pour afficher une requete sur la Vente mensuelle par articles et generer les stats
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

A mon avis l?exécution d?une requête SQL de ce type ne me semble pas applicable sur le moteur Hyper File. Avis aux Experts

Idée

1) Créer la structure du fichier qui doit recevoir les données à afficher dans la table.
- Id Article
- Janvier
- Février
- etc.?
Re-générer votre Analyse

Si vous ne désirer pas modifier votre analyse vous pouvez utiliser la Description de fichier par code je vous invite à lire les dossiers suivants écrit par R&B :
- Source de données
- Alias temporaires

2) Filtrer le fichier des ventes
Appliquer un filtre sur l?année voulue via la fonction HfiltreCompisEntre()

3) Parcours du fichier des ventes
Recréer le fichier à vide via Hcréation()
effectuer un parcours sur toutes les lignes
A Tester : a savoir s'il est plus rapide d?alimenter une vue ou une Source de données et d?appliquer les modifications sur le fichier ou bien d?écrire ligne par ligne dans le fichier

Je pense que la vue ou la source de données sera le plus rapide du fait du nombre d?opération qui exister sur chaque produit.

Donc pour chaque ligne du fichier des ventes :
-Si l?Id Fichier n?existe pas créer la ligne
-Ajouter la valeur voulue au champ correspondant en fonction du mois de l?opération

4) Afficher les données
Utiliser une table fichier, car l?affichage à partir d?un fichier physique me parait plus rapide sur une table fichier que sur une table mémoire



Contribution le : 04/09/2004 16:16
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Code Windev pour afficher une requete sur la Vente mensuelle par articles et generer les stats
Anonyme
Salut
N'oublie pas que j'ai une fiche de facture et ligne facture dans laquelle (detail facture) tu as
Reference, Designation, QTé, PUHT MontTVA et MontHT,
et au bas de ma fiche, on recupere le montant TVA, Total HT et Total TTC .Je dois mentionner qu'il existe un champ date dans la fiche pour me renseigner quand est ce qu'un article a été vendu . Donc toutes les informations pertinentes si trouvent .
Merci

Contribution le : 04/09/2004 16:48
Créer un fichier PDF de la contribution Imprimer


Re: Code Windev pour afficher une requete sur la Vente mensuelle par articles et generer les stats
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Salut

Citation :

N'oublie pas que j'ai une fiche de facture et ligne facture dans laquelle (detail facture) tu as
Reference, Designation, QTé, PUHT MontTVA et MontHT,


[humour]
Et bien non j'étais pas au courant, puisque tu n'en avais pas encore parlé.
[/humour]

Cela ne change rien à la méthode proposée
Le lien entre la fiche facture et les lignes de factures se fait tout simplement par un HLitRecherche()

Comme vous semblez bloqués voici quelques lignes de code pour vous éclairer sur l'idée

Exemple:
RsL est une Source de Données
Sql est une chaîne
Df est une Description de Fichier
Dr est une Description de Rubrique
sFicFacture est une chaîne = "CLICDEH"	//Nom du fichier Facture
sFicLigne est une chaîne = "CLICDEL"    //Nom du fichier ligne de facture
sFicStat est une chaîne = "STAT1"       //Nom du fichier temporaire pour statistique mensuelle
sDateDebut est une chaîne = "20030101"  //Date début stat
sDateFin est une chaîne = "20031231"	//Date fin Stat
sRubriqueParcours est une chaîne = "DatePiece" //Nom de la rubrique de parcours sur fichier facture   
sRubIdArticle est une chaîne = "GUIARTICLE" //Nom de rubrique Identifiant Article Idem au Fichier facture
sCleParcours est une chaîne		//Va contenir la clé de parcours la mieux adaptée	
sIdFacture est une chaîne = "NumeroDePiece" //Nom de la rubrique Id de Facture lier et de meme nom que dans Ligne de facture
sRubARenvoyer est une chaîne = "MontantTotalHT" //Nom de la rubrique qui contient la valeur à calculer
tMois est une chaîne = "Janvier,Fevrier,Mars,Avril,Mai,Juin,Juillet,Aout,Septembre,Octobre,Novembre,Decembre"
sUnMois est une chaîne
Ind est un entier

nMNTVente est un réel

Sablier(Vrai)
//Description dynamique du fichier
//Si vous ne voulez pas modifier votre analyse.
Df..Nom = sFicStat
Df..Type = hFichierTemporaire

//Description de la rubrique IDStat
Dr..Nom = "IDStat"
Dr..Type = hRubIdAuto
Dr..TypeClé = hCléUnique
HDécritRubrique(Df,Dr)

//Description de la rubrique IDArticle
Dr..Nom = sRubIdArticle
Dr..Type =hRubEntier8
Dr..TypeClé = hCléUnique
HDécritRubrique(Df,Dr)

//Description des rubriques mois
Ind = 1
sUnMois = ExtraitChaîne(tMois,Ind,",")

TANTQUE sUnMois <> EOT
	Dr..Nom = sUnMois
	Dr..Type =hRubMonétaire
	HDécritRubrique(Df,Dr)
	Ind++
	sUnMois =	ExtraitChaîne(tMois,Ind,",")
FIN

HDécritFichier(Df)

//Création du fichier
HChangeRep(sFicStat,fRepEnCours())
HCréation(sFicStat)

//Creation de la vue 
HCréeVue(RsL,sFicStat,"*",hVueBlocage)

//Création du filtre sur le fichier Facture
sCleParcours = HFiltreComprisEntre(sFicFacture,sRubriqueParcours,sDateDebut,hSéparateurBorne,sDateFin)
//Parcours du fichier
HLitPremier(sFicFacture,sCleParcours,hBlocageNon)
TANTQUE PAS HEnDehors()
	//Recherche par IdFacture
	HLitRecherche(sFicLigne,sIdFacture,{sFicFacture+"."+sIdFacture},hBlocageNon)
	nMNTVente=0
	TANTQUE HTrouve(sFicLigne)	
			nMNTVente+={sFicLigne+"."+sRubARenvoyer}	
			HLitSuivant(sFicLigne,sIdFacture)
	FIN
	Ind = Val({sFicFacture+"."+sRubriqueParcours}[[5 A 6]])
	//Recherche si l'Article à déjà éte Créé
	SI PAS HLitRecherche(RsL,sRubIdArticle,{sFicLigne+"."+sRubIdArticle}) ALORS
		{"Rsl."+sRubIdArticle} = {sFicLigne+"."+sRubIdArticle}
		{"Rsl."+ExtraitChaîne(tMois,Ind,",")}+= nMNTVente
		SI PAS HAjoute(RsL,hIgnoreIntégrité+hIgnoreDoublon) ALORS
			Erreur(HErreurInfo())
		  STOP
		FIN
	SINON
		{"Rsl."+ExtraitChaîne(tMois,Ind,",")} = nMNTVente
		SI PAS HModifie(RsL,hNumEnrEnCours,hIgnoreIntégrité+hIgnoreDoublon) ALORS
			Erreur(HErreurInfo())
			STOP
		FIN
	FIN
		
	HLitSuivant(sFicFacture,sCleParcours)
FIN
HVueVersFichier(RsL)
Sablier(Faux)


Ce code à été testé et fonctionne
Encore faut il renseigner correctement les variables de déclaration
Durée du traitement sur un fichier de 150 000 enregistrements : 3 secondes en local

Pour remplir une table mémoire par programmation vous pouvez ajouter à la fin du traitement
Nom de table créé : ?Table?
ConstruitTableFichier(Table,RsL,taSansMémoImage+taSansMémoTexte+taLibelléRubrique+taRemplirTable)


Et voilà vos données sont affichées dans une table mémoire
De plus en cliquant sur les colonnes vous pouvez connaître les produits les plus vendus pour le mois voulu.

Contribution le : 05/09/2004 02:15
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Code Windev pour afficher une requete sur la Vente mensuelle par articles et generer les stats
Anonyme
Merci drcharly93....Je te tiendrai au courant...
Nous te remercions beaucoup

Contribution le : 05/09/2004 03:16
Créer un fichier PDF de la contribution Imprimer


Re: Code Windev pour afficher une requete sur la Vente mensuelle par articles et generer les stats
Anonyme
Salut
Je cherche procedure pour afficher une mensuelle sur les produits.quelqu'un pourrait il m'expliquer quèest ce code fait et comment l'adapter à mes besoins.
Merci

Contribution le : 02/05/2005 05:26
Créer un fichier PDF de la contribution Imprimer


Re: Code Windev pour afficher une requete sur la Vente mensuelle par articles et generer les stats
Anonyme
Salut

Quelqu'un pourrait il nous expliquer ce que cette requete fait.
A+

Contribution le : 19/05/2005 14:05
Créer un fichier PDF de la contribution Imprimer


Re: Code Windev pour afficher une requete sur la Vente mensuelle par articles et generer les stats
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Il ne s'agit pas d'une requête mais plus précisemment d'une procédure qui effectue :

- Création dynamique d'un fichier contenant les rubriques:
-- ISStat, sRubIdArticle, Janvier, Fevrier, Mars, Avril, Mai, Juin, Juillet, Aout, Septembre, Octobre, Novembre et Decembre.
- Création d'une vue sur le fichier des lignes de facture.
- Création d'un filtre sur le fichier des factures
- Parcours du fichier des factures filtrés et alimentaion du fichier dynamique précedement créé.
- Affichage du fichier dynamique dans une table mémoire

Contribution le : 20/05/2005 10:23
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Code Windev pour afficher une requete sur la Vente mensuelle par articles et generer les stats
Anonyme
Salut
Est il possible de m'édifier sur cette ligne de commentaire:
"Ce code à été testé et fonctionne
Encore faut il renseigner correctement les variables de déclaration"
-aussi si tu dispose d'une table facture(Cle NumFacture est une chaine et ligne de facture(IDlignefact est un idauto),y aurait il des changement a faire dans le present code .
Je suis curieux de le tester.
Amicalement

Contribution le : 20/05/2005 13:58
Créer un fichier PDF de la contribution Imprimer


Re: Code Windev pour afficher une requete sur la Vente mensuelle par articles et generer les stats
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Ce code avait été écrit de façon à ce que que seules la valeurs des variables soient à modifier.
Par conséquent:
sFicFacture est une chaîne = "CLICDEH"	//Nom du fichier Facture
sFicLigne est une chaîne = "CLICDEL"    //Nom du fichier ligne de facture
sFicStat est une chaîne = "STAT1"       //Nom du fichier temporaire pour statistique mensuelle
sDateDebut est une chaîne = "20030101"  //Date début stat
sDateFin est une chaîne = "20031231"	//Date fin Stat
sRubriqueParcours est une chaîne = "DatePiece" //Nom de la rubrique de parcours sur fichier facture   
sRubIdArticle est une chaîne = "GUIARTICLE" //Nom de rubrique Identifiant Article Idem au Fichier facture
sIdFacture est une chaîne = "NumeroDePiece" //Nom de la rubrique Id de Facture lier et de meme nom que dans Ligne de facture
sRubARenvoyer est une chaîne = "MontantTotalHT" //Nom de la rubrique qui contient la valeur à calculer


A l'exception de "STAT1" qui est un fichier créer dynamiquement, toutes les autres valeurs sont à modifier pour qu"elles correspondent aux noms, soit des fichiers ou bien des rubriques.

en dehors de la déclaration et de l'initialisation des varibles le code ne devrait pas avoir à subir de changement.

Quand je dit :
Citation :
Ce code à été testé et fonctionne

c'est tout simplement que jai utiliser des données en ma possession pour tester cette procédure, et que je n'ai eu à modifier que la valeur des variables déclarées en situées en haut du code fourni.

Contribution le : 20/05/2005 14:37
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2