Page 1 sur 1

Comment sélectionner des éléments d'un Combobox structuré

Publié : ven. 11/sept./2020 14:43
par Micoute
Bonjour à tous,

je me tourne vers vous, car mon problème est que j'ai toujours la même valeur dans tous les champs de mon combobox. Je vous remercie pour votre aide précieuse

Code : Tout sélectionner

Procedure Selectionner_Rdv()
  Protected Choix = GetGadgetState(#Lst_Rdv)
  
  If Choix <> -1
    SelectElement(Rdv(), GetGadgetItemData(#Lst_Rdv, Choix))
    With Rdv()
      SetGadgetItemText(#Cmb_Praticiens, Choix, \Qui)
      SetGadgetItemText(#Cmb_Praticiens, Choix, \Quand)
      SetGadgetItemText(#Cmb_Praticiens, Choix, \Heure)
      SetGadgetItemText(#Cmb_Praticiens, Choix, \Profession)
      SetGadgetItemText(#Cmb_Praticiens, Choix, \Nom)
      SetGadgetItemText(#Cmb_Praticiens, Choix, \Adresse)
    EndWith
  EndIf
  
  SetGadgetData(#Fenetre_principale, 1) ;C'est une modification
  
  DisableGadget(#Btn_Nouveau, #False)
  DisableGadget(#Btn_Maj, #False)
  DisableGadget(#Btn_Supprimer, #False)
  SetActiveGadget(#Cmb_professions)
EndProcedure

Re: Comment sélectionner des éléments d'un Combobox structur

Publié : lun. 14/sept./2020 7:35
par Micoute
Bonjour à tous,

je me retourne à nouveau vers vous, car je n'ai peut-être pas bien expliqué mon problème de combobox structurée.

Mon programme est une gestion de rendez-vous avec des praticiens
le premier gadget est un CalendarGadget d'où je récupère la date du rdv
le suivant est un combobox où je choisi une profession
celui après est un combobox dans lequel j'ai la liste des praticiens faisant cette profession dans laquelle je choisi mon praticien
ensuite j'ai un combobox contenant les membres de ma famille
et pour finir, j'ai un combobox contentant les horaires de rdv.

Maintenant que le décor est planté, j'ajoute que tous les combobox sont structurés, je vous montre mes strucrtures

Code : Tout sélectionner

;Structure d'une profession
Structure Profession
  Profession.s
EndStructure

;Structure d'un praticien
Structure praticien
  Nom.s
  Prenom.s
  Profession.Profession
  Tel.s
  Adresse.s
  CodePostal.s
  Ville.s
EndStructure

Structure provis
  Nom.s
  Prenom.s
  Profession.s
  Tel.s
  Adresse.s
  CodePostal.s
  Ville.s
EndStructure

Structure Rdv
  Qui.s
  Quand.s
  Heure.s
  Profession.s
  Nom.s
  Adresse.s
  Tel.s
  CP.s
  Ville.s
  Complement.s
EndStructure

Structure Patientelle
  Nom$
EndStructure
je les utilise peut-être mal et au lieu de mettre SetGadgetIntemText, je devrais peut-être mettre SetGadgetText dans mon combobox, en fait je suis perdu, car je ne vois pas la solution qui est peut-être trop simple pour que je la vois.
Si vous en avez besoin, je peux fournir le code source, car je me suis peut-être emmêler les pinceaux, je vous en supplie venez à mon secours et je vous en remercierai beaucoup.

Re: Comment sélectionner des éléments d'un Combobox structur

Publié : lun. 14/sept./2020 14:08
par Ar-S
doc a écrit : SetGadgetItemText() : Change le texte de l'élément spécifié
SetGadgetState() : Change l'élément sélectionné.
SetGadgetText() : Change le texte affiché. Si le ComboBoxGadget n'est pas éditable, le texte doit être dans la liste déroulante.
Sinon pour ton code, je pense que déjà, tes structures pourraient être simplifiées.
Tu as les mêmes champs pour praticiens et provis

Code : Tout sélectionner

  
  ;Structure d'une profession
Structure Profession
  Profession.s
EndStructure

;Structure d'un praticien
Structure personne
  Nom.s
  Prenom.s
  Profession.Profession
  Tel.s
  Adresse.s
  CodePostal.s
  Ville.s
EndStructure


Structure Rdv
  Qui.s
  Quand.s
  Heure.s
  Profession.s
  Nom.s
  Adresse.s
  Tel.s
  CP.s
  Ville.s
  Complement.s
EndStructure

Structure Patientelle
  Nom$
EndStructure


; exemple


praticien.personne
With praticien
  \Nom.s = "Bismute"
  \prenom.s = "Bob"
  ; etc etc
  
EndWith


provis.personne
With Provis
   \Nom.s = "Boudin"
  \prenom.s = "Pierre"
  ; etc etc
EndWith


Debug provis\Nom
Debug praticien\Nom

Re: Comment sélectionner des éléments d'un Combobox structur

Publié : lun. 14/sept./2020 16:46
par Micoute
Merci Ar-s pour ton aide providentielle,

C'est vrai que j'ai fait une magouille, car je n'ai pas trouvé mieux pour pour récupérer les professions :

Code : Tout sélectionner

Procedure Charger_praticiens()
  
  TrierListeStruc(Provis(), #PB_Sort_Ascending, provis\Nom)
  TrierListeStruc(Provis(), #PB_Sort_Ascending, provis\Profession)
  
  ForEach Provis()
    AddElement(mesPraticiens())
    With Provis()
      mesPraticiens()\Adresse = \Adresse
      mesPraticiens()\CodePostal = \CodePostal
      mesPraticiens()\Nom = \Nom
      mesPraticiens()\Prenom = \Prenom
      mesPraticiens()\Tel = \Tel
      mesPraticiens()\Ville = \Ville
      FindMapElement(praticiens(), \Profession)
      mesPraticiens()\Profession\Profession = praticiens()\Profession
    EndWith
  Next
EndProcedure
le problème c'est que je me suis perdu en route parce que j'ai trop de structures d'où ma confusion mentale.

J'espère qu'après la restauration de ma carotide droite, le 8 octobre, mon cerveau sera à nouveau irrigué et que je retrouverai mes facultés cérébrales.

Merci encore.