Bonjour

WinDev met à disposition des fonctions de gestion des champs table .

Mais WinDev ne propose pas de fonction dans le même esprit pour récupérer la ligne survolée, cette opération est possible en utilisant la fonction TableInfoXY. Je trouve cette démarche moins intuitive et ne facilite pas la lecture et la compéhension du code lors d'un premier passage. Je poste une petite fonction TableLigneSurvol (Pour conserver l'esprit WinDev) qui renvoie l'indice de la ligne survolée.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
 
// Résumé : retourne l'indice de la ligne survolée dans un champ table
// Syntaxe :
//[ <Résultat> = ] TableLigneSurvol (<ps_Champ> est chaîne)
//
// Paramètres :
//        ps_Champ (chaîne ANSI) : Nom du champ table
// Valeur de retour :
//         entier : indice de la ligne survolée. -1 si pas de ligne survolée
//
// Exemple :
// TableLigneSurvol(Tab_ListeClient..nom)
//
PROCEDURE TableLigneSurvol(ps_Champ est une chaîne) : entier
 
SI ChampExiste(ps_Champ) ALORS
        SI {ps_Champ,indChamp}..Type = typTable ALORS
                RENVOYER TableInfoXY(ps_Champ, tiNumLigne, SourisPosX(), SourisPosY())
        SINON
                ExceptionDéclenche(2,"Le champ '"+ps_Champ+"' n'est pas de type table")
        FIN
SINON
        ExceptionDéclenche(1,"Le champ '"+ps_Champ+"' n'existe pas")
FIN
 
RENVOYER -1

Pour avoir plus de renseignements sur
  • la gestion des exceptions
  • exemple d'utilisation

je vous invite à consulter le billet WinDev : Ligne survolée sur un champ table de mon blog

Bon dev à tous