PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → TableAffiche et requete
TableAffiche et requete
Débuté par Polo, 02 nov. 2005 15:25 - 6 réponses
Posté le 02 novembre 2005 - 15:25
Bonjour,

J'ai une table fichier qui est liée à une requete "affiche_client".
Cette table est cliquable pour afficher la fiche client.

L'utilisateur a la possibilité de modifier cette fiche. Donc quand il ferme
cette fiche (fenetre libre), j'execute dans la fenetre de la table dans la
prise de focus, le code suivant :

hexecuterequete(affiche_client,hRequêteDéfaut)
TableAffiche(Table_req_clients,taCourantBandeau)

Problème : la table se rafraichit (ce que je souhaite) MAIS revient à la
première ligne.

Comment faire, donc, pour que la ligne double cliquée reste à la meme
position ????

Merci de votre réponse.

Polo
Posté le 02 novembre 2005 - 16:04
Bonjour,

J'ai le même problème avec une table fichier rempli par construittable().
Par un TableCherche(), je trouve bien la ligne qui s'affiche en 1ere position, mais la suite ne bouge pas.

Si tu cliqque sur cette 1ère ligne, l'affichage revient au début du fichier.

J'ai eu beau essayé par tableaffiche() avec taCourantBandeau, taDepuisFicheier, bref, toutes les constantes du fichier d'aide, même le Hnumenr(fichier), rien.

J'ai effectué 2 requète au Support, pas de réponse (ou alors les éléments envoyés ne leur permette pas de voir).

Par contre, si tu transforme par une tableMemoire, tout fonctionne.
PB, je travaille avec des fichiers d'adresse clients ( externe )de plus de 900 000 enregistrements ( + de 300 Mega ), il faut 30 Mn pour charger et en plus ça plante le système).

Si tu arrive à avoir des infos...

Cordialement

C.AUBRY
Posté le 02 novembre 2005 - 17:19
J'ai fait les memes tests que toi... il me semble qu'avant ca marchait très
bien !!!
Pour résoudre le problème, j'ai mis au point un code complexe qui récupère
l'id de la ligne puis la réaffiche... mais quelle usine à gaz.

Allez chers ami(e)s, aidez nous !
Posté le 03 novembre 2005 - 07:49
Le plus simple est de récupérer la valeur de la colonne clé de ta table

//Variable Globale
MonIdRecherche est entier


//Sur l'évènement à chaque clic ou double clic sur une ligne de la table
MonIdRecherche = MaTable.MaColonneID

//Actualisation de la requete
HExecuteRequete(MaRequete,HRequeteDefaut)
TableAffiche(MaTable,TaDébut)
TableSelectPlus(MaTable,TableCherche(MaTable.MaColonneID,MonIdRecherche,Hidentique,1))

Ce code devrait marcher mis sera un peu plus long si tu as beaucoup d'enregistrements dans ta table...

Essaye le et tiens moi au courant !!!!!!
Posté le 03 novembre 2005 - 10:08
Salut,

Merci de ta réponse.
C'est déjà ce que je fais. Et effectivement cela pose pb car j'ai un gd
nombre d'enregistrements...

Quelqu'un a-t-il une autre solution ?

POlo
Posté le 03 novembre 2005 - 10:56
Bonjour

"Polo" <paul.gera@free.fr> a écrit dans le message de news:
4368b903$1@news.pcsoft.fr...

Bonjour,

J'ai une table fichier qui est liée à une requete "affiche_client".
Cette table est cliquable pour afficher la fiche client.

L'utilisateur a la possibilité de modifier cette fiche. Donc quand il
ferme
cette fiche (fenetre libre), j'execute dans la fenetre de la table dans la
prise de focus, le code suivant :

hexecuterequete(affiche_client,hRequêteDéfaut)
TableAffiche(Table_req_clients,taCourantBandeau)

Problème : la table se rafraichit (ce que je souhaite) MAIS revient à la
première ligne.

Comment faire, donc, pour que la ligne double cliquée reste à la meme
position ????

Merci de votre réponse.

Polo



Il y a quelques jours, j'ai bricolé un bout de code réalisant à peu près la
même opération et je ne me rappelle pas avoir rencontré de problème
particulier (je me suis servi de la valeur mémorisée de la table)

A+

Val
Posté le 03 novembre 2005 - 21:13
Il suffit d'utiliser un TableModifieLigne(TABLE,-1,Pointe,CONTACT.Societe,CONTACT.Nom) sans faire appel à une requete ni à un tableaffiche.
Le principe est de récupérer la nouvele valeur et de modifier la ligne en cours au retour de la modification .

le -1 permet de modidifier la ligne en cours

CONTACT.Societe,CONTACT.Nom sont les rubriques du fichier et elles contiennent obligatoirement la dernière valeur