Je suppose que le libellé est le nom du conditionnement
Il y a peut-être plus simple, mais ça tourne.
Quand tout a échoué utilisez l'option RTFM
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.
@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.
Sur internet, tout est vrai ! Honoré de Balzac
Make it real not fantasy... Herman Rarebell
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é.)
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.
Quand tout a échoué utilisez l'option RTFM
@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.
Sur internet, tout est vrai ! Honoré de Balzac
Make it real not fantasy... Herman Rarebell
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 :
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.
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
N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.
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.
@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.
Sur internet, tout est vrai ! Honoré de Balzac
Make it real not fantasy... Herman Rarebell
Salut anakinsqt. Peut-on echanger?
N'oubliez pas le petit pouce, si mon message vous a été utile.
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.
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.
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
Merci pour votre aide
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
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.
Merci pour votre aide; mais SAI_Conditionnement ne prends pas, il s'affiche en rouge avec un message d'erreur
@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.
@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.
Voici des copies pour ce qui concerne le conditionnement
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)
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
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
Il y a peut-être plus simple, mais ça tourne.
Quand tout a échoué utilisez l'option RTFM
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager