PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Boucle sur fichiers liés
Boucle sur fichiers liés
Iniciado por Cedrle100, mar., 23 2024 10:09 AM - 7 respostas
Membro registado
16 mensagems
Popularité : +1 (1 vote)
Publicado em março, 23 2024 - 10:09 AM
Bonjour

J'ai quatre fichiers liés qui sont :
- Article_famille (IDFamille, famille) (= matières premières (en achat), produit fini (en vente), ou produit semi fini (en fabrication))
- Article (IDArticle, IDFamille_Article, Article)
- Article_num (IDArticle_Num, IDArticle, Numéro)
- Article composition (IDArticle_Composition, IDArticle_Num, IDArticle)

Un même article peut avoir plusieurs numéro et chaque numéro une composition d'articles (ex, un gâteau avec des compositions différentes). gâteau à 2 étages, dans le temps, la recette peut changer d'où les numéros
Un article peut aussi être composé d'autres articles eux même avec des compositions.
Dans notre exemple, du gâteau, chaque étage est composé d'articles.

Comment, lors de la fabrication, remonter tous les articles à prendre dans le stock et dans le bon ordre. Sachant que dans l'idéal j'aimerai ne pas être contrait par le nombre de sous recette qui compose un article. ici nous avons 3 niveau (produits fini, semi_fini, semi semi fini).

En premier on fabrique le premier étage, puis le deuxième puis on les assemble et enfin on conditionne le gâteau.

Pour le moment je suis parti sur :
Article :
- Gâteau 2 étages portion 250g
- Gâteau 2 étages
- Etage 1
- Etage 2
- oeufs
- sucres
- choclat
- Farine

Lors de la fabrication, j'aimerai avoir une vue avec le produit fini : Gâteau 2 étages portion 250g et la quantité commandée (réalisé) et Les sous articles à fabriquer :
Etage 1 puis Etage 2 puis Gâteau 2 étages
Pour le moment je suis limité à 3 niveau en faisant des boucles sur des requêtes qui vont chercher jusqu'à trois niveaux.
En espérant avoir était clair
Membro registado
3.891 mensagems
Popularité : +227 (347 votes)
Publicado em março, 23 2024 - 10:58 AM
Bonjour,
C'est le même problème qu'avec tes pâtes bolognaises. Le produit fini est un un article. Il faut donc utiliser une relation récursive. Sur la table Article (qui d'ailleurs est la même que celle des pâtes bolognaises.)

--
Il y a peut être plus simple, mais, ça tourne
Mensagem modificada, março, 23 2024 - 11:04 AM
Membro registado
16 mensagems
Popularité : +1 (1 vote)
Publicado em março, 23 2024 - 4:32 PM
Je ne maitrise pas ce concept de relation récursive
Pourriez vous m'expliquer ?

c'est comme "Par ailleurs, les 4 tables Articles, ArticleVersion, ArticleComposition et ArticleEtat peuvent certainement être regroupées en une seule"
Comment faire puisque :
un article peut être composé de plusieurs articles
Un article peut être dans la composition de plusieurs articles
un article peut avoir plusieurs version.
Membro registado
16 mensagems
Popularité : +1 (1 vote)
Publicado em março, 23 2024 - 4:38 PM
Une relation réflexive est en 1 pour 1 mais si un même article rentre dans la compo de plusieurs ce n'est pas possible ?
Exemple le sel entre dans plusieurs recettes, et les recettes sont composées de plusieurs ingrédients.
Membro registado
3.891 mensagems
Popularité : +227 (347 votes)
Publicado em março, 23 2024 - 4:52 PM
Cedrle100 a écrit :
Je ne maitrise pas ce concept de relation récursive

Relis tes cours de modélisation. La plupart du temps, l'exemple utilisé est l'arbre généalogique.
Cedrle100 a écrit :
Une relation réflexive est en 1 pour 1

Non !
Un individu peut avoir plusieurs enfant et possède de 0 à 2 parents (connus.)
e.g.




Une requête avec un FK enfant donné fournira les parents de cet enfant (chaînage arrière.) A l'inverse une requête sur un parent donné fournira ses enfants (chaînage avant.)

L'idéal est de créer une requête récursive malheureusement non disponible en SQL 92.
Pour remédier à cela, on peut simuler appeler la requête à l'intérieur d'une fonction récursive ou, si l'on n'est pas à l'aise avec les fonctions récursives, utiliser une file d'individu.

--
Il y a peut être plus simple, mais, ça tourne
Mensagem modificada, março, 23 2024 - 5:22 PM
Membro registado
16 mensagems
Popularité : +1 (1 vote)
Publicado em março, 24 2024 - 9:37 PM
merci pour la réponse. Je vais essayer la semaine prochaine.
Du coup dans le fichier "ici Engendrer", je peux avoir de mon coté la version, la composition, et l'état de la recette ?
Membro registado
16 mensagems
Popularité : +1 (1 vote)
Publicado em março, 26 2024 - 1:35 PM
Je viens de faire le test.
Pourquoi n'est il pas possible de faire une table hiérarchique sur un tel fichier ? (Engender ) ?
ainsi je pourrai voir toute l'arborescence.
Merci
Membro registado
3.891 mensagems
Popularité : +227 (347 votes)
Publicado em março, 26 2024 - 1:54 PM
Cedrle100 a écrit :
Pourquoi n'est il pas possible de faire une table hiérarchique sur un tel fichier ? (Engender ) ?

Ben si.

--
Il y a peut être plus simple, mais, ça tourne