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

  1. #21
    Nouveau Candidat au Club
    windev
    Citation Envoyé par Voroltinquo Voir le message
    Désolé, la boule de cristal est en panne, sans une copie écran de l'analyse on ne peut rien faire.
    On peut insérer une copie écran dans les post avec "insérer une image" dans la barre d'icone.
    Je connais peu de monde qui télécharge les fichiers.
    c'est fait

    Cordialement

  2. #22
    Membre chevronné
    Je suppose que le libellé est le nom du conditionnement
    Il y a peut être plus simple, mais ça tourne

  3. #23
    Membre régulier
    Salut anakinsqt.
    Je propose que tu modifie ton analyse. Vu que les intitulés seront utilisés pour faire une recherche, je propose que tu modifie la clé de cette rubrique (c'est-à-dire la rubrique intitulé) en "clé avec doublons".

    Ensuite, voici le code que tu pourrais mettre derrière la combo; précisément lors de la sélection d'une ligne de cette dernière:
    N'oubliez pas le petit pouce, si mon message vous a été utile.

  4. #24
    Expert éminent
    @StephCool :
    1. Modif d'analyse : pas sûr que ce soit possible.
    2. Si modif : Je n'aurais pas mis en clé : aucun intérêt
    3. Si modif : J'aurais plutôt créé une table des conditionnements avec un id auto (clé unique) et mis cet id dans les tables qui utilisent le conditionnement (au lieu du libellé).
    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.

    Make it real not fantasy.

  5. #25
    Membre chevronné
    Citation Envoyé par frenchsting Voir le message

    1. Modif d'analyse : pas sûr que ce soit possible.
    Je crains malheureusement qu'il faille en passer par là. L'analyse de anakinsqt est loin d'être 2FN (e.g. l'attribut société qui dépend de Fournisseur.)
    Les tables entrées et sorties qui sont les mêmes entités (un booléen peut enlever l'ambigüité.)
    Citation Envoyé par frenchsting Voir le message

    3. Si modif : J'aurais plutôt créé une table des conditionnements avec un id auto (clé unique) et mis cet id dans les tables qui utilisent le conditionnement (au lieu du libellé).
    C'est en effet la solution la plus simple au niveau de la maintenance. cf la firme de soda au logo rouge qui est passé d'un conditionnement de 1.5l à 1.25l, pour ne pas avoir à augmenter ses prix suite à la "taxe soda", tout en gardant les mêmes références.

    @anakinsqt
    Je te conseille vivement de relire tes cours sur les SGBD relationnels, quitte à les compléter par http://georges.gardarin.free.fr/Livr...XX-TotalBD.pdf, puis, comme te l'ont déjà écrit de nombreuses personnes de suivre l'auto formation. (après le Gardarin, c'est comme lire Oui Oui après s'être tapé Guerre et paix)
    En attendant je te propose cette analyse. La différence entre les données concernant les entrées et les sorties se fait grâce à l'attribut NDX_TypeMouvement
    Il y a peut être plus simple, mais ça tourne

  6. #26
    Expert éminent
    @Voroltinquo +1

    En fait, je n'ai même pas regardé l'analyse (juste l'histoire du conditionnement). Comme c'est pour l'afficher dans une combo, c'est un réflexe (presque pavlovien ) de mettre un id.

    En la regardant vite fait, j'avoue que mettre 2 tables, c'est pas top. Après, ça peut se justifier. Mais c'est clair que c'est pas 2FN).
    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.

    Make it real not fantasy.

  7. #27
    Rédacteur/Modérateur

    Je pense que vous êtes perfectionniste. D'après ce que je comprends , il faut voir ce conditionnement comme une description secondaire du produit. On a un identifiant-produit. On a un des champs où on affiche la description-n°1 du produit (via une combo). Et quand on choisit tel ou tel enregistrement, il faut afficher dans un autre champ la description n°2 du produit (=son conditionnement).

    Personnellement, je n'aime pas les combo-liste. Une combo de type Table permettrait de faire ça très bien. Dans la combo, on a une table (au lieu d'une liste classiquement), et dans cette table, on a le conditionnement dans une colonne masquée.

    Et la seule ligne de code à mettre dans le programme va être, quand on sélectionne une ligne de la combo :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    libelle1 = combo1.colonne_conditionnement  [combo1]
    // ou peut-être :
    libelle1 = combo1[combo1].colonne_conditionnement


    Je mets le conditionnement dans une colonne masquée. Mais dans un premier temps, il faut laisser cette colonne visible. C'est moins beau, mais ça permet de détecter des bugs éventuels. Toujours avancer étape par étape.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  8. #28
    Membre régulier
    Citation Envoyé par frenchsting Voir le message
    @StephCool :
    1. Modif d'analyse : pas sûr que ce soit possible.
    2. Si modif : Je n'aurais pas mis en clé : aucun intérêt
    3. Si modif : J'aurais plutôt créé une table des conditionnements avec un id auto (clé unique) et mis cet id dans les tables qui utilisent le conditionnement (au lieu du libellé).
    Voici ce que je voulais dire: modifier le fichier de donnée "Produit";


    Toutefois, je ne demande pas de supprimer les autres rubriques du fichier de donnée (si il y en a d'autre, en plus des deux que j'ai mis dans mon fichier)
    Je demande juste de mettre la rubrique "Libellé" en "clé avec doublons"
    N'oubliez pas le petit pouce, si mon message vous a été utile.

  9. #29
    Expert éminent
    @StephCool,
    je ne suis pas sûr que cela ait une vraie utilité. Pour le moment, le souci principal est le conditionnement. J'ai également l'impression que tu confond le libellé du conditionnement et le libellé du produit ! On parle bien d'un produit qui a un id et un libellé et un conditionnement. Ex: id : 12, Libellé : bouteille d'eau, conditionnement : Bouteille plastique 1,5l.
    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.

    Make it real not fantasy.

  10. #30
    Membre régulier
    Salut anakinsqt. Peut-on echanger?
    N'oubliez pas le petit pouce, si mon message vous a été utile.

  11. #31
    Membre régulier
    Citation Envoyé par frenchsting Voir le message
    @StephCool,
    je ne suis pas sûr que cela ait une vraie utilité. Pour le moment, le souci principal est le conditionnement. J'ai également l'impression que tu confond le libellé du conditionnement et le libellé du produit ! On parle bien d'un produit qui a un id et un libellé et un conditionnement. Ex: id : 12, Libellé : bouteille d'eau, conditionnement : Bouteille plastique 1,5l.
    Le conditionnement n'a pas de Libellé, @frenchsting, d'après l'analyse que anakinsqt nous a fourni.
    "Libellé" et "conditionnement" sont des rubriques du fichiers "Produit"; retourne voir sa capture de l'analyse.
    Voici comment j'ai compris son problème:
    il a (sur une fenêtre) une combo et un champ de saisi et la combo est remplie avec les libellés des produits.
    lorsqu'on sélectionne un libellé dans la combo, le conditionnement correspondant (dans le fichier de donnée Produit) devrait être mis dans le champ de saisi présent sur la fenêtre. @anakinsqt, c'est bien cela, non?
    N'oubliez pas le petit pouce, si mon message vous a été utile.

  12. #32
    Membre régulier
    Si donc en fonction du libellé on affiche un conditionnement, il serait intérêssant d'utiliser le libellé comme clé doublons, pour faciliter la recherche dans la base de donnée
    N'oubliez pas le petit pouce, si mon message vous a été utile.

  13. #33
    Nouveau Candidat au Club
    Windev 20
    J'ai effectué des recherches dans des tutos et sur des forums, j'ai donc saisie dans ma combo Libellé et le test m'indique que le Conditionnement a bien été trouvé.
    Mais toujours pas de solution pour que cela s'affiche dans le champ de saisie Conditionnement

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    HLitRecherchePremier(EntréeStock,Conditionnement,Conditionnement)
    SI HTrouve(EntréeStock) ALORS
    	Info("conditionnement trouvé")
     
     
    SINON
    	Avertissement("conditionnement non trouvé")
    FIN


    Merci pour votre aide

  14. #34
    Membre régulier
    Okay c'est déjà bon. Voici ce que tu dois faire pour afficher le conditionnement:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    HLitRecherchePremier(EntréeStock,Conditionnement,Conditionnement)
    SI HTrouve(EntréeStock) ALORS
    	SAI_conditionnement=EntréeStock.Conditionnement
            //SAI_conditionnement étant le champ de saisi dans lequel tu veux que le conditionnement s'affiche
     
    SINON
    	Avertissement("conditionnement non trouvé")
    FIN
    N'oubliez pas le petit pouce, si mon message vous a été utile.

  15. #35
    Nouveau Candidat au Club
    windev
    Merci pour votre aide; mais SAI_Conditionnement ne prends pas, il s'affiche en rouge avec un message d'erreur

  16. #36
    Membre régulier
    Citation Envoyé par anakinsqt Voir le message
    Merci pour votre aide; mais SAI_Conditionnement ne prends pas, il s'affiche en rouge avec un message d'erreur
    Ce n'est pas étonnant (cela signifie que le champs SAI_conditionnement n'existe pas)...
    Quel est le nom du champ dans lequel le conditionnement doit s'afficher?
    N'oubliez pas le petit pouce, si mon message vous a été utile.

  17. #37
    Membre régulier
    @anakinsqt, finalement, quelle est l'analyse que tu utilises? parce qu'a relire les messages que frenchsting m'adresse, nous ne travaillons pas sur les même analyse. J'ai aussi vu une autre analyse que voroltinquo a envoyé.
    Peux-tu envoyer une capture d'écran de l'analyse que tu utilises actuellement?
    N'oubliez pas le petit pouce, si mon message vous a été utile.

  18. #38
    Membre régulier
    @Frenchsting, quelle analyse utilises tu?
    Si elle est différente de celle que j'utilise, je comprends donc pourquoi nous ne nous comprenions pas
    N'oubliez pas le petit pouce, si mon message vous a été utile.

  19. #39
    Nouveau Candidat au Club


    Voici des copies pour ce qui concerne le conditionnement

  20. #40
    Membre chevronné
    Le code d'anakinst trouvera le conditionnement si un produit précédent a déjà ce conditionnement. On recherche dans la table ENTREESTOCK un conditionnement donné.
    Le conditionnement est lié au PRODUIT (il n'a donc rien a faire la la table ENTREESTOCK)
    Pour une entrée donnée, il faut donc
    1-récupérer le conditionnement du produit dans la table PRODUIT soit via une requête, soit via hlitrecherche
    2-afficher le conditionnement.

    Dans le code de la combo produit il faudra ajouter (Sélection d'une ligne)
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SI HLitRecherche(Produit,PK_Produit,MoiMeme) ALORS  //La valeur mémorisée de la combo devra être PK_Produit
         SAI_Conditionnement=Produit.Conditionnement
    SINON
         Erreur("Une erreur est survenue"+CRLF+HErreurInfo())
    FIN


    SAI_Conditionnement ne doit être reliée à aucune rubrique. En effet, lors de l'affichage d'une donnée dans le champ combo, "Sélection d'une ligne" est exécutée
    Il y a peut être plus simple, mais ça tourne

###raw>template_hook.ano_emploi###