ANNEXE A

Améliorations de Visual FoxPro 9.0

 

*       Amélioration de l'interface utilisateur permettant d'ancrer les formulaires et contrôles et meilleur support des images.

*       Personnalisation de l’affichage de la fenêtre des propriétés suivant vos propres choix, éditeur personnel, fontes des caractères et réglage des couleurs.

*       Manipulation et interaction des données.

*       Les nouveaux types de données: Varchar, Varbinary et Blob améliorent l'interaction avec les serveurs de type SQL.

*       Améliorations et extensions du langage SQL - plus de possibilités avec les fonctions SELECT, INSERT, UPDATE et DELETE.

*       CAST( ) - nouvelle fonction permettant la conversion entre divers types de données.

*       Nouvel Index Binaire - support du nouveau type d'index pour l'amélioration des performances lors de l'utilisation du TAG DELETED.

*       Adaptateur XML - amélioration du support des boucles hiérarchiques imbriquées XML et XSD

*       Nouveautés de l'Interface Utilisateur Final

*       Ancrages des formulaires: permet un fonctionnement professionnel des applications Windows

*       L' Ancrage vous permet de contrôler les mouvements des objets d'un formulaire lors du redimensionnent de celui-ci.

*       Boutons : meilleur contrôle de la position de l'image sur un bouton avec alignement du texte.

*       Cases à cocher : nouveau support de justification pour les labels des cases à cocher.

*       Etiquettes : support de la rotation du texte pour les messages des contrôles labels.

*       Formes géométriques et Lignes : possibilité de création de polygones et de courbes de Bézier.

*       Listes et Combos : utilisation des collections (séries) comme source de ligne.

*       Images : jointure images vers les images non orientées fichier.

*       Extension de la productivité du développeur

*       Page de propriétés : supporte des nouvelles options de fontes et d'affichage des couleurs, caractères étendus et expressions longues.

*       Extension des données : facilité de spécifier des propriétés personnelles dans l'éditeur et gestion des propriétés favorites.

*       Compilation en tâche de fond : visualisation des syntaxes incorrectes lors de la frappe des lignes de codes.

*       Panneau de contrôle : améliorations et nouveaux onglets comme l'explorateur de données.

*       Extension des capacités système : plus de limite pour les tableaux, la taille des procédures et les niveaux d'imbrications.

*       Manipulation des chaînes fortement améliorées.

*       ICASE( ) : nouvelle fonction similaire au DO CASE sur une ligne.

*       Facilité de construction de tout types de base de données.

*       Construction et déploiement d'applications locales ou distantes pour les tablettes PC Windows.

*       Création et accès aux composants COM et services compatible Web XML par l'utilisation de la technologie .NET.

*       Visual FoxPro 9.0 vous permet de construire des solutions complètes, depuis les formulaires d'acquisitions jusqu’aux sorties de rapports complexes.

*       Nouveautés du système de Rapport

*       La nouvelle architecture de sortie a été étendue et permet le contrôle précis des rapports et de leurs formats.

*       Support pour les bandes de détails multiples pour des données utilisant des relations un à plusieurs.

*       Les rapports supportent le XML, le HTML, les formats d'images et la personnalisation de la fenêtre d’aperçu multipages.

*       La fenêtre d’aperçu offre une amélioration de la qualité d'affichage et le support pour pages multiples.

*       Une nouvelle classe "ReportListener" fournit un accès lors de la génération du rapport aux évènement lors de l'exécution vous permettant de créer tous types de sorties.

*       Enchaînement des rapports pour des impressions plus complexes.

*       Puissants outils de développements personnalisables.

*       Compatibilités avec les moteurs de rapports des versions précédentes permettant la récupération des anciennes applications.

*        

*       Création de solutions compatibles .NET avec hiérarchisation XML, services web XML.

*       Echange des données avec les serveurs SQL via un langage SQL aux capacités améliorées et un support des nouveaux types de données.

International : support amélioré pour l'utilisation des jeux de caractères internationaux dans les applications.

 

Les pages suivantes décrivent les améliorations de la version 8 depuis la 6 et la 7 pour la première partie, puis de la version 9 depuis la 8.

 

L’ Annexe A1 décrit les améliorations du moteur d’états (Reports).
De la version 6 à la version 8

 

BindEvents(), RaiseEvents() et Aevents()

 

L’utilisation des fonctions  BindEvents(), RaiseEvents() et Aevents() permet de lier les méthodes aux évènements VFP, la commande suivante lancera la méthode utilisateur « ScreenRightClick » d’un formulaire si un click droit de la souris est activé dans la fenêtre active.

BINDEVENT(_SCREEN,"rightclick",Thisform,"screenrightclick")

 

RAISEEVENT( oEventSource, cEvent [, eParm1...] )

Déclenche un évènement depuis une méthode utilisateur

VFP déclenche automatiquement les évènements liés par BINDEVENT()

 

AEVENT( ArrayName [,0|1| oEventObject ])

Permet de récupérer le numéro d’un évènement lié.

 

Contrôle de MSN Messenger

 

Il est possible d’automatiser l’envoi de messages, courriels et fichiers, par l’utilisation des API de MSN

  ThisForm.oMessenger = CREATEOBJECT("Messenger.UIAutomation.1")

 

et de   Windows Scripting Host.

  ThisForm.oWsh = CREATEOBJECT("wscript.Shell")

 

Création de fenêtres de formes irrégulières

Zone de Texte:

Il est possible de créer sous  Windows 2000 et  Windows XP des formulaires de formes irrégulières.

 

 

 

 

 

 

 

 

 

 

 

 

 

Affichage des grilles : Grid Highlighting, Auto Fit et Image Headers

 

De nouvelles propriétés améliorent le comportement d’affichage des objets Grid, en particulier les options de mise en surbrillance, l’ ajustement automatique de la largeur des colonnes, et l’utilisation d’image dans les Headers.

 

 


 

Charger et générer de l’XML avec la classe XMLAdapter

 

La classe  XMLAdapter a la capacité de générer de l’ XML depuis des curseurs divers, et aussi de recréer des curseurs depuis l’ XML, tels des jeux de données ADO.NET datasets.

 

Créer un curseur depuis un jeu de données XML

 

Les classes CursorAdapter et XMLAdapter classes permettent de créer des curseurs depuis un  XML dataset et de lier ces données aux contrôles d’un formulaire.

 

            Thisform.AddProperty('oXMLAdapter',CREATEOBJECT('XMLAdapter'))

            Dans l’ Init du formulaire.

 

Pour organiser les propriétés du CursorAdapter, un click droit dans le Dataenvironment accède à l’assistant (Builder), il permet d’obtenir le code ci-dessous :

 

** Propriétés générées par l’assistant CursorAdapter**

WITH Thisform.DataEnvironment.Cursor1

      .Alias = "customers"

      .Allowdelete = .T.

      .Allowinsert = .T.

      .Allowupdate = .T.

      .Baseclass = "Cursoradapter"

      .Batchupdatecount = 1

      .Buffermodeoverride = 5

      .Class = "Cursoradapter"

      .Comparememo = .T.

      .Cursorschema = "CUSTOMERID C(10), COMPANYNAME C(80), ADDRESS C(120), CONTACTNAME C(60), CONTACTTITLE C(60), COUNTRY C(30), FAX C(48), PHONE C(48), POSTALCODE C(20), REGION C(30)"

      .Cursorstatus = 1

      .Datasourcetype = "XML"

      .Fetchmemo = .T.

      .Fetchsize = 100

      .Maxrecords = -1

      .Name = "Cursor1"

      .Parent= "(Object)"

      .Selectcmd = "Thisform.oXMLAdapter.Tables.Item(1)"

      .Sendupdates = .T.

      .Updatetype = 1

      .Usememosize = 255

      .Usetransactions = .T.

      .Wheretype = 3

ENDWITH

 

Gérer l’accès  aux données par les CursorAdapters

 

Grace au CursorAdapters Il est désormais possible d’accéder à des curseurs provenant de différentes types de sources de données : Native, ODBC, et ADO, vers par exemple une base de données SQL-SERVER

 


Member classes

 

VFP 8.0 permet de spécifier les  Member Classes pour les objets conteneurs Pageframes, Optiongroups, Commandgroups, Grids, et Columns. Il est aussi possible de sous classer page, optionbutton, header, et column. Ces manipulations peuvent être faites par code ou par le générateur de classes et s’utiliser au travers d’un .PRG ou d’un .VCX.

 

SCATTER NAME... ADDITIVE

 

La commande GATHER NAME a été améliorée et SCATTER NAME ... ADDITIVE a été ajoutée. La clause ADDITIVE permet la mise à jour d’un objet existant avec les valeurs de l’enregistrement courant.

*-- La commande suivante dans l’évènement Init récupère les valeurs des propriétés d’un formulaire depuis l’enregistrement d’un fichier.

SCATTER NAME thisform ADDITIVE

 

*-- La commande suivante dans le Destroy stocke les valeurs des propriétés en sortie d’un formulaire dans l’enregistrement cible d’une table préalablement ouverte. 

GATHER NAME THISFORM

 

Gestion d’erreurs structurée

 

Les instructions TRY...CATCH...FINALLY peuvent être utilisées pour la gestion des exceptions. Cela permet l’exécution d’un code spécifique si des exceptions particulières surviennent dans une une application.

 

System Tray Icon

 

La classe Systray offre la possibilité d’utiliser des icones dans la zone de notification de la barre de tâches de Windows, communément appelée System Tray, elle supporte les évènements Souris, Les Bulles, Les Raccourcis Menu de VFP etc tels les exemples ci-dessous :

COMARRAY()

 

La fonction COMARRAY() permet le passage par référence d’un tableau de typage fort à un serveur COM qui exécute les calculs et modifie le contenu du tableau.

Le Client utilise la nouvelle syntaxe DIMENSION... AS pour déclarer le tableau de typage fort.

Un serveur COM écrit en VFP montre un exemple d’une nouvelle interface de déclaration de syntaxe pour indiquer « ByRef typed arrays » dans la librairie COM générée.

 

VFP/VB.NET XML Web Service

 

Un exemple fourni dans Samples/Solutions montre différentes architectures utilisant XML Web Services pour l’échange de jeu de données entre une client VFP client et un niveau intermédiaire écrit VFP et VB.NET.

 

Windows XP themes support

 

Visual FoxPro supporte les thèmes XP à trois différents niveaux :

1) Niveau Application via SYS(2700) et la propriété _SCREEN.Themes

2) Niveau Formulaire via la propriété Themes

3) Niveau Contrôle

Certaines propriétés (BackColor) ne prendront effet que si les thèmes sont désactivés.

                       


De la version 8 à la version 9

 

 

Anchors Away « Jetez l’ancre »

 

La nouvelle  propriété Anchor permet de choisir à quel coté un contrôle visuel est attaché quand le formulaire est redimensionné.

 

 

BINTOC binary conversion

 

BINTOC() et CTOBIN() peuvent être utilisés lors de la conversion entre données numériques et chaînes binaires. Ceci est souvent utile avec des Structures API Win32.

 

 

 

Liaison aux évènements des Messages Windows

 

La fonction BINDEVENT() peut être utilisée pour assurer une liaison avec les évènements des Messages Windows, tels passage d’une application à une autre, insertion de média, tentatives de fermeture ou mise en stan-by du PC etc, par exemple :

 

 

 

Coverage Profiler

 

Un ajout très utile à l’ utilitaire Coverage Profiler permet d’identifier les parties de code qui pourraient être susceptibles d’amélioration pour un gain de performance. Il permet de visualiser, trier, et rechercher les lignes de code sur le temps d’exécution : DO (_Coverage)

 

 


Positionnement des Images et captions des contrôles  

 
 


Les propriétés Picture PictureMargin, PicturePosition, PictureSpacing, SpecialEffect, Style, Themes, WordWrap, déterminent le positionnement et l’orientation des images et captions pour les boutons de commande et les cases à cocher (CheckBox)

 

 

 

 

 

 

 
Dockable Image Viewer

 

L’exemple ci-contre montre un Formulaire dockable contenant un PageFrame invisible. La page active est affichée par l’évènement AfterDock quand le formulaire est « docked » et « undocked ».

 

 

Une grille contenue dans l’une des pages permet la gestion éventuelle des images stockées dans un champ « Blob »

 

 

 

 

 

 

 

 

 

 

 

 
Fox Media Player

 

Le contrôle ActiveX Windows Media Player peut être installé  dans votre interface Visual FoxPro. Les propriétés d’Ancrage peuvent aussi être utilisées pour redimensionner l’écran, et son contenu.

 


Polygones et formes irrégulières (Shape & Line)

 

La nouvelle propriété Polypoints autorise la création de polygones et de lignes de formes irrégulières  avec les contrôles Shape et Line.

Polypoints contient le nom d’un tableau (Array) permettant d’adresser les points d’un polygone (En pourcentages)

 

Une syntaxe comme celle-ci

 

Propriété de Shp4 :               PolyPoints=This.aPoly

 

Code Init de Shp4           THIS.AddProperty("aPoly[1,1]")

DIMENSION THIS.aPoly[3,2]

THIS.aPoly[1,1]= 0

THIS.aPoly[1,2]= 100

THIS.aPoly[2,2]= 0

THIS.aPoly[3,1]= 100

THIS.aPoly[3,2]= 100

 

Permet de définir l’objet shape SHP4

 

SHP 4

 

 

 


Foxcode menu scripts

 

La création de scripts spécifiques dans la table Foxcode de l’ IntelliSense procure un possibilité de manipulation personnalisée des menus contextuels et natifs, par exemple :

 

LPARAMETERS toParameter

 

LOCAL lnSelect, lcCode, llReturn, lScriptHandled

 

TRY

      * First try FoxCode lookup for Type="M" records

      lnSelect = SELECT()

      SELECT 0

      USE (_FOXCODE) AGAIN SHARE ORDER 1

      IF SEEK('M' + PADR(UPPER(toParameter.MenuItem), LEN(ABBREV)))

               lcCode = DATA

      ENDIF                 

      USE

      SELECT (lnSelect)

      IF NOT EMPTY(lcCode)

               llReturn = EXECSCRIPT(lcCode, toParameter)

               lScriptHandled=.T.

      ENDIF

     

      * Handle by passing to external routine as specified in Tip field

      IF !lScriptHandled

               lcProgram = ALLTRIM(toParameter.Tip)

               IF FILE(lcProgram)

                        DO (lcProgram) WITH toParameter,llReturn

               ENDIF

      ENDIF

     

      * Custom script successful so let's disable native behavior

      IF llReturn

               toParameter.ValueType = 'V'

      ENDIF

CATCH

ENDTRY

 

RETURN llReturn

 

 

 

 

Utilitaire de recherche des Memo corrompus

 

Un utilitaire permet l’analyse des dossiers (et sous répertoires) pour repérer les champs Memo corrompus des fichiers Visual FoxPro.

 

 

 

Ces améliorations sont illustrées dans les exemples proposés dans le répertoire : \Samples\Solution de Visual FoxPro .