PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → Problème lié au champ table et à l'affectation d'une de la valeur d'une paramètre a un champ combo
Problème lié au champ table et à l'affectation d'une de la valeur d'une paramètre a un champ combo
Débuté par JshSpartan, 16 juin 2020 18:19 - 6 réponses
Membre enregistré
17 messages
Posté le 16 juin 2020 - 18:19
Bonjour. Je rencontre un problème un bizarre aux quels je ne trouve pas de solution (du moins pour le moment).
J'ai une fenêtre Demande d'analyse. Elle contient une formulaire composée de trois champ de saisie et de trois champ Combo avec saisie qui sont: SAI_Datedemande permettant de renseigner la date de demande d'analyse (remplie par datesys), SAI_DateResultat permettant de renseigner la date a laquelle le résultat de l'analyse est dispo, SAI_ResultatAna permettant de renseigner le résultat de l'analyse, un Combo_NomSoignant avec saisie permettant de renseigner le nom du soignant qui demande l'analyse lié au fichier de donné SOIGNANTS et qui renvoie a son déroulement deux colonnes NOM ET PRÉNOMS sous forme de table, il y a Combo_Patient avec saisie lié a l'entité PATIENT et qui fonctionne comme Combo_Patient c'est a dire renvoie deux colonnes aussi et Combo_CodeAna avec saisie lié a l'entité TYPEANALYSE qui renvoie seulement le nom de code de l'analyse donc une seule colonne(Ex: TDR). Quand je fais la demande l'enregistrement passe . A noter que l'enregistrement se fait dans un fichier de donnée issu dune relation plusieurs a plusieurs de trois fichier de donnée (PATIENT,TYPEANALYSE,SOIGNANTS). Voici l'image de la fenêtre.





J'ai une autre fenêtre permettant d'afficher les demandes d'analyses. Sur cette fenêtre il y a un champ table (TABLE_REQ_Select_Analyses). Le champ table est relié a une requête (REQ_Select_Analyses). Je voulais lié le champ table au fichier de donné ANALYSE(là où l'enregistrement se fait mais le résultat obtenu est anormal, certaines données ne s'affiche pas quand je transforme les types de colonne en combo).

1)SVP qu'est ce qui peut causer cette anomalie d'affichage? Est ce par ce que c'est des clé étrangère ou c'est mon Windev qui déconne?(J'ai jamais eu ce problème auparavant)

Voici le code de la requête REQ_Select_Analyses:
SELECT
ANALYSES.DateAnalyse AS DateAnalyse,
ANALYSES.ResultatAnalyse AS ResultatAnalyse,
ANALYSES.DaterResultat AS DaterResultat,
ANALYSES.IDPATIENTS AS IDPATIENTS,
ANALYSES.IDSOIGNANTS AS IDSOIGNANTS,
ANALYSES.IDTYPESANALYSES AS IDTYPESANALYSES,
ANALYSES.IDANALYSES AS IDANALYSES,
PATIENTS.IDPATIENTS,
PATIENTS.NomPatient AS NomPatient,
SOIGNANTS.IDSOIGNANTS,
SOIGNANTS.NomSoignant AS NomSoignant,
TYPEANALYSES.IDTYPESANALYSES,
TYPEANALYSES.CodeTypeAnalyse AS CodeTypeAnalyse

FROM
ANALYSES,
PATIENTS,
SOIGNANTS,
TYPEANALYSES
WHERE
ANALYSES.IDPATIENTS=PATIENTS.IDPATIENTS
AND
ANALYSES.IDSOIGNANTS=SOIGNANTS.IDSOIGNANTS
AND
ANALYSES.IDTYPESANALYSES=TYPEANALYSES.IDTYPESANALYSES


Et l'affichage marche dans la table.

Pour faire une modification des données a la selection dune ligne on doit cliquer sur un bouton modifier qui doit ouvrir la fenêtre de demande d'analyse precedente et renvoyer les informations de la ligne sélectionné dans les champs cité plus haut vu que la table est basé sur une requête quand la fenêtre s'ouvre les champs ne sont pas pre-remplit pour corriger ce problème j'ai cré des variables globales:

gsNomSoignant est une chaîne
gsNomPatient est une chaîne
gsCodeTypeAna est une chaîne
gdDateDemandAna est une Date
gdDateResutat est une Date
gsResultatAnalyse est une chaîne


A ces variables sous la table TABLE_REQ_Select_Analyses a l’événement selection d'une ligne j'ai affecter les données colonne par colonne :

gsNomSoignant=TABLE_REQ_Select_Analyses.COL_NomSoignant
gsNomPatient=TABLE_REQ_Select_Analyses.COL_NomPatient
gsCodeTypeAna=TABLE_REQ_Select_Analyses.COL_CodeTypeAnalyse
gdDateDemandAna=TABLE_REQ_Select_Analyses.COL_DateAnalyse
gdDateResutat=TABLE_REQ_Select_Analyses.COL_DaterResultat
gsResultatAnalyse=TABLE_REQ_Select_Analyses.COL_ResultatAnalyse


Sous le bouton modifier a l'ouverture de la fenêtre fille c'est a dire la fenêtre de demande d'analyse qui contient les champs j'ai passé en paramètre les variables globales:

Ouvre(FEN_Demande_d_analyse,gsNomSoignant,gsNomPatient,gsCodeTypeAna,gdDateDemandAna,gdDateResutat,gsResultatAnalyse)
//
TableAffiche(TABLE_REQ_Select_Analyses,taCourantBandeau)


Sous la fenêtre fille j'ai ajouter des paramètres

Procedure FEN_Demande_d_analyse(sNomSoignant,sNomPatient,sCodeAna,dDateDemandeAna,dDateResutat,sResultatAna)


Sous l’événement a la fin d'initialisation de la fenêtre j'ai affecter aux champs les informations correspondantes:

//FichierVersEcran(FEN_Demande_d_analyse,ANALYSES)

//Au clique du bouton modifier les valeurs passé en paramètre sont affecter aux champs correspondants

SAI_DateAnalyse=dDateDemandeAna
SAI_DaterResultat=dDateResutat
SAI_ResultatAnalyse=sResultatAna
COMBO_TYPEANALYSES=sCodeAna
COMBO_PATIENTS=sNomPatient
COMBO_SOIGNANTS=sNomSoignant


Et c'est ici que le problème se pose. Les champ de saisie réceptionne très bien les informations affecter mais les champs combo non. J'ai utiliser les propriété (..contenu, ..valeur,...etc) un peut de tout mais rien. Pourtant si j'affecte les informations qui doivent être normalement affecter a un champ combo a un champs de saisie cela s'affiche très bien.

2) SVP qu'est ce qui peut en être la cause et comment corriger ce problème pour que les affectations passent a la normal dans les champs combo.

Merci pour les aides qui me seront accordées

--
Jsh
Membre enregistré
3 846 messages
Popularité : +227 (347 votes)
Posté le 18 juin 2020 - 00:09
Bonjour,
Quelle est la valeur mémorisée de tes combo.
Par défaut, c'est le n° d'ordre dans la liste. Dans ton cas, il faudrait que ce soit la PK de la table qui sert à le remplir.
e.g. pour COMBO_Patient, il faut mémoriser la PK et afficher le nom du patient. L'affectation se fait en passant la PK du patient recherché.
Par ailleurs, il suffit de passer en paramètre uniquement la PK de l'analyse désirée. Les autres données se déduisent aisément de la requête.

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
3 846 messages
Popularité : +227 (347 votes)
Posté le 18 juin 2020 - 00:11
Là encore, c'est la même chose, il suffit que la valeur mémorisée de ta table soit IDAnalyse

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
17 messages
Posté le 18 juin 2020 - 10:07
Okay je vais essayer et vous faire un retour

--
Jsh
Membre enregistré
17 messages
Posté le 18 juin 2020 - 10:25
Voroltinquo a écrit :

Par défaut, c'est le n° d'ordre dans la liste. Dans ton cas, il faudrait que ce soit la PK de la table qui sert à le remplir.
e.g. pour COMBO_Patient, il faut mémoriser la PK et afficher le nom du patient. L'affectation se fait en passant la PK du patient recherché.
Par ailleurs, il suffit de passer en paramètre uniquement la PK de l'analyse désirée. Les autres données se déduisent aisément de la requête.


Svp qu'appeler vous par PK?

--
Jsh
Membre enregistré
3 846 messages
Popularité : +227 (347 votes)
Posté le 18 juin 2020 - 11:16
PK : Primary Key, clé primaire

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
17 messages
Posté le 18 juin 2020 - 13:33
Merci ça marche

--
Jsh