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 :

Mon code sql ne compile pas dans mon algorithme


Sujet :

WinDev

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2015
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2015
    Messages : 405
    Points : 0
    Points
    0
    Par défaut Mon code sql ne compile pas dans mon algorithme
    Bonsoir!
    Pardons aidez moi à régler mon code sql; quand je mets DISTINCT il ne reconnait pas; quand j'ai enlevé il ne reconnait pas encore les AS ....etc.
    peut être je fait mal le code car c'est ma première fois d'essayer le code avec sql.
    voici le code:
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    d est un entier=0
    q est un entier=0
     
    HLitRechercheDernier(Comporte,Designation,FEN_Fiche_Contient.SC_Fiche.COMBO_Designation)
    SI HTrouve(Comporte) ALORS
    SELECT 
    Comporte.Designation AS D1,
    Comporte.Nom_magasin AS N1,
    Comporte.Date_peremption AS DP1,	
    SUM(Comporte.Qte) AS qt1
    FROM Comporte
    WHERE Designation=FEN_Fiche_Contient.SC_Fiche.COMBO_Designation
    SELECT 
    Contient.Designation AS D2,
    Contient.Nom_magasin AS N2,
    Contient.Date_peremption AS DP2,	
    SUM(Contient.Qte) AS qt2
    FROM Contient
    WHERE Designation=FEN_Fiche_Contient.SC_Fiche.COMBO_Designation AND Contient.Date_peremption=Comporte.Date_peremption
     
    q=qt1-qt2
    HLitPremier(Dureperemption)
    		SI DateValide( Comporte.Date_peremption) ALORS
    			d=DateVersEntier(Comporte.Date_peremption)-DateVersEntier(DateSys())			
    			SI d<Dureperemption.Dure ET d>0 ALORS
    				SI qt1>qt2 ALORS
    					Info((q)+RC+"quantite(s) de"+RC+Comporte.Designation+RC+"sera perimé dans "+RC+d+RC+"jour(s)"+RC+"date de peremption:"+RC+Comporte.Date_peremption)
     
    				FIN
    			FIN
    		FIN
    FEN_Fiche_Contient.SC_Fiche.SAI_Date_peremption=Comporte.Date_peremption	
    FEN_Fiche_Contient.SC_Fiche.COMBO_Nom_magasin=Comporte.Nom_magasin	
    FIN		
    HLitRecherche(PRODUIT,Designation,FEN_Fiche_Contient.SC_Fiche.COMBO_Designation)
    	SI HTrouve(PRODUIT) ALORS
    		FEN_Fiche_Contient.SC_Fiche.SAI_Pv=PRODUIT.Pv
    		FEN_Fiche_Contient.SC_Fiche.SAI_TVA=PRODUIT.Pv*PRODUIT.Taux_TVA
    		FEN_Fiche_Contient.SC_Fiche.SAI_TPvHT=PRODUIT.Pv*FEN_Fiche_Contient.SC_Fiche.SAI_Qte
    		FEN_Fiche_Contient.SC_Fiche.SAI_TPvTTC=FEN_Fiche_Contient.SC_Fiche.SAI_TPvHT+FEN_Fiche_Contient.SC_Fiche.SAI_TVA
    		FEN_Fiche_Contient.SC_Fiche.SAI_Remise=FEN_Fiche_Contient.SC_Fiche.SAI_TPvTTC*PRODUIT.Taux_remise
    		FEN_Fiche_Contient.SC_Fiche.SAI_Qte=q
     
    	FIN

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 049
    Points : 9 384
    Points
    9 384
    Par défaut
    Je pourrais te donner la réponse, mais ça ne t'aiderait pas. Tu recopierais la réponse sans comprendre, et tu resterais toujours incompétent en SQL

    Voici un lien vers un bon tutoriel : http://sqlpro.developpez.com/

    Et comme je sais que tu ne voudras pas tout lire, voici un 2ème lien encore plus précis :
    http://sqlpro.developpez.com/cours/sqlaz/ensembles/
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2015
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2015
    Messages : 405
    Points : 0
    Points
    0
    Par défaut
    Merci pour ton coup de main mais ça ne m'aide pas.
    J'ai juste besoin des corrections sur mon problème.
    J'ai copié le code de requête sélection qui marche bien et j'ai mis sur l'éditeur de code, mais ça ne compile pas.
    Si vous saviez quelle que chose, avant de renvoyer quelqu'un sur un cours, essayer de faire ce qu'il faut sur son cas typique.
    merci

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 049
    Points : 9 384
    Points
    9 384
    Par défaut
    Comme disait Confucius le sage, quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner du poisson.

    C'est pourquoi je te redonne ce lien : http://sqlpro.developpez.com/cours/sqlaz/ensembles/

    Et tu peux essayer me mentir en disant que ta requête selection marche bien, je n'en crois pas un mot. Ne prend pas les gens pour des imbéciles si tu veux qu'ils t'aident.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2015
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2015
    Messages : 405
    Points : 0
    Points
    0
    Par défaut
    ça c'est quelle désinvolture?
    Arrêter d'insulter les gens;
    Laisse moi avec mes problèmes si tu n'as pas de solution.
    Nous sommes là pour se faire aider.
    Il n'y a pas d'enfant sur ce site, il n'y a que des débutants sages.
    Vos cours sont la bien venu, mais celui qui connait renvoie sur un cours après avoir solutionner le problèmes.
    si tu ne connais pas, laisser les gens avec leurs problèmes.
    et arrêter d'embêter et de taquiner.
    j'ai déjà lu ton cours mais je vois pas ce que je cherche.
    et mon histoire de requête sélection est bien vraie, donc faite gaf;
    il faut dire à ton enfant d'aller étudier.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Février 2010
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2010
    Messages : 553
    Points : 1 075
    Points
    1 075
    Par défaut
    L'exécution sql doit se faire avec la fonction sqlexec et pas directement dans le code wd

    http://doc.pcsoft.fr/fr-FR/?3072007

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2015
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2015
    Messages : 405
    Points : 0
    Points
    0
    Par défaut
    Bonjour Monsieur Courdi95!
    je suis très content de mon avancé sur ce code.
    je crois bien que vous comprenez mon idée, càd ce que je veux faire.
    en fait j'ai travaillé sur votre cours et je suis parvenus à ce code en bas; qui compil bien mais c'est l'exécution qui pose problème.
    voici le message d'erreur:
    Vous avez appelé la fonction SQLExec.
    Il n'y a pas de connexion courante.
    je suis allé dans outil WDsql-interrogateur et régler les paramétrés, puis j'ai lancé de nouveau windev17 et quand je sélectionne le champ concerné càd le champ sur le quel j'ai effectué le code il m'affiche toujours ce code d'erreur.
    voici le code:
    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
    33
    34
    35
    36
    37
    38
    39
    d est un entier=0
    q est un entier=0
    qt1 est un entier=0
    qt2 est un entier=0
    TexteRequête1 est une chaîne
    TexteRequête2 est une chaîne
     
    HLitRechercheDernier(Comporte,Designation,FEN_Fiche_Contient.SC_Fiche.COMBO_Designation)
    SI HTrouve(Comporte) ALORS
    	TexteRequête1 = "SELECT Comporte.Designation AS D1,Comporte.Nom_magasin AS N1,Comporte.Date_peremption AS DP1,SUM(Comporte.Qte) AS q1  FROM Comporte WHERE Designation=FEN_Fiche_Contient.SC_Fiche.COMBO_Designation"
    	SQLExec(TexteRequête1, "REQ1")
    	qt1= SQLCol("REQ1", 1)
    	TexteRequête2 ="SELECT Contient.Designation AS D2,Contient.Nom_magasin AS N2,Contient.Date_peremption AS DP2,SUM(Contient.Qte) AS q2 FROM Contient WHERE Designation=FEN_Fiche_Contient.SC_Fiche.COMBO_Designation AND Contient.Date_peremption=Comporte.Date_peremption"
    	SQLExec(TexteRequête2, "REQ2")
    	qt2= SQLCol("REQ2", 1)
    	q=qt1-qt2
    HLitPremier(Dureperemption)
    		SI DateValide( Comporte.Date_peremption) ALORS
    			d=DateVersEntier(Comporte.Date_peremption)-DateVersEntier(DateSys())			
    			SI d<Dureperemption.Dure ET d>0 ALORS
    				SI qt1>qt2 ALORS
    					Info((q)+RC+"quantite(s) de"+RC+Comporte.Designation+RC+"sera perimé dans "+RC+d+RC+"jour(s)"+RC+"date de peremption:"+RC+Comporte.Date_peremption)
     
    				FIN
    			FIN
    		FIN
    FEN_Fiche_Contient.SC_Fiche.SAI_Date_peremption=Comporte.Date_peremption	
    FEN_Fiche_Contient.SC_Fiche.COMBO_Nom_magasin=Comporte.Nom_magasin	
    FIN		
    HLitRecherche(PRODUIT,Designation,FEN_Fiche_Contient.SC_Fiche.COMBO_Designation)
    	SI HTrouve(PRODUIT) ALORS
    		FEN_Fiche_Contient.SC_Fiche.SAI_Pv=PRODUIT.Pv
    		FEN_Fiche_Contient.SC_Fiche.SAI_TVA=PRODUIT.Pv*PRODUIT.Taux_TVA
    		FEN_Fiche_Contient.SC_Fiche.SAI_TPvHT=PRODUIT.Pv*FEN_Fiche_Contient.SC_Fiche.SAI_Qte
    		FEN_Fiche_Contient.SC_Fiche.SAI_TPvTTC=FEN_Fiche_Contient.SC_Fiche.SAI_TPvHT+FEN_Fiche_Contient.SC_Fiche.SAI_TVA
    		FEN_Fiche_Contient.SC_Fiche.SAI_Remise=FEN_Fiche_Contient.SC_Fiche.SAI_TPvTTC*PRODUIT.Taux_remise
    		FEN_Fiche_Contient.SC_Fiche.SAI_Qte=q
     
    	FIN
    merci d'avance!

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Bonjour,
    Pour lancer une requête avec SqlExec(), il faut en premier se connecter à la base de données avec SqlConnect().
    Il manque également des SqlAvance(), SqlFerme()... Tu devrais jeter un œil à l'aide en ligne de sqlExec(), il doit y avoir un exemple.
    Comme je vois dans ton code des ordres h*, je te suggères d'utiliser hExecuteRequeteSQL().
    Tu peux aussi créer la requête dans WinDev, puis la lancer avec hExecuteRequete().
    Regarde dans l'aide les requêtes paramétrées pour plus de détails.

    Tatayo.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2015
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2015
    Messages : 405
    Points : 0
    Points
    0
    Par défaut
    Une précision;
    Pour mon cas ici, moi je voudrais recupérrer le résultat de SUM(Comporte.Qte et de SUM(Contient.Qte) puis metre dans qt1 et qt2 pour faire mes calcules.
    donc j'ai deux problémes: connexion et correction par rapport à la recupération de somme de ces deux quantités

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2015
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2015
    Messages : 405
    Points : 0
    Points
    0
    Par défaut
    Oui bonjour Monsieur tatayo!
    je ferrai tout de suite une requête sélection.
    mais avant j'ai une inquiétude; comment récupérer le résultat comme expliquer en haut pour mettre dans une variable?

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    C'est expliqué dans l'aide en ligne, dans les exemples... Il faut chercher un peu.
    Accessoirement, tes requêtes ne vont pas passer pour deux raisons:
    1. Pour utiliser des variables et autres champs, il faut les passer en paramètre à la requête
    2. Syntaxiquement parlant, elles ne sont pas correctes

    Pour le point 1, comme je l'ai indiqué, il faut regarder l'utilisation de requête paramétrées (ou construire le code de la requête avec ChaineConstruit()).
    Pour le point 2, comme suggéré par tbc92, regarde bien les tutos sur le langage SQL, et surtout les agrégations.

    Tatayo.

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2015
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2015
    Messages : 405
    Points : 0
    Points
    0
    Par défaut
    Bonsoir;
    après beaucoup de retouche et de lecture, je pense que les paramètres sont des champs recherchés dans mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HLitRechercheDernier(Comporte,Designation,FEN_Fiche_Contient.SC_Fiche.COMBO_Designation)
    qui sont affectés aux champs dans la clause where.
    Je doute beaucoup sur ma connexion; alors veuillez regarder le chemin d’accès de ma connexion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLConnecte("D:\MARCHANDISES\LG_MARCHANDISE.WDD", "", "")
    je suis sur le lecteur D et dans le dossier MARCHANDISES; mon problème se trouve maintenant l’accès à l'analyse.
    le code compile bien et les tests précisent le problème au niveau du résultat de la première requête rencontrée.
    le message d'erreur est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Erreur à la ligne 185 du traitement Sélection d'une ligne de COMBO_Designation ( SC_Fiche ).
    La fonction SQLCol aurait dû renvoyer une valeur.
    le code sql en bas:
    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
    d est un entier=0
    q est un entier=0
    qt1 est un entier=0
    qt2 est un entier=0
    TexteRequête1 est une chaîne
    TexteRequête2 est une chaîne
     
    Info("avant acces")
    HLitRechercheDernier(Comporte,Comporte.Designation,FEN_Fiche_Contient.SC_Fiche.COMBO_Designation)
    SI HTrouve(Comporte) ALORS
    	Info("apres acces")
    	SQLConnecte("D:\MARCHANDISES\LG_MARCHANDISE.WDD", "", "")
    	TexteRequête1 = "SELECT Designation ,Nom_magasin ,Date_peremption ,SUM(Qte)   FROM Comporte WHERE Designation=Comporte.Designation AND Date_peremption=Comporte.Date_peremption"
    	SQLExec(TexteRequête1, "REQ1")
    	//SQLPremiere("REQ1")        // Il y a encore une ligne à lire
    	qt1= SQLCol("REQ1", 4)	
    	SQLFerme("REQ1")
    	TexteRequête2 ="SELECT Designation ,Nom_magasin ,Date_peremption ,SUM(Qte) FROM Contient WHERE Designation=Comporte.Designation AND Date_peremption=Comporte.Date_peremption"
    	SQLExec(TexteRequête2, "REQ2")
    	qt2= SQLCol("REQ2", 4)	
    	SQLFerme("REQ2")
    	Info(qt1)
    	Info(qt2)
    	q=qt1-qt2
    merci d'avance

  13. #13
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Pour commencer, je dira:
    Citation Envoyé par tatayo Voir le message
    Il manque également des SqlAvance(), SqlFerme()... Tu devrais jeter un œil à l'aide en ligne de sqlExec(), il doit y avoir un exemple.
    Ici WinDev t'indiques que le problème est au niveau de SqlCol(). Mais est-ce que la requête fonctionne ? Tu ne sais pas (en fait il est clair que non, pais bon). Et si elle ne fonctionne pas, est-ce que la connexion c'est bien faite ? Tu ne sais pas.
    Donc si tu vérifies le retour de chaque fonction SQL*, tu devrais avoir un début de piste. Règle de base: toujours vérifier le retour des fonctions, et le cas échéant récupérer le message d'erreur.

    Je ne sais pas si la connexion fonctionne (et toi non plus, tant que tu vérifies pas), mais quoi qu'il ne soit tes requêtes ne peuvent pas fonctionner.
    Comme je l'ai indiqué précédemment, tu ne peux pas utiliser des champs ou des variables dans une requête. Tu dois passer soit par une requête paramétrée (hExecuteRequete*), soit construire la requête (pour les ordres SQL*) avec ChaineContruit(). MAis ça aussi je l'ai déjà dit.
    De plus, comme on te l'ai également déjà fait remarqué, tes requêtes ne sont pas justes*. Regardes bien de nouveau encore une fois les tutoriels SQL concernant les agrégations (SUM, AVG...).

    Vu que tu utilises déjà des focntions h*, je tu conseilles de laisser de côté les ordres SQL* et de tout faire avec des ordres h*. Ne cherche pas pour l'instant à mixer les deux.

    Donc relis bien tout ce qu'on t'as dis, compare avec ce que tu as fait et tu verra ce qu'il te faut corriger.

    Tatayo.

    * en fait MySQL acceptera bien cette requête, mais uniquement à cause d'un support boiteux de la norme SQL...

  14. #14
    Invité
    Invité(e)
    Par défaut
    Bonjour, le mieux serait de tester vos requêtes SELECT dans votre SGBD, d'une part, vous saurez si la requête construite fonctionne ou pas, si elle plante, la raison du bug

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2015
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2015
    Messages : 405
    Points : 0
    Points
    0
    Par défaut
    merci à tous!
    mon code marche à merveille grâce à votre concours.
    et le voici:
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    d est un entier=0
    q est un entier=0
    qt1 est un entier=0
    qt2 est un entier=0
    TexteRequête1 est une chaîne
    TexteRequête2 est une chaîne
    j est une Date
    i est une chaîne
    k est une chaîne
    o est une chaîne
    x est une chaîne
    y est une Date
     
    //sParam2 est une chaine
    HLitRechercheDernier(Comporte,Comporte.Designation,FEN_Fiche_Contient.SC_Fiche.COMBO_Designation)
    SI HTrouve(Comporte) ALORS
    	FEN_Fiche_Contient.SC_Fiche.SAI_Date_peremption=Comporte.Date_peremption	
    	FEN_Fiche_Contient.SC_Fiche.COMBO_Nom_magasin=Comporte.Nom_magasin
    	o=Comporte.Nom_magasin
    	x=FEN_Fiche_Contient.SC_Fiche.COMBO_Designation
    	y=Comporte.Date_peremption			
      	SQLConnecte("D:\MARCHANDISES\LG_MARCHANDISE.WDD", "", "")
    	TexteRequête1 = "SELECT DISTINCT  Designation  , Nom_magasin  ,Date_peremption , Qte FROM Comporte  "
    	SQLExec(TexteRequête1, "REQ1")
    	TANTQUE SQLAvance("REQ1") = 0			
    		i=SQLLitCol("REQ1", 1)
    	SI i=x ALORS
    			k=SQLLitCol("REQ1", 2)	
    		 SI k=o ALORS
    				j=SQLLitCol("REQ1", 3)				
    			SI j=y ALORS					
    					HLitDernier(COPIECOMPORTE)
    					COPIECOMPORTE.RQC = SQLLitCol("REQ1", 4)
    					COPIECOMPORTE.RQCI=0
    					HAjoute(COPIECOMPORTE)
    			FIN
    		FIN
    	FIN
     
     
    FIN	
    	SQLFerme("REQ1")
    	TexteRequête2 ="SELECT DISTINCT Designation ,  Nom_magasin  ,  Date_peremption ,  Qte  FROM Contient  "
    	SQLExec(TexteRequête2, "REQ2")
    TANTQUE SQLAvance("REQ2") = 0	
    		i=SQLLitCol("REQ2", 1)		
    		SI i=x ALORS
    			k=SQLLitCol("REQ2", 2)			
    			SI k=o ALORS
    				j=SQLLitCol("REQ2", 3)				
    				SI j=y ALORS					
    					HLitDernier(COPIECOMPORTE)
    					COPIECOMPORTE.RQC=0
    					COPIECOMPORTE.RQCI = SQLLitCol("REQ2", 4)					
    					HAjoute(COPIECOMPORTE)						
    				FIN
    		FIN	
     
    	FIN
    FIN
    	SQLFerme("REQ2")
    	HLitPremier(COPIECOMPORTE)
    	TANTQUE PAS HEnDehors(COPIECOMPORTE)
    		SI COPIECOMPORTE.RQC<>"" ALORS			
    		qt1+=COPIECOMPORTE.RQC
    		FIN
    		SI COPIECOMPORTE.RQCI<>"" ALORS	
    		qt2+=COPIECOMPORTE.RQCI
    		FIN
    		HLitSuivant(COPIECOMPORTE)	
    	FIN
    	HSupprimeTout(COPIECOMPORTE)	
    	q=qt1-qt2	
    HLitPremier(Dureperemption)
    		SI DateValide( Comporte.Date_peremption) ALORS
    			d=DateVersEntier(Comporte.Date_peremption)-DateVersEntier(DateSys())			
    			SI d<Dureperemption.Dure ET d>0 ALORS
    				SI qt1>qt2 ALORS
    					Info((q)+RC+"quantite(s) de"+RC+Comporte.Designation+RC+"sera perimé dans "+RC+d+RC+"jour(s)"+RC+"date de peremption:"+RC+Comporte.Date_peremption)
     
    				FIN
    			FIN
           FIN
    FIN		
    HLitRecherche(PRODUIT,Designation,FEN_Fiche_Contient.SC_Fiche.COMBO_Designation)
    	SI HTrouve(PRODUIT) ALORS
    		FEN_Fiche_Contient.SC_Fiche.SAI_Pv=PRODUIT.Pv
    		FEN_Fiche_Contient.SC_Fiche.SAI_TVA=PRODUIT.Pv*PRODUIT.Taux_TVA
    		FEN_Fiche_Contient.SC_Fiche.SAI_TPvHT=PRODUIT.Pv*FEN_Fiche_Contient.SC_Fiche.SAI_Qte
    		FEN_Fiche_Contient.SC_Fiche.SAI_TPvTTC=FEN_Fiche_Contient.SC_Fiche.SAI_TPvHT+FEN_Fiche_Contient.SC_Fiche.SAI_TVA
    		FEN_Fiche_Contient.SC_Fiche.SAI_Remise=FEN_Fiche_Contient.SC_Fiche.SAI_TPvTTC*PRODUIT.Taux_remise
    		FEN_Fiche_Contient.SC_Fiche.SAI_Qte=q
     
    	FIN

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 217
    Points : 487
    Points
    487
    Par défaut
    Bonjour,

    Il est bien dommage que vous mettiez en oeuvre à peine 1% des conseils qui vous ont été donnés.
    Vous allez finir par démotiver les personnes qui ont pris de leur temps pour vous répondre.

    Cordialement

    Madsl@nD

  17. #17
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par madsland Voir le message
    Bonjour,

    Il est bien dommage que vous mettiez en oeuvre à peine 1% des conseils qui vous ont été donnés.
    Vous allez finir par démotiver les personnes qui ont pris de leur temps pour vous répondre.

    Cordialement

    Madsl@nD
    surtout que son code est loin d'être optimisé :p

  18. #18
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2015
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2015
    Messages : 405
    Points : 0
    Points
    0
    Par défaut
    Bonsoir;
    il y a un adage qui dit que la fin justifie les moyens et dés que courdi95 m'a poste son lien j'ai retrouvé mon chemin.
    ce que je cherchais étais là et il n'étais pas question d'abandonner.
    l'essentiel qu'elle fasse mon affaire.
    surtout ne parle pas assez vite même si vous êtes expert; regardez très bien mon code et essaye de comprendre mon objectif pour savoir si on peut l'optimiser ou non.
    l'idée est que: quand je selectionne le champ sai_contient qui permet de ramener un produit;il doit chercher dans la table_comporte le magasin dans le quel le produit est stocké;la date_peremption; et la requête se sert de ses champs pour trouver les lignes correspondantes aux quantité achetées.
    dans sqlavance, les différentes quantités sont stockées dans un fichier puis récupérer après la sortie dans une variable en effectuant la somme.
    je reprend la même schéma sur la vente.
    avec l'ordre h* je ne m'en sortais pas car le programme n'étais pas stable; tantôt ça fonctionne, tantôt ça ne fonctionne pas et je ne trouvais pas la cause.
    Tout ce que j’attends de vous c'est de savoir si le code marche ou pas. si le résultat est plausible avec une trace.
    ne soyez pas un ruse càd rendez à césar ce qui appartient à césar.
    les requête paramétrés ne m'arrangeais pas ici.
    vous pouvez essayer chez vous pour voir s'il y a une solution avec ça.

  19. #19
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 049
    Points : 9 384
    Points
    9 384
    Par défaut
    Effectivement, si tu ne savais pas qu'on pouvait trouver de l'aide sur les différentes fonctions Windev sur le site de Pcsoft, tu ne pouvais pas t'en sortir.

    Personnellement, quand je programme, j'ai besoin d'aller faire des vérificiations sur ce site à peu près toutes les 20 minutes ; donc j'imagine que c'est la même chose pour un débutant.

    Au cas où, un tuyau utile : Quand tu es dans l'éditeur de code, tu positionnes le curseur de la souris sur un mot clé (le mot select par exemple), puis tu cliques sur F1. Ca t'emmène directement ou presque vers la page donnée par COURDI95.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  20. #20
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2015
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2015
    Messages : 405
    Points : 0
    Points
    0
    Par défaut
    Merci pour tout!
    Je suis ravis de vous revoir; vous saviez il y a assez de documents à lire.
    si un problème est posé essayez de donnée un tuto qui s'attaque au squelette du problème sans quoi l'intéressé finira par abandonner et le mettre en resserve même si c'est un bon tuto.
    D’ailleurs si c'est le cas essayez de résoudre son problème au lieu de lui renvoyer sur un tuto.
    Je vous apprécie par le fait d'être intervenir avec beaucoup de volonté à l'appui.
    il y en a d'autre qui n'assiste pas les débutants sauf les pro.
    merci encore.

Discussions similaires

  1. Erreur de syntaxe dans mon code SQL
    Par Salsaboy60 dans le forum Requêtes
    Réponses: 2
    Dernier message: 18/04/2014, 21h08
  2. fonction explode() ne fonctionne pas dans mon code
    Par Invité dans le forum Langage
    Réponses: 12
    Dernier message: 08/02/2013, 10h34
  3. pb dans mon code SQL
    Par abousa3d dans le forum SQL
    Réponses: 5
    Dernier message: 03/12/2009, 11h10
  4. Probleme ADO adapter une requete sql pour l'utiliser dans mon code vb6
    Par jacko842 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 22/04/2009, 15h53

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