Forums développeurs windev

Version complète : [RESOLU] Pour WinDev 7
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Bonjour, j'en suis encore à WinDev 7 et j'ai un soucis !
je suis novice en programmation et voilà mon problème
je créé un programme pour la liste des films que je possède en dvd !
une fenêtre avec une table qui est reliée bien sur à l'analyse
les exemples que j'ai entré sont affichés
je voudrais créer une combo qui contiendrais la liste des genres de ces films ! " Comédie, Policier etc "
en sélectionnant un genre dans cette combo, je voudrais que la table n'affiche que les films du genre sélectionné !
dois relier cette combo à l'analyse " genre "
sinon, comment écrire cette commande ? je suis perdu là ! lol
cette table doit elle être fichier ou mémoire ?
pouvez vous m'aider ?
merci
Bonjour,

En plus du fichier DVD il faut créer un fichier par expl: "Genres" avec une rubrique clé unique auto "IDGenres" et une rubrique texte clé doublons "NomGenres".

Créer une combo remplie par programmation... par expl: "ComboGenres", permettant la sélection et l'affichage trié des DVD dans la table.

Code de la Combo pour le tri.
Code :
//Entrée de ComboGenres...
ListeSupprimeTout(ComboGenres)
HLitPremier(Genres, IDGenres)
TANTQUE PAS HEndehors(Genres) = vrai ALORS
   ListeAjoute(ComboGenres, Genres.NomGenres + GLien(Genres.IDGenres))  //GLien() permettant de mémoriser IDGenres.
   HLitSuivant(Genres, IDGenres)
FIN

//Sélection d'une ligne de ComboGenres...
HFiltre(DVD, IDGenres, ComboGenres..ValeurMémorisée, CombGenres..ValeurMémrisée)
TableAffiche(TableDVD)

Cette combo peut être aussi utilisée dans la fiche de saisie des titres de DVD pour ne pas resaisir les genres déjà entrés, mais avec quelques changements dans le code. Bien voir la différence...

Code de la combo pour la saisie. Dans la description de la combo on cochera la case Combo en saisie dans le cas ou un genre doit être saisi.

Code :
//Entrée de ComboGenres...
ListeSupprimeTout(ComboGenres)
HLitPremier(Genres, IDGenres)
TANTQUE PAS HEndehors(Genres) = vrai ALORS
   ListeAjoute(ComboGenres, Genres.NomGenres)  
   HLitSuivant(Genres, IDGenres)
FIN

//Sortie de ComboGenres...
//On enregistre la saisie si elle n'existe pas...
HLitRecherche(Genres, NomGenres, ComboGenres..ValeurAffichée)
SI PAS HTrouve(Genres) ALORS
  HAjoute(Genres)
FIN

Il ne faut pas oublier de créer une rubrique clé doublons dans le fichier DVD "IDGenres", copie de la clé unique du fichier Genres.

Voilà en espérant que ce code fonctionne pour WD 7
Bonjour et merci, mais cela ne fonctionne pas sous la version 7
j'ai essayé différentes possibilité , mais rien !
Clovis47 a écrit :Bonjour et merci, mais cela ne fonctionne pas sous la version 7
j'ai essayé différentes possibilité , mais rien !

Attention... il ne faut pas dire que cela ne fonctionne pas sous WD 7....

Le principe est OK... il faut peut-être l'adapter tout simplement.

Quel principe utilises-tu actuellement ?

Bon courage
Voilà plus simple...
Combo remplie automatiquement par le parcours du fichier.

Dans le code de la combo de sélection de genres... (Fenêtre table DVD)
Code :
//Sélection d'une ligne de ComboGenres...
HFiltre(DVD, IDGenres, ComboGenres[ComboGenres]..ValeurMémorisée, ComboGenres[ComboGenres]..ValeurMémorisée)
TableAffiche(Table_DVD)

Dans le code de la combo de saisie genres... (Fenêtre Fiche)
Code :
//Sortie de ComboGenres...
//Pour un Genres inexistant à enregistrer
HLitRecherche(Genres, NomGenres, ComboGenres..ValeurAffichée)
SI PAS HTrouve(Genres) ALORS
    Genres.NomGenres = ComboGenres..ValeurAffichée
    HAjoute(Genres)
FIN
//Affecte le dernier ID enregistré
HLit(Genres,HNbEnr(Genres))
IDGenres = Genres.IDGenres

//A chaque modification de CombGenres...
//Rien

//Sélection d'une ligne de CombGenres...
//Affecte l'ID de la ligne sélectionnée
IDGenres = ComboGenres[ComboGenres]..ValeurMémorisée

C'est la même combo pour la sélection que pour la saisie (Fiche) sauf que dans la fiche la combo est en saisie.

Bien entendu il faut deux fichiers (DVD) et (Genres). Dans le fichier DVD la rubrique doublons IDGenres et la copie de IDGenres auto du fichier Genres.
Dans le fichier Genres la rubrique NomGenres et clé unique.

Dans la description de la combo Genres (fenêtre table)...
Onglet contenu:
Fichier: Genres
Rubrique affichée: NomGenres, Genres
Rubrique mémorisée: IDGenres, identifiant de Genres
Rubrique de parcours: IDGenres, identifiant de Genres

Idem dans la description de la combo Genres (fenêtre fiche)... sauf...
Onglet détail:
Cocher la case: Combo avec saisie

C'est testé et fonctionnel.
Bonjour et merci ! cela fonctionne
cordialement
Quand le problème est résolu, éditer le titre du premier message en ajoutant [RESOLU].
Pour cette fois je l'ai fais.
Bon dev.