PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → Pb transfert d'une liste à une autre
Pb transfert d'une liste à une autre
Débuté par Mano974, 06 aoû. 2019 13:18 - 10 réponses
Membre enregistré
8 messages
Posté le 06 août 2019 - 13:18
Bonjour à tous :), je suis nouveau sur le forum ainsi que dans l'utilisation de WinDev.
Je suis sur WinDev 20.

J'ai déjà parcouru pas mal de Tuto sur le Web ainsi que l'aide en ligne de PCSOFT, mais malgrés tous les articles lus je n'ai pas su résoudre mon problème.
Donc petite description d'une chose qui me paraissait simple...

J'ai une fenêtre LISTE (les des produits) avec des éléments chargés depuis un FICHIER (fichier 1),
je souhaite à l'aide de deux BOUTONS AJOUTER ou SUPPRIMER mettre ou retirer les éléments sélectionnés de la LISTE 1 mais dans une TABLE ou autre LISTE 2. Après le CLIC sur l'un ou l'autre des BOUTONS je voudrais que l'ajout se face à l'écran mais aussi dans un autre FICHIER (fichier 2 = produits à vendre). Actuellement lorsque je tente un AJOUT, j'ai rien dans le deuxième fichier (table avec WDmap vide) mais à l'écran je n'ai que des 0 les un en dessous des autres.

Code du bouton :
SI TABLE_EnVente..Valeur <> "" ALORS

ResCherche est un numérique
TexteAjouter est une chaîne
//recherche dans la table Cible par rapport à l'élément importé
ResCherche = TableCherche(COL_NomPruduit, LISTE_TypeProduitSource..ValeurAffichée)
Info(ResCherche) // le texte affiché est normal
SI ResCherche = -1 ALORS
TexteAjouter = LISTE_TypeProduitSource..ValeurAffichée

Info(TexteAjouter)
TableAjouteLigne(TABLE_EnVente, TexteAjouter)
TableTrie(TABLE_EnVente)
FIN
FIN
Code de la table -> aucun

Une idée de se qu'il manque pour que cela fonctionne ?
Merci de vos conseils.
Membre enregistré
3 845 messages
Popularité : +227 (347 votes)
Posté le 06 août 2019 - 16:25
Bonjour,
Pour résumer, tu as une table PRODUIT qui ressemble à ça :



Et tu cherches grâce à une fenêtre qui ressemble à ça :



à afficher les produits disponibles et les produit en vente, avec un passage éventuel de l'un à l'autre

--
Il y a peut être plus simple, mais, ça tourne
Posté le 06 août 2019 - 16:28
Bonjour,

Dans ton code, il n'y a aucune instruction d'ajout dans un fichier de données (hajoute....).Pour les 0 qui apparaissent,il faudra vérifier les types de tes colonnes. Je te conseille de finir ta sélection avant de faire un enregistrement global dans la base de données.
Membre enregistré
8 messages
Posté le 06 août 2019 - 17:59
minsk a écrit :
Bonjour,

Dans ton code, il n'y a aucune instruction d'ajout dans un fichier de données (hajoute....).Pour les 0 qui apparaissent,il faudra vérifier les types de tes colonnes. Je te conseille de finir ta sélection avant de faire un enregistrement global dans la base de données.


Merci de ta réponse, il y a un BOUTON BNT_Valider dans la fenêtre FEN_Fiche_fournisseur, le code est :

SI SAI_Societe ~= "" ALORS
Erreur("Vous devez saisir le nom de la société.")
RepriseSaisie(SAI_Societe)
FIN

// Lecture des informations saisies
EcranVersFichier()

// Ajoute / modifie l'enregistrement
HEnregistre(Fournisseur)

// Valeur de retour de la fenêtre
MaFenêtre..ValeurRenvoyée = Vrai

Le fichier cible se trouve dans cette fenêtre.
Membre enregistré
8 messages
Posté le 06 août 2019 - 18:00
Voroltinquo a écrit :
Bonjour,
Pour résumer, tu as une table PRODUIT qui ressemble à ça :



Et tu cherches grâce à une fenêtre qui ressemble à ça :



à afficher les produits disponibles et les produit en vente, avec un passage éventuel de l'un à l'autre

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


Oui c'est bien quelque chose de ressemblant à ton exemple.
Membre enregistré
8 messages
Posté le 06 août 2019 - 18:06
Voici quelques captures :









Membre enregistré
3 845 messages
Popularité : +227 (347 votes)
Posté le 06 août 2019 - 18:23
Je suppose que ta table "EnVente" se rapporte à "TypeProduit", dans ce cas elle (ainsi que sa table de relation) est inutile un booléen dans "TypeProduit" suffit.
Le passage en position "EnVente" consiste à passer ce booléen à vrai.
Il suffit alors d'alimenter le champ des produit en vente (TABLE_EnVente) par une requête du style (REQ_ProduitEnVente)
SELECT
Produit.PK_Produit AS PK_Produit,
Produit.AK_RefProduit AS AK_RefProduit,
Produit.NDX_NomProduit AS NDX_NomProduit,
Produit.Prix AS Prix,
Produit.NDX_EnVente AS NDX_EnVente
FROM
Produit
WHERE
-- Vrai : En vente
-- Faux : Disponible
Produit.NDX_EnVente = 1


En ce qui concerne le code du bouton "Ajouter" (en supposant que la table de gauche renvoie l'ID du produit
SI HLitRecherche(TypeProduit,IDProduit,TableSelect(TABLE_Disponible)) ALORS
TypeProduit.NDX-EnVente=Vrai
HModifie(TypeProduit)
HExcuteRequete(REQ_ProduitEnVente)
TableAffiche(TABLE_EnVente)
SINON
//Traitement des erreurs
FIN

--
Il y a peut être plus simple, mais, ça tourne
Message modifié, 06 août 2019 - 18:40
Membre enregistré
8 messages
Posté le 07 août 2019 - 08:11
Bonjour et merci pour cette réponse mais la TABLE TypeProduit ne contient pas de Booléen, elle contient le Nom du Produit ex : Hydroxide de sodium et le Type ou famille de Produit ex : produit chimique. Donc il peut y avoir plusieurs produits appartenant à la même famille.



Membre enregistré
3 845 messages
Popularité : +227 (347 votes)
Posté le 07 août 2019 - 09:11
Il faut l'ajouter.
Et avant tout te former sur les bases de données. Tu comprendras les erreurs que tu as faites dans ton analyse.
Conceptuellement parlant, EnVente et TypeProduit sont les même entités donc une table suffit à regrouper leurs enregistrements.

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
3 845 messages
Popularité : +227 (347 votes)
Posté le 07 août 2019 - 09:28
Un bon début pour comprendre les SGBD : http://georges.gardarin.free.fr/Livre_BD_Contenu/XX-TotalBD.pdf

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
8 messages
Posté le 07 août 2019 - 09:31
Ok et merci du conseil, je vais regarder cela de plus prêt.