PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → [WD16] Survol d'un table
[WD16] Survol d'un table
Débuté par Choucas05, 08 mar. 2011 10:54 - 4 réponses
Posté le 08 mars 2011 - 10:54
Bonjour,
Je souhaite afficher les lignes "détails de commande" dans un table située sur la droite de ma fiche, en survolant les dossiers(entête) se trouvant dans un autre table à gauche.
Comment récupérer le numero du dossier de la ligne survolée.
J'ai cherché un exepmle mais je n'ai rien trouvé.
Merci de votre aide.
Seb.
Posté le 08 mars 2011 - 13:06
Bonjour,

Vous pouvez utiliser la fonction :
TableInfoXY(TABLE1, tiNumLigne, SourisPosX(), SourisPosY()) Dans le code de "survol souris" de votre table pour connaitre le n° de la ligne survolée

Cordialement.
Posté le 08 mars 2011 - 13:36
Bonjour,

Un exemple à adapter :

l = PoidsFaible(CurseurPos())
y = PoidsFort(CurseurPos())
nligne = TableInfoXY(TABLE_contacts, tiNumLigne + tiOrigineEcran, l, y)
ncol = TableInfoXY(TABLE_contacts, tiNumColonne + tiOrigineEcran, l, y)

BulleCouleur(iJauneClair, iBleuFoncé)


SI nligne<0 ALORS
BulleCouleur(iNoir,iBlanc)
FIN
SI nligne>0 ALORS

SI ncol=9 ET TABLE_contacts.kor_flag_akt_hist[nligne]>0 ALORS
MoiMême..Bulle="Dernier Mailing :"+DateVersChaîne(TABLE_contacts.kor_flag_akt_hist_datum[nligne])+RC+TABLE_contacts.kor_flag_akt_hist_beschreib[nligne]
SINON
SI ncol=10 ET TABLE_contacts.kor_flag_term_nr[nligne]>0 ALORS
//Vérifie quel texte doit être affiché dans la bulle pour les Termin
SI TABLE_contacts.Kor_flag_term_datum[nligne]<=DateSys() ALORS
MoiMême..Bulle="Dernier RDV :"+TABLE_contacts.kor_flag_term_nr[nligne]+" - "+"le:"+DateVersChaîne(TABLE_contacts.Kor_flag_term_datum[nligne])+RC+TABLE_contacts.kor_flag_term_betr[nligne]
SINON
MoiMême..Bulle="Prochain RDV :"+TABLE_contacts.kor_flag_term_nr[nligne]+" - "+"le:"+DateVersChaîne(TABLE_contacts.Kor_flag_term_datum[nligne])+RC+TABLE_contacts.kor_flag_term_betr[nligne]
FIN
SINON
SI 11<= ncol <=16 ALORS
MoiMême..Bulle=TABLE_contacts.adr_kor[nligne]
SINON
SI ncol=17 ALORS
////Affiche les données du Betreuer
MoiMême..Bulle=(TABLE_contacts.betreuer_kompl[nligne])
SINON
MoiMême..Bulle=""
BulleCouleur(iNoir,iBlanc)
FIN
FIN
FIN
FIN

FIN // fin si nligne>0


Ce code se trouve dans la section Survol souris de Table_contacts

Hubert
Posté le 08 mars 2011 - 16:46
Re bonjour,

Voilà j'ai placé le code ci dessous dans le survol de la table dossier, la procedure "ouvredocumentappercu" rempli la table détail. Le Problème : ma procedure est lu tant que le curseur est sur la table dossier et donc ma table de ligne de détail se remplie en continu. Il faudrait que ma procudure soit lu qu'une fois a chaque survol de ligne différente.
Comment faire ?

Ligne est un entier
TableAffiche(TABLE_LigneDossier_affichage)
Ligne = TableInfoXY(TABLE_Dossier, tiNumLigne, SourisPosX(), SourisPosY())
SI Ligne>0 ALORS
nVarndossier est un entier
nVarndossier = TABLE_Dossier.COL_Numero_dossier[Ligne]
//Trace(nVarndossier)

nNumérodossier = nVarndossier
HLitRecherche(Clients,IDClients,Dossier.IDClients,hIdentique)
ouvredocumentappercu()
//déselectionner le bandeau
TableSelectMoins(TABLE_LigneDossier_affichage)
FIN

Merci de votre aide
SéB
Posté le 08 mars 2011 - 17:47
Re-bonjour,

Vous pouvez déclarer une variable globale à votre fenêtre "LigneMemorisee" et vous modifiez votre code de la manière suivante :

SI ligne > 0 ET ligne <> LigneMemorisee ALORS
...
TableSelectMoins(TABLE_LigneDossier_affichage)
LigneMemorisee = ligne
FIN


Choucas05 a écrit dans le message de news <3ddb3b7560dd81077cf5e9dccb0278c5@news.pcsoft> :
Re bonjour,

Voilà j'ai placé le code ci dessous dans le survol de la table dossier, la procedure "ouvredocumentappercu" rempli la table détail. Le Problème : ma procedure est lu tant que le curseur est sur la table dossier et donc ma table de ligne de détail se remplie en continu. Il faudrait que ma procudure soit lu qu'une fois a chaque survol de ligne différente.
Comment faire ?

Ligne est un entier
TableAffiche(TABLE_LigneDossier_affichage)
Ligne = TableInfoXY(TABLE_Dossier, tiNumLigne, SourisPosX(), SourisPosY())
SI Ligne>0 ALORS
nVarndossier est un entier
nVarndossier = TABLE_Dossier.COL_Numero_dossier[Ligne]
//Trace(nVarndossier)

nNumérodossier = nVarndossier
HLitRecherche(Clients,IDClients,Dossier.IDClients,hIdentique)
ouvredocumentappercu()
//déselectionner le bandeau
TableSelectMoins(TABLE_LigneDossier_affichage)
FIN

Merci de votre aide
SéB