Accueil > Forum > > > > re set filter to
re set filter to
vendredi 10 mars 2006 à 15:05:02 |
re set filter to

brunaux
|
bonjour merci mike pour les réponses.je vois que tu n'apprecie pas trop SET FILTER TO, je trouve pourtant que c'est bien pratique et rapide pour les débutants ! je ne vois pas trop comment faire pour mettre le curseur du SELE ...... dans le recordsource de la grille vu qu'il y a déjà la table d'affecté puisque dans la grille on saisie des valeurs,chaque colonne de la grille etant affecté a un champs de la table,je ne comprends donc pas bien ta phrase "Encore une fois considère le curseur pour ton Recordsource de ta grille." j'ai un peu de mal a comprendre.Si on fait un SELECT * from matable where secteur = '200' and motif = '81' into curseur moncurseur. que l'on arrive a afiicher le résultat dans la grille (il faut déjà y arriver !),peut-on faire ensuite des insertions de valeurs,des suppressions... j'en profite pour vous remercier tous (les benevoles) pour vos reponses qui nous aident bien merci
|
|
samedi 11 mars 2006 à 14:01:42 |
Re : re set filter to

Mike Gagnon
|
Réponse acceptée !
>>>je trouve pourtant que c'est bien pratique et rapide pour les débutants !
A ton choix, mais je crois que les débutants qui apprennent à
programmer, devraient apprendre de la bonne facon, la plus efficace et
la plus sécure. Surtout si un jour tu écrit une applicatiion qui va
aller sur un serveur, avec 200 utilisateurs avec une table à filtrer de
100,000 records, ton client va se plaindre tres vite de la lenteur de
ton application. Qunad tu allais (ou va encore) apprendre à
l'école, et le prof te dit 'voici comment faire' est-ce que tu décide
de faire à ta facon parce ce que c'est 'pratique et rapide'? Je dois
espérer que non. Voici un example de la facon de faire que j'utilse
dans mes applications.
1. Crée un simple formulaire.
2. Ajoute un grille (fait rian avec pour l'instant autre que la déposer sur le formulaire.
3. Dans le dataenvironment met un table (par example pour le cas de
notre excercise met la table 'customer' que se trouve probablement dans
ton dossier HOME(2)+'\tastrade\data'.
4. Met le buffering de la table (cursor) à 5. Qui est bon pour les applications à plusieurs utilisateurs.
5. Ajoute un bouton sur la forme pour sauvegarder les records.
6. Dans l'init de la forme met ceci:
Thisform.grid1.RecordSource ='' && preserver le format de la grille et clairer les records
Select * From customer Where country ="Mexico" Into Cursor moncurseur
Readwrite && Faire un select pour les clients qui demeurent au
Mexique
CURSORSETPROP("Buffering",5,"moncurseur") && Changer le buffering du curseur
With This.grid1
.ColumnCount = 2 && Mettre le nombre de colonnes à la grille
.RecordSource="moncurseur" && Mettre le recordsource vers le curseur
.Column1.header1.Caption = "Société" && Le titre de la colonne 1
.Column1.ControlSource ="moncurseur.company_name" && Assigner le champs
.Column1.Width = 200 && Ajuster la largeur
.Column2.ControlSource ="moncurseur.COUNTRY" && Assigner la colonne 2
.Column2.header1.Caption = "Pays" && Titre de la colonne 2
Endwith
En faisant comme ci-haut, c'est vite et sécure et tu peux changer tout
ce que tu veux sans déranger les autres utilisateurs puisque tu est en
mode curseur.
Pour ce que est de sauvgarder, la c'est peut-etre un peu plus compliqué
comme technique, mais une fois compris, tu reviendra jamais en arriere.
Voci le code du click du bouton sauvegarde:
LOCAL Array monarray[1] && Créer un tableau pour compter les champs
LOCAL x && Variable juste pour l'exemple
x = 0 && Initialise à 0
Select moncurseur && Selectionner le curseur
nFieldCount=Afields(monarray,'Moncurseur') && Compter combien de champs on doit vérifier
Scan
For i = 1 To nFieldCount && Faire un loop pour voir si on a un champs quio a changé de valeur
If Getfldstate(monarray[i,1])
> 1 && Si la valeur est plus haute que 1 c'est que le
champs a été modifié on doit suavegarder le records au complet
** ce champs a changé on doit le sauvegarder dans la
table principale
x = x +
1 && On compte combien de records on sauvegarde
Scatter Name
oRecord && On se crée un objet que contient toute les
valeurs du record
Select customer && On va a la table principale
Set Order To customer_i && On change l'index
If Seek(oRecord.customer_id) && On cherche le records
if Getfldstate(monarray[i,1]) = 2 && record
supprimé
DELETE
else
Gather name oRecord && Un fois trouvé
on replace tous les valeurs avec la valeurs de l'objet
endif
Loop && et on sort de la loop, puisqu'on vient de
sauvegarder et on passe au prochain
Endif
Endif
Endfor
ENDSCAN
=TABLEUPDATE(.t.,.t.,'customer') && On fait un mis a jour de la table principale
MESSAGEBOX("Il y a "+TRANSFORM(x)+" champs qui ont changé")
&& A titre d'exemple on montre combien de records on été
sauvegardés
Tout cela pour te dire que moi aussi j'ai commencé avec SET FILTER,
mais on réalise tres vite qu'il y a de meilleur facons, plus rapide et
plus sécure.
Mike Gagnon
|
|
samedi 11 mars 2006 à 14:42:19 |
Re : re set filter to

Mike Gagnon
|
Un autre point que j'ai oublié. Dans le bouton sauvegarde à la dernière
ligne tu devrait refaire le select, sinon VFP va resauvegarder les
record meme si il sint déjà sauvargés. Tu pourrait ajouter la ligne
suivante
THISFORM.Init() && Refaire le curseur
Mike Gagnon
|
|
lundi 13 mars 2006 à 08:16:24 |
Re : re set filter to

brunaux
|
Bonjour merci mike pour les réponses.dès que j'ai un peu de temps libre j'essairai de bien lire ton code,tout comprendre et de le mettre en application en essayant de le refaire pour m'entrainer. je précise que je ne suis absolument pas informaticien de formation! j'ai appris foxpro (enfin le peu que je connais) tout seul avec un bouquin,ce qui n'est pas toujours facile,quand vous comprenez pas un truc et que personne n'est là pour bien vous l'expliquez en décomposant bien les choses.je fais juste des toutes petites application internes en me debrouillant tant bien que mal (formulaires de saisies,programmes de controles des données,impressions de tableaux de comptages,etc... des petits trucs quoi !),j'utilise foxpro de temps en temps.je ne ferais donc jamais des applications serveur pour 200 personnes !!! je vais donc m'entrainer avec ton code et essayer d'oublier un peu SET FILTER ! dommage pour la barre de progression,je ferais sans.... le dernier point concernant le combobox ,c'est que avec le combo par defaut de VFP je ne sais pas faire les filtrages avec les lettres et les ajout de données.celui la le fait tout seul.quand je charge les 36000 communes,on tape une lettre (EX: 'p'),il affiche tts les communes commencant par p,puis 'a',affiche tts les communes commencant par 'pa' en mettant en surbrillance noir les 2 lettres tapes (comme dans access) et ainsi de suite ca reduit au fur et a mesure la liste des villes et on peut saisir une communes n'y figurant pas (et qui sera reproposer plus tard)et quand on quitte le combo la valeur utilisé (soit existantes ou saisie manuellement) est stocke dans le champs correspondant de la table. bonne journée et encore merci pour les réponses.
|
|
lundi 13 mars 2006 à 11:13:26 |
Re : re set filter to

Mike Gagnon
|
En passant il n'y pas d'école pour apprendre Foxpro au Canada non plus.
Moi aussi j'ai appris tout seul. Et il y a 20 ans, il n'y avais pas de
livres ni d'internet alors je comprends tres bien ta situation.
La description du combo que tu décrit est tres similaire à un type
d'utilisation du combo natif à VFP sur lequel j'ai écrit il y a un
certain temps. Mais il était plutot 'autofill' comme l'internet
explorer (ou Excel), aussitot que tu tapais une lettre il te montre le
prepier mot qui commence avec cette lettre, et un deuxieme lettre, il
te montre le premier mot qui commence avec ces deux lettres etc...Et
lorques tu écrit un mot qui n'existe pas il te demmande de le
sauvarger. La seulle différence est que je n'utiliserais pas un combo
pour 36,000 entrées.
J'utiliserais peut etre un combo en combinaison avec une grille.
Charger 36,000 entrées dans un grille est rien pour VFP et le combo
pourrait ne pas contenir la liste, mais strictement l'utiliser comme
outil de recherche. Sino tu pourrais aussi créer ta liste an array
lorsque le programme commence, ou on est habitué à un certain délai.
Tu peux trouver un description du combo autofill chez Atoutfox
http://www.atoutfox.com/articles.asp?ACTION=FCONSULTER&ID=0000000036
Mike Gagnon
|
|
Cette discussion est classée dans : set, grille, curseur, to, filter
Répondre à ce message
Sujets en rapport avec ce message
Pb Set filter to et de grid !!! [ par spoutnic_37 ]
aloha, voici mon code qui est placé dans la methode click d'un bouton:*****************************************************************************
set filter to et refresh [ par brunaux ]
Bonjour à tous2 petites questions qui feront peut-être sourire beaucoup d'entre vous au vu de leur simplicité pour les bons que vous êtes.1ere :quand
Paramétrage de SET FILTER TO [ par statayou ]
Bonjour a tousJe voudrais, à partir d'une table DBF éditer des listes en faisant varier les criteres de tri sans intervenir su
filtrage [ par mourad1212 ]
bonjour je suis un debutant en foxpro. j'ai essayé SET FILTER TO mais elle est trés lente ma question est comment creer une VUE PARAMETRE au lieu d'ut
SET RELATION TO [ par PLANETVO ]
Pouvez-vous m’aider car j’ai mis mes tables en relation dans une relation 1 à plusieurs. La table parent est véhicule et pour chaque véhicule je veux
Help in French translation [ par Igor2008 ]
Hello all, I am an author of User-defined functions FoxPro (Visual FoxPro, FPW 2.6, FoxPro 2.6 for DOS). More than 2000 people have already downlo
Executable sous windows 7 [ par top16 ]
Bonjour ... j ai développé quelques petites applications en vfp9 mais je n ai jamais eu besoin de créer d' "exe" ... Je suis sous Windows 7, et lorsq
Sélection ou Highlight d'une ligne dans une grille [ par renaudsegur ]
Bonjour,débutant en VFP, je souhaite sélectionner une ligne entière, ou un groupe de cellules d'une grille, mais sans passer par Grille.ActivateCell c
* * * Valeur tronquer avec un REPORT TO FILE * * * [ par macra ]
Bonjour,J'ai quelques difficultes d'affichage d'un report. J'ai une colonne qui contient un string , mais l'affichage ne se fait que sur 4 carateres q
Transactions [ par jvdh ]
Bonjour a tous,J'ai developpe un systeme de vente au detail type POS et afin de garantir l'integrite des informations sur le reseau, j'ai donc impleme
Livres en rapport
|
Derniers Blogs
SQL SERVER : PHP ET SQL SERVERSQL SERVER : PHP ET SQL SERVER par christian
Juste une petite synthèse sur les possibilités de connecter une application PHP sur un serveur SQL Server. Non pas que je me sois reconverti en développeur PHP, mais je constate qu'actuellement il est très difficile dans un environnement PHP et partic...
Cliquez pour lire la suite de l'article par christian [TECHDAYS 2010] WINDOWS AZURE APPFABRIC (CLO305)[TECHDAYS 2010] WINDOWS AZURE APPFABRIC (CLO305) par NeuroCypher
Les webcasts sont désormais en ligne, je me décide donc à écrire ce post. J'ai encore eu la chance d'animer une session aux TechDays cette année. Le sujet : le même que l'année dernière, ou plutôt son évolution. En effet, l'année dernière la couche de com...
Cliquez pour lire la suite de l'article par NeuroCypher OUTILS D'IMPORT AVEC MISE à JOUR DANS MICROSOFT DYNAMICS CRMOUTILS D'IMPORT AVEC MISE à JOUR DANS MICROSOFT DYNAMICS CRM par bianca
Problématique
Si vous avez besoin d'exporter sous Excel une liste de comptes ou de contacts dans le but de faire des retouches à droite à gauche puis de réinjecter le tout dans CRM, vous ne pouvez pas vous en...
Cliquez pour lire la suite de l'article par bianca SQL SERVER : DéVELOPPER UN ADDON POUR SQL SERVER MANAGEMENT STUDIO (SSMS)SQL SERVER : DéVELOPPER UN ADDON POUR SQL SERVER MANAGEMENT STUDIO (SSMS) par christian
Pour celles et ceux qui aiment SQL Server et on l'âme de développeur (ou sont tout simplement développeur) et veulent étendre les fonctionnalités de SQL Server, voici un article qui devrait pouvoir un intéresser.
Certes ce dernier est écrit sur u...
Cliquez pour lire la suite de l'article par christian EDITEUR XAML DE VISUAL STUDIO: COMMENT ALIGNER LES ATTRIBUTS LES UNS EN DESSOUS DES AUTRES AUTOMATIQUEMENTEDITEUR XAML DE VISUAL STUDIO: COMMENT ALIGNER LES ATTRIBUTS LES UNS EN DESSOUS DES AUTRES AUTOMATIQUEMENT par Miiitch
Lorsque l'on écrit du XAML, les tags XML peuvent vraiment devenir très longs et pas pratique à lire: Il y a une option vraiment pratique dans l'éditeur de Visual Studio qui va nous permettre de réorganiser tout cela en mettant les attributs XAML les uns e...
Cliquez pour lire la suite de l'article par Miiitch
Forum
RE : TXT VERS DBFRE : TXT VERS DBF par MichelAtoutFox
Cliquez pour lire la suite par MichelAtoutFox RE : TXT VERS DBFRE : TXT VERS DBF par MichelAtoutFox
Cliquez pour lire la suite par MichelAtoutFox
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|