Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
probleme avec combo
#1
bonjour a toutes et tous
j'avance doucement dans webdev
je bute depuis quelques jours sur un problème de combo
j'ai une combo avec 2 lignes de données, reliée a rubrique de fichier
lorsque je selectionne une ligne, le fichier est bien alimenté car j'ai vérifié avec l'outil de visualisation
mais lors du réafichage, ma zone de combo reste systématiquement sur la 1ere ligne
qu'est ce que j'ai loupé ?
#2
Bonjour,

Pour faciliter la tâche de ceux qui veulent t'aider, ce serait bien de connaître la version utilisée et de disposer éventuellement du code déjà écrit afin de trouver plus facilement une solution.
Je ne connaîs pas WebDev, mais si les écrans sont semblables à WinDev je peux te montrer ce que cela donne en WinDev 9. Je t'ai mis les liens vers des copies écrans qui correspondent au fichier et aux deux fenêtres de la description de la combo au niveau de la liaison avec le fichier et de la source pour son remplissage. Cela fonctionne sans aucun code.

http://www.hostingpics.net/viewer.php?id...xemple.jpg
http://www.hostingpics.net/viewer.php?id...iaison.jpg
http://www.hostingpics.net/viewer.php?id...ontenu.jpg

Maintenant si ton application ne colle pas avec mon exemple tu peux aussi placer le code suivant (à adapter) lors de l'initialisation de ta combo :
Code :
// -- Code d'initialisation d'un champ Combo
HLitPremier(CLIENT, NomCli)
TANTQUE PAS HEnDehors()
ListeAjoute(COMBO_Combo1, Client.NomCli)
HLitSuivant(CLIENT, NomCli)
FIN

Espérant avoir pu être d'un grand secours :roll: je te souhaite un bon développement.
Programmeur non confirmé en WinDev 9
Non professionnel
#3
Bonjour émile
merci de ton aide
peut être je me uis mal exprimé
le fonctionnement que tu décrit est avec un fichier et j'arrive a le faire


la il s'agit de deux ou trois données fixes que j'avais mis dans la création de la combo dans l'onglet général, contenu initial
j'arrive a alimenter mon fichier
mais je n'arrive pas a positionner la combo dans le sens fichier vers ecran

cordialement

claude
#4
Bonjour Claude,

Montre nous ton exemple et propose nous le code que tu as déjà écrit à ce sujet.
J'ai un peu de mal à comprendre au niveau de la combo auto alimentée et du fichier qui est relié et qui s'alimente par la combo.
Tu vois c'est pas très clair pour moi, alors j'ai besoin d'un coup de main pour t'aider !!!.

A+
Programmeur non confirmé en WinDev 9
Non professionnel
#5
Bonjour,

Je pense qu'il veut dire que les données fixes de la combo (données saisies lors de la création de la combo) n'est pas pris en compte par la fonction EcranVersFichier().

La fonction EcranVersFichier() met en tampon uniquement les champs reliés à un fichier avant le HAjoute().

Pour que le HAjoute() prenne en compte les données affichées de la combo il faut les affecter comme suit:

// Met en tampon les champs relié au fichier...
EcranVersFichier()

//plus les champs non reliés
NomFichier.Rubrique = NomCombo..ValeurAffichée

//Enregistrement
HAjoute(NomFichier)


...
Se souvenir et savoir sont deux choses différentes. Se souvenir, c'est garder en mémoire. En revanche, savoir signifie assimiler sans dépendre d'un modèle.

WD 4.1 => 23


#6
bonjour samifred

c'est exactement ce que tu décrit, et que j'ai fini par comprendre
si une combo n'est pas relié a un fichier, les fonctions ecran vers fichier et fichier vers ecran ne fonctionnent pas
c'est un peu gênant dans la mesure ou quelques données ne demande pas de créer des fichiers.
je bute maintenant dans le sens fichier vers ecran pour positionner la combo avec la valeur du fichier

en tout cas merci de votre aide
#7
Bonjour,

Je vois pas très bien le contexte... mais une piste...

ListeSélectPlus(NomCombo, NomFichier.IDRubrique)

IDRubrique étant l'indice sauvegardé.
Se souvenir et savoir sont deux choses différentes. Se souvenir, c'est garder en mémoire. En revanche, savoir signifie assimiler sans dépendre d'un modèle.

WD 4.1 => 23


#8
bonjour samifred
je vais essayer d'être plus clair, sachant comme je l'ai dit que je viens du monde cobol, et que les reflexes sont différents.

soit une société ayant 4 sites de production s1 s2 s3 s4
une personne est réputée travaillé sur 1 des sites.
je pensait qu'il n'était pas nécéssaire de creer un fichier contenant ces données, j'ai donc définie une combo avec ces 4 valeurs a l'origine.
autour de cela mes questions ont multiples
-que doit on stocké dans le fichier, l'indice ou la valeur (en cobol j'aurai stocke l'indice)
-il semblerait que la fonction ecran vers fichier et fichier vers ecran ne fonctionne pas dans ce cadre.
alors comment pallier a ce problème sans multiplier les petits fichiers.
cordialement

claude
#9
Bonsoir,

Je trouve qu'il est dangereux de coder en dur pour remplir une combo (ajouter des éléments) car si l'entreprise grandi ou un nom de site devait être modifié il sera plus possible d'ajouter ou modifier un élément sans lire un fichier HF ,CSV, INI ou autre.

Mais si tu veux absolument coder en dur, il faut simplement ajouter les éléments comme suit:
COMBO_Site = Nom de la combo
SAI_IndiceDuSite = Nom d'un champ de saisie type numérique
SAI_NomDuSite = Nom d'un champ de saisie type texte

Pour la combo...

Initialisation de COMBO_Site...
ListeAjoute(COMBO_Site, "Nom du site 1")
ListeAjoute(COMBO_Site, "Nom du site 2")
ListeAjoute(COMBO_Site, "Nom du site 3")
ListeAjoute(COMBO_Site, "Nom du site 4")

//Sélectionne le premier élément...
ListeSelectPlus(COMBO_Site,1)


Sélection d'une ligne de COMBO_Site...
//Numérique entier
SAI_IndiceDuSite = COMBO_Site..Valeur

//Chaine
SAI_NomDuSite = COMBO_Site..ValeurAffichée


Pour le champ numérique...

Sortie de SAI_IndiceDuSite...
//Sélectionne et affiche l'élément saisi
ListeSelectPlus(COMBO_Site,SAI_IndiceDuSite)
//Affiche l'élément sélectionné
SAI_NomDuSite = COMBO_Site..ValeurAffichée


Pour le champ texte...

Sortie de SAI_NomDuSite...
//Cherche dans la liste l'élément saisi
nRes est un entier = ListeCherche(COMBO_Site,SAI_NomDuSite)
SI nRes <> -1 ALORS
//Sélectionne dans la liste si l'élément est trouvé
ListSelectPlus(COMBO_Site,nRes)
//Affiche l'indice de l'élément trouvé
SAI_IndiceDuSite = nRes
FIN

...
Comme cela tu peux faire une fenêtre test avec ces champs et leur code...
Soit tu sélectionnes une ligne de combo (élément)...
Soit tu entres l'indice d'une ligne de combo (1 à 4)...
Soit tu entres le nom d'un site (si l'orthographe est bonne et si le nom du site existe il sera sélectionné)...

En espérant que tu aies compris... en résumé il faut sauvegarder soit l'indice ou le nom de l'élément pour pouvoir l'utiliser.

...
Se souvenir et savoir sont deux choses différentes. Se souvenir, c'est garder en mémoire. En revanche, savoir signifie assimiler sans dépendre d'un modèle.

WD 4.1 => 23


#10
rebonjour samifred
effectivement sur le principe vous avez raison, je vais creer des fichiers je pense

je planche depuis ce matin sur une erreur qui doit etre enorme mais m'empêche d'avancer
merci de ton aide

dans le code suivant


getat est une chaîne
getat="faux"
HLitPremier(services)

TANTQUE HEnDehors(services) =Faux
HLitSuivant(services)
SI services.responsable=SAI_login ET services.mdp=SAI_mdp ALORS getat="vrai"
FIN

SI getat= "faux" ALORS PageAffiche(PAGE_creationemploye)
SINON ce code sinon est en anomalie rouge je ne comprends pas pourquoi
PageAffiche('PAGE_fiche personnel')
FIN


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  probleme avec menu d'une page kameram 1 2,273 10-08-2012, 10:04 AM
Dernier message: beginner

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)