PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Colonne Combo
Colonne Combo
Débuté par t.burdeyron, 30 nov. 2005 16:45 - 4 réponses
Posté le 30 novembre 2005 - 16:45
Le problème concerne une colonne de type combo avec saisie alimentée par un fichier A et reliée à un fichier B.

Lorsque l'élement de remplissage n'existe plus dans le fichier A, la table n'affiche plus l'information alors même que l'enregistrement figure toujours dans le fichier B.

Exemple:
Fichier A: type de matériel à commander
Fichier B: liste des commandes de l'année.

L'élément "Vis 45" était dans le fichier A, a été commandé en cours d'année (donc est dans le fichier B) puis a été déréférencé. Le fichier liste des commandes continue d'avoir l'information (la clé de liaison laisse l'enregistrement) mais la table de saisie des commandes, celle qui contient la colonne combo, laisse apparaître un vide sur le libellé.

Comment forcer l'affichage?
Posté le 30 novembre 2005 - 17:28
salut

normal car il trouve plus la référence dans le fichier A mais le pb c 'est que ton intégrité est mal gérée car on devrait pas pouvoir supprimer un élément du fichier A s'il est dans le fichier B .

La cardinalité devrait être :
A possède 0 à n B
B possède 1 à 1 A
Posté le 01 décembre 2005 - 09:43
Merci de votre réponse cela dit ma cardinalité est correcte: j'ai besoin de supprimer des référentiels qui constatent le présent (fichier A) tout en conservant mes historiques (fichier B).
Quand ma colonne de table est en texte, l'affichage se passe bien, le problème est donc la colonne combo qui seule me permet de mixer l'accès au référentiel et l'affichage de ce qui a déjà été fait.

je renouvèle donc mon "HELP"
Posté le 01 décembre 2005 - 11:24
Tu ne devrai normalement pas pouvoir supprimer un enregistrement dans A si
il est lié à B.

La solution alternative que je te propose est :

Au lieu de supprimer tes enregistrements, tu ajoutes une rubrique
EnregistrementActif bool dans A. Pour déreferencer un produit, tes
utilisateurs donnent la valeur "Faux" à EnregistrementActif. Toi, au niveau
de ton code, dans ta fiche commande, tu bases ta combo non plus sur un
fichier mais sur une requête que tu pourra modifier. Si c'est une
visualisation d'une ancienne commande, tu charges tous les enregistrements
dans ta combo, si c'est une saisie de commande, tu mets une condition
EnregistrementActif=vrai.

Ainsi, tu as tous les enregistrements dans ta combo lorsque tu es en
visualisation d'une ancienne commande et tu peux, ainsi, faire apparaître
les anciennes commandes correctement, et lorsque tu es en saisie d'une
nouvelle commande, tu n'affiches que les "Actifs", donc les produits
référencés actuellement.

Bon dev.
--
Cordialement,

GRIECO Anthony
SGTP Laclau
agrieco@laclau.fr


"Thierry Burdeyron" <t.burdeyron@wanadoo.fr> a écrit dans le message de
news: 438eb127$1@news.pcsoft.fr...

Merci de votre réponse cela dit ma cardinalité est correcte: j'ai besoin
de supprimer des référentiels qui constatent le présent (fichier A) tout
en conservant mes historiques (fichier B).
Quand ma colonne de table est en texte, l'affichage se passe bien, le
problème est donc la colonne combo qui seule me permet de mixer l'accès au
référentiel et l'affichage de ce qui a déjà été fait.

je renouvèle donc mon "HELP"
Posté le 02 décembre 2005 - 12:12
Merci beaucoup de ces conseils, ça fonctionne.

A+