ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage functions / Controls, pages and windows / Table functions
  • Conditions d'utilisation
  • Les différents types d'indices de colonne
  • Utilisation des fonctions SourisPosX et SourisPosY
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Renvoie pour une position donnée dans un champ Table ou Table hiérarchique (coordonnées d'un point du champ) :
  • soit le nom de la colonne affichée pour la position indiquée.
  • soit l'indice de la ligne ou de la colonne pour la position indiquée.
WINDEVAndroid
// Code optionnel de clic sur le champ Table TABLE_TABLE1
MaLigne est un entier
MaColonne est une chaîne
MaLigne = TableInfoXY(TABLE_TABLE1, tiNumLigne, SourisPosX(), SourisPosY())
MaColonne = TableInfoXY(TABLE_TABLE1, tiNomColonne, SourisPosX(), SourisPosY())
Trace("Vous avez sélectionné la cellule (" + MaColonne + ", " + MaLigne + ")")
// Indice de la ligne au point (50, 100) du champ Table "TABLE_TableProduit"
ResInfo = TableInfoXY(TABLE_TableProduit, tiNumLigne, 50, 100)
Syntaxe
<Résultat> = TableInfoXY(<Champ Table> , <Type d'information> , <X> , <Y>)
<Résultat> : Chaîne de caractères, entier ou booleén
  • Information demandée.
  • Une chaîne vide ("") s'il n'y a pas de nom de colonne.
  • -1 s'il n'y a pas d'indice de colonne ou de numéro de ligne, ou si la position spécifiée correspond à une ligne vide ou à une colonne vide.
<Champ Table> : Nom de champ
Nom du champ Table ou Table hiérarchique à manipuler.
Si ce paramètre correspond à une chaîne vide (""), le champ manipulé est le champ auquel appartient l'événement en cours.
<Type d'information> : Constante de type entier
Type d'information demandée :
tiNomColonneNom de la colonne.
WEBDEV - Code NavigateuriPhone/iPadMac Catalyst Cette constante n'est pas disponible.
tiNumColonneIndice de création de la colonne.
iPhone/iPadMac Catalyst Cette constante n'est pas disponible.
tiNumLigneNuméro de la ligne.
tiOrigineEcranLes coordonnées à analyser sont données par rapport à l'écran.
Rappel : Par défaut, les coordonnées à analyser sont données par rapport au champ Table : le point (0,0) correspond à la ligne 1, colonne 1 du champ Table manipulé (les ascenseurs étant situés à l'origine).
Cette constante ne peut pas être utilisée seule.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tiSurBoutonEnrouleDérouleBoutons "+/-" pour déplier/replier une ligne. Dans ce cas, <Résultat> vaut Vrai (1).
Cette constante est disponible uniquement pour les champs Table hiérarchique.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
<X> : Entier
Coordonnée X (en pixels) à analyser. Cette coordonnée est relative au champ (si la constante tiOrigineEcran n'est pas précisée).
<Y> : Entier
Coordonnée Y (en pixels) à analyser. Cette coordonnée est relative au champ (si la constante tiOrigineEcran n'est pas précisée).
Remarques

Conditions d'utilisation

La fonction TableInfoXY peut être utilisée indifféremment sur :
  • un champ Table ou Table hiérarchique fichier.
  • un champ Table ou Table hiérarchique par programmation.
  • un champ monosélection ou multisélection.

Les différents types d'indices de colonne

Il existe 2 types d'indices pour les colonnes :
  • Indice de la position visible : indice de la colonne lors de l'exécution de la fenêtre.
  • Indice de création : indice de la colonne lors de la création de la table sous l'éditeur de fenêtres.
Ces indices sont différents à partir du moment où les colonnes ont été déplacées par l'utilisateur.
De plus, si l'ascenseur horizontal est utilisé, la fonction TableInfoXY tient compte de ce déplacement.

Utilisation des fonctions SourisPosX et SourisPosY

Pour utiliser les fonctions SourisPosX et SourisPosY dans les paramètres X et Y de la fonction, il est nécessaire de s'assurer que seul un clic de souris pourra déclencher l'exécution du code contenant cette fonction.
Par exemple, l'événement "Sélection d'une ligne" d'un champ Table peut être lancé par un clic de souris mais aussi par une sélection au clavier. Il faut donc éviter d'utiliser les fonctions SourisPosX et SourisPosY dans cet événement. Préférez un événement optionnel. Dans cet exemple, utilisez l'événement optionnel "Bouton gauche relâché" sur un champ Table.
Classification Métier / UI : Code UI
Composante : wd290obj.dll
Minimum version required
  • Version 9
Comments
Dica de ouro
Prezados

Para pegar um registro id de um browser table grid tem 2 formas:

Crie uma var global da janela:
GNID is 8-byte int = 0


A) Em Code evento
SELECT ROW

GNID = TableNameGrid.COL_myID



B) Em Code evento
SELECT ROW

Nx is int = Tableinfoxy(TableNameGrid, tiLineNumber, MouseXPos(), MouseYPos())

If nx > 0

GNID = TableNameGrid[nx].COL_myID

End
Boller
16 Apr. 2024
Exemplo
https://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/3239-procedure-com-indirection-para-selecionar-registro-uma-grid-3240/read.awp
BOLLER
24 Jun. 2019
Getting field Value
nColumn is int = TableInfoXY(TABLE_FLUXO,tiColNumber, MouseXPos(), MouseYPos())

nLine is int = TableInfoXY(TABLE_FLUXO,tiLineNumber, MouseXPos(), MouseYPos())

FieldValue is string = TABLE_FLUXO[nLine ,nColumn]
Danilo
28 Aug. 2018
Exemplo TableInfoXY

s_nome_coluna is string=TableInfoXY(TABLE_condicoes_parcela,tiColName,MouseXPos(),MouseYPos())
nS_posicao_linha is int=TableInfoXY(TABLE_condicoes_parcela,tiLineNumber,MouseXPos(),MouseYPos())
nS_posicao_coluna is int=TableInfoXY(TABLE_condicoes_parcela,tiColNumber,MouseXPos(),MouseYPos())
IF s_nome_coluna="COL_data_vencimento" THEN
ReturnToCapture(EDT_cond_data_vencimento)
ELSE
ReturnToCapture(EDT_cond_valor_titulo)
END

//Blog com Video e Exemplo
http://windevdesenvolvimento.blogspot.com.br/2016/03/curso-windev-tabela-017-saber-nome.html
De matos AMARILDO
20 Mar. 2016
Wx - Capturar Click no Browse List
// retrieve the row that was clicked

nRowNum is int=TableInfoXY(TABLE_t012_filiais,tiLineNumber,MouseXPos(),MouseYPos())

// if the row corresponds to a user

IF nRowNum>0 _AND_ nRowNum<=TABLE_t012_filiais..Occurrence THEN

// modify the user

gsAcao = "Alterar"

Registro_ID = TABLE_t012_filiais[nRowNum].COL_T012_filiaisID // <---- nRowNum ATENÇÃO AQUI VC DEVE COLOCAR O NUMERO DA LINHA

//info(Registro_ID)

ExecuteProcess(TAB_Geral.BTN_Alterar_Filial,trtClick)

ELSE

// new user

gsAcao = "Incluir"

ExecuteProcess(TAB_Geral.Btn_Incluir_Filial,trtClick)

END
adrianoboller
18 Feb. 2016

Last update: 05/25/2022

Send a report | Local help