Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

VISUAL FOXPRO : PRÉSENTATION GÉNÉRALE


Information sur la source

Catégorie :Divers Classé sous : présentation, débutant Niveau : Débutant Date de création : 07/10/2004 Date de mise à jour : 18/10/2004 19:05:58 Vu : 11 096

Note :
10 / 10 - par 4 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

Description

Pour les développeurs venant d'autres langages et souhaitant découvrir Visual FoxPro, cet article tente d'en tracer les grandes lignes :
SYNTAXE DU LANGAGE
ENVIRONNEMENT DE DÉVELOPPEMENT ET D'EXECUTION
DONNÉES  (Tables, Base de données, Vues locales et distantes)
CLASSES
ECRANS
ETATS
PROJET ET DÉPLOIEMENT
Il ne s'agit pas de code mais d'un texte en Français courant (j'espère)
 

Source

  • 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
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


Historique

07 octobre 2004 19:21:50 :
correction de coquilles
18 octobre 2004 19:06:00 :
Parties données et classes enrichies / précisées Partie Ecrans complétée

Commentaires et avis

signaler à un administrateur
Commentaire de FredArmoni le 08/10/2004 10:44:27 administrateur CS

Excellente initiative Thierry.
Merci

signaler à un administrateur
Commentaire de FredArmoni le 08/10/2004 12:39:05 administrateur CS

quelques points
-----
IDE
command windows
Outils : code reference, toolbox, ...
----
classes : les nouvelles venues (il faut vraiment se mettre à VFP8 ++ ThN ;)
CursorAdapter, XMLAdapter, Session, Collection, ReportListener, XML..., WebService, ...

signaler à un administrateur
Commentaire de AbaqueInside le 08/10/2004 12:46:32

Super, merci
Je verrai la description de tout ça sur MSDN

signaler à un administrateur
Commentaire de olivierhamou le 10/10/2004 12:13:41

bravo Thierry !!!

très bonne idée.

Olivier Hamou

signaler à un administrateur
Commentaire de brismout le 12/10/2004 11:22:32

Enfin d'autres utilisateurs de FoxPro qui ne parlent pas chinois ou espagnol!

Les sources d'info VFP étant plutot rares, en voici une sur VFP 6:

http://docs.rinet.ru/GlyadiLisu/index.htm
elle est un peu simpliste, mais on finit par trouver ce que l'on cherche.

signaler à un administrateur
Commentaire de AbaqueInside le 13/10/2004 12:15:06

http://docs.rinet.ru/GlyadiLisu/index.htm est une analyse très détaillée.
Ici nous cherchons à donner un aperçu général de VFP aux développeurs maîtrisant un autre langage (nous avons pris VB pour référence car c'est le langage MS le plus proche de VFP)
Vous pouvez rejoindre les "Foxeux" francophones sur
microsoft.public.fr.fox
news.atoutfox.org
www.atoutfox.org

signaler à un administrateur
Commentaire de bibi_81 le 16/10/2004 09:39:52

super !!! mais j'ai rien compris... lol avec quel logiciel on fait de ce truc ? comment c'est bien la question COMMENT faire !?!?!?

signaler à un administrateur
Commentaire de FredArmoni le 16/10/2004 12:01:25 administrateur CS

le logiciel en question est un langage de programmation appelé Microsoft Visual FoxPro.
Il est disponible
en version 6 avec visual studio 6
en version 7 et 8 sur MSDN
en version beta 9 gratuitement téléchargeable ici
[URL]http://msdn.microsoft.com/vfoxpro[/URL]
les forum divers/débutant/impression t'apporteront d'autres éléments de réponses

signaler à un administrateur
Commentaire de bibi_81 le 16/10/2004 12:35:01

est-ce gratuit ?

signaler à un administrateur
Commentaire de olivierhamou le 16/10/2004 17:08:58

Eh bien non il n'est pas gratuit , mais il est tres abordable.
(regarde les tarifs sur http://msdn.microsoft.com/vfoxpro/letters/)

En plus d'etre abordable , tout est compris dedans
une generateur de report , une puissante base de données diffusable gratuitement, le runtime diffusable aussi gratuitement (pour la version entreprise bien sur).
Foxpro te permet aujourd'hui de te connecter à toutes les bases de données du marché par oledb , odbc , xml et etc ..

A tres bientôt.
Olivier

signaler à un administrateur
Commentaire de FredArmoni le 16/10/2004 17:11:31 administrateur CS

si tu as Visual Studio 6 : VFP6 est dans la boite donc gratuit
si tu es abonné MSDN, VFP7 et 8 sont dans la boite donc gratuits
VFP9beta est gratuitement téléchargeable (avec une durée de vie limitée à mars 2005 si ma mémoire est bonne)

Maintenant, les programmes développés avec VFP (executables) sont distribuable avec le runtime VFP gratuitement.

Bref, tout bénéf.

Fred

signaler à un administrateur
Commentaire de braWeb le 13/07/2006 13:46:55

Bon jour
   Je travailler avec Delphi de puis presque 2 ans dans le domaine des appliation gestion et j’ai travailler avant avec Clipper et DBase  je veux s’avoir quelle est le langage le plus compacte et stable  dans le domaine des application de gestion Delphi ou FoxPro.
   j'ai trouver un manque de documentation par rapport a Delphi que il y'on a plein dans le Net même aussi la communauté de FOXPRO on trouve pas beaucoup des développeurs? Peut être que il est plus pro au autres dans le domaine de base des données.

   Aidez moi SVP pour faire le choix entre Delphi ou FoxPro et ou je peux trouvé des documentations et des exemples
cordialement. MERCI

signaler à un administrateur
Commentaire de AbdoSamra le 20/09/2008 09:41:07

je suis un ancien en visuel basic et je viens d'explorer VFP je trouve des defficultés .Merci

signaler à un administrateur
Commentaire de AbaqueInside le 20/09/2008 10:32:00

rendez-vous sur microsoft.public.fr.fox.
thn

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Configuration Environnement VFP9 [ par dhardy ] Je suid débutant en FoxPro et j <span style="FONT-S


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.