PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → [WD 8] Récup=E
[WD 8] Récup=E
Started by pascal, Sep., 16 2004 7:29 PM - 6 replies
Posted on September, 16 2004 - 7:29 PM
Bonjour,
Voila je sèche sur un problème de table (mémoire) ouvrant un menu contextuel.
je suis dans une colonne de la table. j'ai affecté un menu contextuel uniquement à cette colonne.
Dans le code du menu, j'ai besoin du nom ou de l'indice de la colonne afin de renvoyer la valeur calculée dans le code du menu.
Or je ne trouve aucune fonction me permettant de récupérer cette info.
ChampContextuel et ChampEnCours me donnent le nom de la table.
Je pensais m'en sortir avec ColonnEnCours, mais je récupère sytématiquement -1.
Quelqu'un aurait une idée?

Mon code:
cChampAppelant est une chaîne
eCol est un entier
dDate est une Date = DateSys()

// Récupérer le nom du champ
cChampAppelant = ChampContextuel()
SI {cChampAppelant}..Type=typTable ALORS
eCol=ColonneEnCours() <------- tjrs -1 bien que le champ soit une table :-@
FIN
SI {cChampAppelant}..Type=typComboAVS OU {cChampAppelant}..Type=typComboSNS ALORS
ListeModifie(cChampAppelant,gLien(dDate)+DateVersChaine(dDate),1)
ListeSelectPlus(cChampAppelant,1)
SINON
SI {cChampAppelant}..Type=typTable ALORS
{cChampAppelant}[IndiceEnCours()][eCol]=dDate
SINON
cChampAppelant=dDate
FIN
FIN

Peut être ai-je raté quelque chose. Merci de vos lumières.

--
Pascal Ferracci
efpé

efpe@efpe.biz
Posted on September, 16 2004 - 9:56 PM
utilise la fonction TableInfoXY() ou les fonctions ci-jointes
cordialement JCP


PROCEDURE TableInfoLigne(pNomTable)
x est un entier = PoidsFaible(CurseurPos())
y est un entier = PoidsFort(CurseurPos())
slig est une chaîne = TableInfoXY(pNomTable, tiNumLigne + tiOrigineEcran, x, y)
nLig est un entier = slig
RENVOYER nLig // position de la ligne

PROCEDURE TableInfoColonne(pNomTable)
x est un entier = PoidsFaible(CurseurPos())
y est un entier = PoidsFort(CurseurPos())
sCol est une chaîne = TableInfoXY(pNomTable, tiNumColonne + tiOrigineEcran, x,
y)
nCol est un entier = sCol
RENVOYER nCol // position de la colonne


"Pascal F" <pascal@efpe.biz> a écrit dans le message de
news:4149b13f@news.pcsoft.fr...

Bonjour,
Voila je sèche sur un problème de table (mémoire) ouvrant un menu contextuel.
je suis dans une colonne de la table. j'ai affecté un menu contextuel

uniquement à cette colonne.
> Dans le code du menu, j'ai besoin du nom ou de l'indice de la colonne afin de
renvoyer la valeur calculée dans le code du menu.
Or je ne trouve aucune fonction me permettant de récupérer cette info.
ChampContextuel et ChampEnCours me donnent le nom de la table.
Je pensais m'en sortir avec ColonnEnCours, mais je récupère

sytématiquement -1.
Quelqu'un aurait une idée?

Mon code:
cChampAppelant est une chaîne
eCol est un entier
dDate est une Date = DateSys()

// Récupérer le nom du champ
cChampAppelant = ChampContextuel()
SI {cChampAppelant}..Type=typTable ALORS
eCol=ColonneEnCours() <------- tjrs -1 bien que le champ soit une table :-@
FIN
SI {cChampAppelant}..Type=typComboAVS OU {cChampAppelant}..Type=typComboSNS

ALORS
ListeModifie(cChampAppelant,gLien(dDate)+DateVersChaine(dDate),1)
ListeSelectPlus(cChampAppelant,1)
SINON
SI {cChampAppelant}..Type=typTable ALORS
{cChampAppelant}[IndiceEnCours()][eCol]=dDate
SINON
cChampAppelant=dDate
FIN
FIN

Peut être ai-je raté quelque chose. Merci de vos lumières.

--
Pascal Ferracci
efpé

efpe@efpe.biz
Posted on September, 16 2004 - 10:26 PM
Bonjour, voici le code pour récupérer le nom de la colonne

cColonneAppelante est une chaine
x est un entier
y est un entier
//A Ajouter dans le code de SI {cChampAppelant}..Type=typTable ALORS
x = PoidsFaible(CurseurPos(cpEcran))
y = PoidsFort(CurseurPos(cpEcran))
cColonneAppelante = TableInfoXY(Table1,tiNomColonne+tiOrigineEcran, x, y)

ensuite pour aller écrire la valeur il faut le faire ainsi
SI {cChampAppelant}..Type=typTable ALORS
{cColonneAppelante}[IndiceEnCours()]=dDate
...

J'espère que ca va t'aider


Mathieu
Posted on September, 16 2004 - 10:29 PM
Regardes dans l'aide la rubrique 'Table, Récupérer les coordonnées du clic
droit dans le menu contextuel'
Regardes égalemment l'aide de la fonction TableInfoXY

Bon dev ;-)

"Pascal F" <pascal@efpe.biz> a écrit dans le message de
news:4149b13f@news.pcsoft.fr...

Bonjour,
Voila je sèche sur un problème de table (mémoire) ouvrant un menu

contextuel.
> je suis dans une colonne de la table. j'ai affecté un menu contextuel
uniquement à cette colonne.
Dans le code du menu, j'ai besoin du nom ou de l'indice de la colonne afin

de renvoyer la valeur calculée dans le code du menu.
Or je ne trouve aucune fonction me permettant de récupérer cette info.
ChampContextuel et ChampEnCours me donnent le nom de la table.
Je pensais m'en sortir avec ColonnEnCours, mais je récupère

sytématiquement -1.
Quelqu'un aurait une idée?

Mon code:
cChampAppelant est une chaîne
eCol est un entier
dDate est une Date = DateSys()

// Récupérer le nom du champ
cChampAppelant = ChampContextuel()
SI {cChampAppelant}..Type=typTable ALORS
eCol=ColonneEnCours() <------- tjrs -1 bien que le champ soit une table

:-@
FIN
SI {cChampAppelant}..Type=typComboAVS OU

{cChampAppelant}..Type=typComboSNS ALORS
ListeModifie(cChampAppelant,gLien(dDate)+DateVersChaine(dDate),1)
ListeSelectPlus(cChampAppelant,1)
SINON
SI {cChampAppelant}..Type=typTable ALORS
{cChampAppelant}[IndiceEnCours()][eCol]=dDate
SINON
cChampAppelant=dDate
FIN
FIN

Peut être ai-je raté quelque chose. Merci de vos lumières.

--
Pascal Ferracci
efpé

efpe@efpe.biz
Posted on September, 16 2004 - 10:30 PM
JCP a émis l'idée suivante :
utilise la fonction TableInfoXY() ou les fonctions ci-jointes
cordialement JCP


PROCEDURE TableInfoLigne(pNomTable)
x est un entier = PoidsFaible(CurseurPos())
y est un entier = PoidsFort(CurseurPos())
slig est une chaîne = TableInfoXY(pNomTable, tiNumLigne + tiOrigineEcran, x, y)
nLig est un entier = slig
RENVOYER nLig // position de la ligne

PROCEDURE TableInfoColonne(pNomTable)
x est un entier = PoidsFaible(CurseurPos())
y est un entier = PoidsFort(CurseurPos())
sCol est une chaîne = TableInfoXY(pNomTable, tiNumColonne + tiOrigineEcran, x,
y)
nCol est un entier = sCol
RENVOYER nCol // position de la colonne


"Pascal F" <pascal@efpe.biz> a écrit dans le message de
news:4149b13f@news.pcsoft.fr...

Bonjour,
Voila je sèche sur un problème de table (mémoire) ouvrant un menu contextuel.
je suis dans une colonne de la table. j'ai affecté un menu contextuel uniquement à cette colonne.
Dans le code du menu, j'ai besoin du nom ou de l'indice de la colonne afin de renvoyer la valeur calculée dans le code du menu.
Or je ne trouve aucune fonction me permettant de récupérer cette info.
ChampContextuel et ChampEnCours me donnent le nom de la table.
Je pensais m'en sortir avec ColonnEnCours, mais je récupère sytématiquement -1.
Quelqu'un aurait une idée?

Mon code:
cChampAppelant est une chaîne
eCol est un entier
dDate est une Date = DateSys()

// Récupérer le nom du champ
cChampAppelant = ChampContextuel()
SI {cChampAppelant}..Type=typTable ALORS
eCol=ColonneEnCours() <------- tjrs -1 bien que le champ soit une table :-@
FIN
SI {cChampAppelant}..Type=typComboAVS OU {cChampAppelant}..Type=typComboSNS ALORS
ListeModifie(cChampAppelant,gLien(dDate)+DateVersChaine(dDate),1)
ListeSelectPlus(cChampAppelant,1)
SINON
SI {cChampAppelant}..Type=typTable ALORS
{cChampAppelant}[IndiceEnCours()][eCol]=dDate
SINON
cChampAppelant=dDate
FIN
FIN

Peut être ai-je raté quelque chose. Merci de vos lumières.

--
Pascal Ferracci
efpé

efpe@efpe.biz


Merci, mais le problème est que la fonction CurseurPos() renvoi l'endroit où j'ai cliqué dans le menu contextuel et non l'emplacement de la colonne.

--
Pascal Ferracci
efpé

efpe@efpe.biz
Posted on September, 17 2004 - 12:16 AM
Pascal F <pascal@efpe.biz> écrivait news:4149b13f@news.pcsoft.fr:


contextuel uniquement à cette colonne. Dans le code du menu, j'ai
besoin du nom ou de l'indice de la colonne afin de renvoyer la valeur
calculée dans le code du menu. Or je ne trouve aucune fonction me


Salut,

Utilise TableInfoXY, cette fonction est bien documentée.
Elle permet la récupération de la colonne (ou de la ligne) en fonction de
coordonnées. Pour le menu contextuel l'utilisateur utilise la souris, tu as
donc les coordonnées de la souris !


--
En esperant t'avoir aidé.
ted
Posted on September, 17 2004 - 12:50 AM
Thierry a écrit :
Regardes dans l'aide la rubrique 'Table, Récupérer les coordonnées du clic
droit dans le menu contextuel'
Regardes égalemment l'aide de la fonction TableInfoXY

Bon dev ;-)

"Pascal F" <pascal@efpe.biz> a écrit dans le message de
news:4149b13f@news.pcsoft.fr...

Bonjour,
Voila je sèche sur un problème de table (mémoire) ouvrant un menu contextuel.
je suis dans une colonne de la table. j'ai affecté un menu contextuel uniquement à cette colonne.
Dans le code du menu, j'ai besoin du nom ou de l'indice de la colonne afin de renvoyer la valeur calculée dans le code du menu.
Or je ne trouve aucune fonction me permettant de récupérer cette info.
ChampContextuel et ChampEnCours me donnent le nom de la table.
Je pensais m'en sortir avec ColonnEnCours, mais je récupère sytématiquement -1.
Quelqu'un aurait une idée?

Mon code:
cChampAppelant est une chaîne
eCol est un entier
dDate est une Date = DateSys()

// Récupérer le nom du champ
cChampAppelant = ChampContextuel()
SI {cChampAppelant}..Type=typTable ALORS
eCol=ColonneEnCours() <------- tjrs -1 bien que le champ soit une table :-@
FIN
SI {cChampAppelant}..Type=typComboAVS OU {cChampAppelant}..Type=typComboSNS ALORS
ListeModifie(cChampAppelant,gLien(dDate)+DateVersChaine(dDate),1)
ListeSelectPlus(cChampAppelant,1)
SINON
SI {cChampAppelant}..Type=typTable ALORS
{cChampAppelant}[IndiceEnCours()][eCol]=dDate
SINON
cChampAppelant=dDate
FIN
FIN

Peut être ai-je raté quelque chose. Merci de vos lumières.

--
Pascal Ferracci
efpé

efpe@efpe.biz


Effectivement je n'avais pas pensé à l'évènement clic droit sur la table. C'est le fait de gérer aussi bien l'appui ou le relachement de touche ou de
bouton de souris sur la table et non sur la colonne qui m'a perturbé. Et pourtant j'avais capté pour l'appui sur une touche.
Merci

--
Pascal Ferracci
efpé

efpe@efpe.biz