Pbm dans grille vfp

Résolu
cs_lafik Messages postés 7 Date d'inscription dimanche 13 février 2011 Statut Membre Dernière intervention 5 juin 2011 - 13 févr. 2011 à 11:25
cs_lafik Messages postés 7 Date d'inscription dimanche 13 février 2011 Statut Membre 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

8 réponses

michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
13 févr. 2011 à 17:38
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?
3
cs_lafik Messages postés 7 Date d'inscription dimanche 13 février 2011 Statut Membre Dernière intervention 5 juin 2011
17 févr. 2011 à 08:22
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
0
michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
17 févr. 2011 à 09:03
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?
0
cs_lafik Messages postés 7 Date d'inscription dimanche 13 février 2011 Statut Membre Dernière intervention 5 juin 2011
17 févr. 2011 à 11:20
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
17 févr. 2011 à 12:01
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).
0
cs_lafik Messages postés 7 Date d'inscription dimanche 13 février 2011 Statut Membre Dernière intervention 5 juin 2011
17 févr. 2011 à 13:40
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 ?
0
michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
17 févr. 2011 à 13:55
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.
0
cs_lafik Messages postés 7 Date d'inscription dimanche 13 février 2011 Statut Membre Dernière intervention 5 juin 2011
20 févr. 2011 à 10:40
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
0
Rejoignez-nous