Soyez le premier à donner votre avis sur cette source.
Snippet vu 26 129 fois - Téléchargée 34 fois
Visual FoxPro : un aperçu général Tout ce qui suit s'applique à VFP 7+ L'aide VFP citée ci-après est accessible en ligne dans la 'MSDN library' http://msdn.microsoft.com/library/en-us/dv_foxhelp/html/vfp7startpage.asp (merci de me signaler les liens obsolètes dans vos commentaires) ============================================= SYNTAXE DU LANGAGE ============================================= Dans l'aide VFP7, le chapitre "Visual FoxPro and Other Programming Languages" compare VFP à VB, C/C++, Pascal sur les thèmes suivants : http://msdn.microsoft.com/library/en-us/dv_foxhelp/html/refVisual_FoxPro_and_Other_Programming_Languages.asp Whether the language is case-sensitive How variables are declared How to insert comments in programs How to store values to variables The structure of IF statements The structure of CASE statements The structure of FOR loops The structure of WHILE loops How parameters are passed by value How parameters are passed by reference Petit complément utile sur la déclaration des variables : VFP résoud les noms des variables à l'exécution et maintient une liste des variables "visibles" : Déclarée par LOCAL / LPARAMETER, elle n'est visible que dans le module de déclaration Non déclarée ou créée par PARAMETER, la variable est visible dans les modules appelés Déclarée par PUBLIC, elle est visible dans les modules appelés et appelant ============================================= ENVIRONNEMENT DE DÉVELOPPEMENT (IDE) ============================================= L'IDE VFP est très comparable à celui de VB : coloration de syntaxe, intellisense y compris sur objets COM fenêtres 'ancrables' gestionnaire de projet arborescent débogueur avec trace, call, watch, locals, points d'arrêts par clic liste de tâches intégration avec Visual Source Safe (icônes dans le gestionnaire de projet indiquant l'état de chaque document) mémorisation de la taille, position, présentation des fenêtres Quelques particularités de VFP : l'intellisense est adaptable ; on peut par exemple y introduire ses propres fonctions et procédures (intellisense manager) la fenêtre Document View présente un sommaire complet des modules existant dans un fichier programme, une classe ou un écran (plus rapide que les combo box de la fenêtre code) la FAMEUSE Fenêtre de commande VFP : toute commande ou groupe de commandes peut y être exécutée pour test avant intégration dans un programme en sélectionnant et en pressant la touche Enter intellisense complet la plupart des commandes interactives y sont en écho ============================================= DONNÉES - 1. TABLE ============================================= VFP comporte un système de gestion de données propre, natif, et permet d'accéder en client / serveur aux bases de données compatibles ODBC (SQL Server, Oracle, etc.). VFP permet de prototyper/démarrer une application sur une base de données VFP et, si nécessaire, la transférer sur une base SQL sans changer le code de l'interface utilisateur. Signalons que la licence de développement VFP autorise une redistribution illimitée du code et du moteur de base de données VFP. Création - Modification d'une table VFP ------------------------------------------- Une table VFP (MaTable.dbf) peut comporter jusqu'à 255 champs et 1 milliard d'enregistrements. Chaque champ peut revêtir un des 12 types correspondants aux standards SQL. On peut associer à une table un fichier d'indexes (MaTable.cdx) comportant des clés (tags) d'indexes en nombre illimité. Une clé d'index peut être créée sur n'importe quelle expression pourvu que tous ses membres (champs, variables, fonctions) soient accessibles à l'ouverture de la table (sinon, avertissement). Une table peut être créée / modifiée : interactivement : File - New|Open - Table par programmation : CREATE TABLE ..., ALTER TABLE ..., INDEX ON ... Ouverture d'une table VFP ----------------------------------- Les tables sont ouvertes (USE ...) dans une zone de travail (1,2, ...A, ...) d'une session de données, avec un ALIAS (par défaut la racine du nom du fichier). La même table peut être ouverte plusieurs fois sous des alias différents (USE AGAIN ... ALIAS ...) dans une même session de données. On peut ouvrir autant de sessions de données que nécessaire, chaque écran peut avoir sa session de données propre. Une session de données peut être enregistrée dans un fichier et rétablie à partir de celui-ci (CREATE VIEW ...) La fenêtre "session de données" (bouton sur barre d'outils) présente les aliases ouverts dans chaque sesssion, et les relations entre eux On peut 'régler' un alias en lui assignant (bouton 'properties' de la fenêtre de session de données) : une clé d'index parmi celles contenues dans le CDX associé, qui ordonne les enregistrements un filtre de champs un filtre d'enregistrements une ou plusieurs relations Les différents alias d'une même table ouverts dans une même session sont indépendants : position, index et filtre(s) actifs, relation(s) On peut voir le contenu de l'Alias dans une grille en cliquant sur le bouton Browse de la fenêtre de session de données. Le format de la fenêtre Browse est entièrement paramétrable. Accès aux données des tables ----------------------------------- VFP offre deux méthodes d'accès aux tables : commandes VFP et SQL Accès aux données par commandes natives VFP -------------------------------------------- (Tout ce qui suit travaille sur l'ALIAS tel que défini ci-dessus) PRINCIPES GÉNÉRAUX La plupart des commandes peuvent travailler : sur l'alias couramment sélectionné sur un alias non sélectionné au moyen de la clause [IN Alias] Les commandes acceptent 2 clauses de sélection des enregistrement : Clause d'étendue : tous, suivants, etc. Clause de Filtre : FOR ou WHILE APERÇU DES COMMANDES Filtrer un alias : SET FILTER TO ... [IN Alias] Synchroniser deux aliases : SET RELATION TO ... INTO AliasFils ... [IN AliasPère] - l'alias père peut être en relation avec plusieurs fils. Sélectionner un alias : SELECT Alias Atteindre un enregistrement : Accès séquentiel : SCAN ... ENDSCAN (parcourt l'alias sélectionné) Accès direct : par le n° d'enr. GO ... [IN Alias] par recherche sur l'index actif : SEEK ... [IN Alias], SEEK(Valeur, Alias) par recherche sur le contenu d'un ou plusieurs champs : LOCATE ... Mettre à jour le contenu d'un ou plusieurs enr. : REPLACE ... [IN Alias] Ajouter un/des enr. : APPEND ... [IN Alias] Extraire un/des enregistrements : COPY TO... Importer un/des enregistrements : APPEND FROM, IMPORT Supprimer un/des enr. : DELETE...[IN Alias] /!\ Cette commande marque l'enr. pour suppression au moyen d'un sémaphore. Elle ne le supprime pas physiquement. Un réglage de VFP permet de "voir" ou "ignorer" les enregistrements "deletés" (SET DELETED ON/OFF) Rappeler un/des enr. supprimés : RECALL ...[IN Alias] Supprimer physiquement les enregistrements supprimés : PACK /!\ nécessite un accès exclusif à la table (un seul alias ouvert en exclusif) Accès aux données par commandes SQL ----------------------------------- Commandes SQL 92 classiques ... (cf. SQL Commands Overview dans l'aide VFP): Extraction : SELECT ... Mise à jour du contenu de l'enr. : UPDATE ... Suppression de l'enr. : DELETE FROM (commentaire idem VFP) Ajout d'enr. : INSERT ... Importation : SELECT depuis les deux tables vers une troisième Optimisation Rushmore --------------------- Pour trouver plus rapidement le(s) enregistrement(s) répondant à une clause FOR (VFP) ou WHERE (SQL), VFP exploite les clés (tags) d'index. Si l'expression suivant la clause FOR ou WHERE correspond à une ou plusieurs clés d'indexes, VFP exploite la technologie Rushmore. L'optimisation Rushmore s'applique aussi bien aux commandes natives VFP qu'aux commandes SQL. VFP optimise les requêtes SQL automatiquement (création d'indexes temporaires si approprié) ============================================= DONNÉES - 2. BASE DE DONNÉES ============================================= /!\ en construction ============================================= DONNÉES - 3. VUES ============================================= /!\ en construction ============================================= CLASSES ============================================= VFP permet de créer / modifier des classes à partir des classes de base par : DESIGNER Class library ... PROGRAMME pour toutes les classes, visuelles ou non : DEFINE CLASS ... AS ... Le Designer est préférable pour les classes entrant dans l'aspect des écrans car il ne peut mettre en page les classes programmées. Il supporte pleinement l'intellisense. La Définition par programme est plus souple, notamment pour renommer les Propriétés et Méthodes. Chaque mode de création de classes (par programme / designer) a ses avantages et ses inconvénients récapitulés ici (en anglais) : http://fox.wikis.com/wc.dll?Wiki~PRGvsVCX Aperçu des classes de base (il peut manquer les plus récentes ...) Classes pouvant être sous-classées visuellement : Classes "visibles" à l'écran, à créer de préférence par Designer (contrôles) CheckBox ComboBox CommandGroup - conteneur (groupe de boutons) CommandButton Container - conteneur (peut contenir tout autre classe) EditBox FormSet - conteneur Form - conteneur Grid - conteneur -Grid Column - conteneur (visuelle à partir de VFP8) --Grid Column Header (visuelle à partir de VFP8) Hyperlink Image Label Line ListBox OLEControl OLEBoundControl OptionGroup - conteneur -OptionButton (visuellement à partir de VFP8) PageFrame - conteneur -Page - conteneur (visuelle à partir de VFP8) Spinner TextBox ToolBar Classes "non visibles" à l'écran Collection - conteneur Control - conteneur Custom - conteneur CursorAdapter DataEnvironment - conteneur -Cursor -Relation Empty ProjectHook ReportListener Timer XMLAdapter XMLField Class XMLTable Class ActiveDoc (obsolète) Classes devant être sous-classées par programmation : Session Separator Les classes signalées par [- conteneur] peuvent contenir d'autres classes : La classe parent contient des propriétés controls et controlCount permettant d'accéder aux contrôles contenus Les classes enfant référencent leur parent au moyen de la propriété Parent Tout objet doit avoir un parent, l'ancêtre ultime étant _VFP lui-même ============================================= ECRAN (form) ============================================= Un écran VFP est en fait une pseudo sous-classe de form : Sous-classe car on peut lui ajouter des propriétés et méthodes comme dans une classe ordinaire Pseudo car on ne peut le sous-classer Un fichier d'écran porte l'extension SCX alors qu'une bibliothèque de classes visuelles porte l'extension VCX. Il va de soi qu'on ne peut définir un écran par programmation, seulement par le Designer Visuel. (Mais on peut définir une classe d'écran par programmation) Un écran se dessine au moyen d'un form designer semblable au class designer. Chaque objet peut être positionné par souris ou clavier, aligné ou centré sur une autre ou sur l'écran, dimensionné par souris ou clavier. Les objets peuvent être alignés sur une grille magnétique à pas réglable. Tout écran comporte nativement un objet environnement de données où il suffit de glisser-déplacer les tables ou les vues depuis la base de données. Les relations figurant dans la base de données sont crées automatiquement. L'environnement de données permet de régler le mode d'ouverture et de fermeture des curseurs, les relations et ordres de tri comme dans toute session de données (voir plus haut). Pour ajouter à l'écran un contrôle lié (bound control) à un champ d'un curseur (table ou vue), il suffit de glisser-déplacer celui-ci depuis l'environnement de données jusqu'à l'endroit approprié de l'écran. Bien entendu, tout ce que l'environnement de données fait automatiquement peut être modifié ou remplacé par une programmation de l'événement load() de l'écran. Le modèle d'événement est assez riche pour répondre à la plupart des besoins : Vie de l'écran : Load(), Init(), Destroy(), Unload() - /!\ Load() et Init() sont inversés par rapport à VB Actions utilisateur : activate() / deactivate(), keypress(), MouseClick/Up/Down/MiddleClick/RightClick/Wheel/Move, etc. Drag and Drop : VFP (de-vers objets VFP) et OLE (de-vers objets ActiveX) ============================================= ETAT (report) ============================================= /!\ en construction ============================================= ENVIRONNEMENT D'EXÉCUTION ============================================= /!\ en construction ============================================= PROJET ET DÉPLOIEMENT ============================================= /!\ en construction
21 janv. 2009 à 14:23
>j'ais un code qui change la manier de prog.exe vous pouvez m'aider de changer
>merci
Désolé mais impossible de comprendre la question !
un code qui mange ? la manière de prog.exe ?
Aider aquoi ? pourrais tu formuler une question complète, le contexte, la version de VFP utilisée....
Cordialement
Francis
21 janv. 2009 à 13:27
merci
14 janv. 2009 à 18:27
soit par le web :
http://www.microsoft.com/france/communautes/webnews/France/default.mspx?dg=microsoft.public.fr.fox&lang=fr&cr=FR&r=059d7d3d-8b58-4b09-96db-dede7a56000f
soit par un lecteur de news :
Thunderbird ou outlookexpress avec l'adresse : news.microsoft.com
La reponse te sera fourni la bas.
Cordialement Olivier
14 janv. 2009 à 17:54
merci a tous
14 janv. 2009 à 17:53
les fichier necessire est dan le même dossier (sur le 2èm PC)
il exist un fichier .DBF nommé paramaitre.dbf
je crois c'est le source de problème
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.