Pbm dans grille vfp [Résolu]

Messages postés
7
Date d'inscription
dimanche 13 février 2011
Dernière intervention
5 juin 2011
- 13 févr. 2011 à 11:25 - Dernière réponse :
Messages postés
7
Date d'inscription
dimanche 13 février 2011
Dernière intervention
5 juin 2011
- 20 févr. 2011 à 10:40
Bonjour tous le monde,

Voila j'ai un pbm avec une grille.
En fait, dans le interacivechange d'un objet list, j'alimente cette grille comme suit:
-je créé un curseur avec create cursor.
-j'alimente ce cursor.
-j'affecte ce cursor au recordsource de la grille.
-je fais un refresh de la grille.

Quant je clique la première fois sur l'objet liste , tous va bien.

Mais dès que je change de valeur et donc l'interactivehange est déclenché une deuxième fois, l'affichage de la grille se dérègle :les colonnes deviennent très petite et le code que j'ai mis dans "magrille.column1.test1.valid" ne s'exécute plus .

Ma version de vfp est 6

Merci
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
834
Date d'inscription
mardi 5 octobre 2004
Dernière intervention
7 mai 2013
13 févr. 2011 à 17:38
3
Merci
Bonjour,

est-ce que la structure du cursor change à chaque fois?

si cette structure ne change pas, alors il te suffit de créer ce cursor avant l'init de la grille (load du form, ou opentables du DataEnvironment), et ton interactivechange de ta liste rafraichira les données du cursor. Tu n'auras pas besoin de réaffecter ce cursor au recordsource de la grille (ça sera fait une seule fois), un simple refresh suffira.

si le cursor change de structure (mis à part le fait que ça dénoterait probablement un problème de normalisation de données), alors je pense que tu n'as pas d'autre solution que de redéfinir à chaque fois tous les objets de la grille et leurs propriétés.

en ce qui concerne la non exécution du code du valid, comment veux-tu qu'on t'aide si tu ne nous indiques pas ce code?

Merci michelatoutfox 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de michelatoutfox
Messages postés
7
Date d'inscription
dimanche 13 février 2011
Dernière intervention
5 juin 2011
17 févr. 2011 à 08:22
0
Merci
Bonjour Michel et je te remercie pour ta réponse.

En effet,le curseur ne change pas de structure du coup je l'ai mis dans l'init et je n'ai plus de pbm..

Je voudrais profiter de ta gentillesse pour avoir ton avis sur une situation.

Voila, je travail chez une entreprise qui a plusieurs points de ventes distants, les chargés de clientèles font leur ventes à l'aide d'une solution web, mais il y a souvent des coupures qui rendent l'appli web inutilisable (je suis en Algérie).

On m'a demandé de réaliser une petite solution de simulation des tarifs (qui sera locale dans chaque point de vente), de telle sorte que dès que la solution web est déconnectée, les chargés de clientèles pourraient faire une simulation du tarif; puis rempliraient à la main les quittances...

J'ai choisi d'utiliser VFP pour ce simulateur avec des dbf (j'ai evité le dbc car j'ai eu beaucoups de mauvaises surprises antérieurement comme l'histoire des liens qui disparaissent).

Que penses-tu de mon approche ? et penses-tu qu'avec des dbf je pourrais faire fonctionner mon simulateur en multi-postes ?

Merci
Commenter la réponse de cs_lafik
Messages postés
834
Date d'inscription
mardi 5 octobre 2004
Dernière intervention
7 mai 2013
17 févr. 2011 à 09:03
0
Merci
Bonjour,

je connais bien le problème que tu décris (j'ai eu la même demande il y a 10 ans, en VFP6, dans une zone rurale sans liaison internet stable).

Alors oui, avec des dbf, tu peux parfaitement faire fonctionner une application complète en multi-utilisateurs mult-postes sur un LAN. Et tu peux envisager une application complète, avec une synchronisation des données en temps différé (mode asynchrone), en envoyant des dbf de transfert, et en ayant un module d'intégration de données entre les points de vente.

Celà dit, à mon avis, la première chose à faire serait de passer en VFP9, si tu envisages de rester en VFP. la version 9 est beaucoup plus performante et stable que la 6.

Cette solution web, elle s'appuie sur quelles données? des dbf? ou bien un vrai SGBDR (SQL server, Oracle, MySql, Postgres)?

Autre réflexion à avoir, combien de temps vas-tu rester en VFP?
Commenter la réponse de michelatoutfox
Messages postés
7
Date d'inscription
dimanche 13 février 2011
Dernière intervention
5 juin 2011
17 févr. 2011 à 11:20
0
Merci
Bonjour Michel et je te remercie pour ta réactivité,
En fait, la solution web de l'entreprise est avec un vrai SGBDR = Oracle.

Alors, oui je compte rester en VFP car je pense que ce simulateur de tarification ne sera utilisé que pour le moyen terme (les liaisons internet sont entrain de s'améliorer ici en Algérie). Mais quel sera la valeur ajoutée de VFP9 dans mon cas ?

Par contre j'ai un petit doute sur ma compréhension de ta réflexion « Et tu peux envisager une application complète, avec une synchronisation des données en temps différé (mode asynchrone), en envoyant des dbf de transfert, et en ayant un module d'intégration de données entre les points de vente. »

Ma compréhension est la suivante : sachant que j'aurais dans chaque point de vente une dizaine de dbf (contenant les différents tarifs), alors devrais-je faire une mise à jour de ces dbf (à partir du site central) régulièrement ? est-ce cela le module d'intégration de données ? Si oui, j'avoue que je n'ai jamais fait cet exercice et j'aimerais bien profiter de ton expertise dans ce domaine !

Merci
Commenter la réponse de cs_lafik
Messages postés
834
Date d'inscription
mardi 5 octobre 2004
Dernière intervention
7 mai 2013
17 févr. 2011 à 12:01
0
Merci
Puisque tes données sont actuellement sur Oracle, alors la synchronisation n'a pas besoin d'envoyer de dbf, mais juste de mettre à jour les tables sur Oracle avec les données saisies localement, et mettre à jour les tables locales avec les modifs apportées aux données Oracle depuis la dernière connexion.
C'est ce que j'appelle le module d'intégration des données.

En VFP6, tu peux faire ça avec des vues distantes, ou en SQL Pass-Through. Mais en VFP9, en plus, tu as les CursorAdapter pour faire ça (100% objet).
Commenter la réponse de michelatoutfox
Messages postés
7
Date d'inscription
dimanche 13 février 2011
Dernière intervention
5 juin 2011
17 févr. 2011 à 13:40
0
Merci
Merci Michel pour tes éclaircissements.

En fait, ce que je n'arrive pas à saisir est comment mettre à jour les dbf des sites distants à partir des données d'un SGBDR du site central.

Devrais-je développer une autre application qui va s'occuper de cela ? et quel outil devrais-je utiliser ?
Commenter la réponse de cs_lafik
Messages postés
834
Date d'inscription
mardi 5 octobre 2004
Dernière intervention
7 mai 2013
17 févr. 2011 à 13:55
0
Merci
disons que sur ton site central, tu as une table Tcentral1 dans le SGBDR, et tu as sur chaque site distant une table Tlocal1 de même structure. Tu récupères les données de Tcentral1 dans une vue distante, ou un CursorAdapter, ou un SQL passThrough.
Il te suffit de parcourir ce cur_central1 pour mettre à jour Tlocal1...

Tu peux faire ça dans la même application, ou bien dans une appli séparée, ou bien dans un serveur COM+. C'est comme ça te convient le mieux.
Commenter la réponse de michelatoutfox
Messages postés
7
Date d'inscription
dimanche 13 février 2011
Dernière intervention
5 juin 2011
20 févr. 2011 à 10:40
0
Merci
Bonjour Michel et je te remrcie pour ces informations : je ferais une petite cherche afin de choisir l'outil.

Je voudrais avoir ton avis sur un problème que je viens de rencontrer :

Voila, j'ai partagé le repertoire de mon appli et en essayant de l'executer d'un poste distant (dans le meme lan), l'erreur suivante s'affiche "Erreur d'initialisation de l'objet application", mais dès que je clique sur ignorer l'appli se déroule bien.

Je croyais que cela venait du pjx alors j'ai créé un nouveau pjx, j'y est ajouté mon prg principal et j'ai fait "build project" puis j'ai généré un nouvel exe, mais le pbm persiste tjrs
Commenter la réponse de cs_lafik

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.