Developpez.com - 4D
X

Choisissez d'abord la catégorieensuite la rubrique :


Etats rapides : les différents types de sortie

Date de publication : Octobre 2003

Par Hugo FOURNIER (Support Technique 4D Inc.)
 

L'objectif de cette note est de décrire une interface simple qui liste des fichiers d'Etats Rapides dans un dossier et qui explore les différents types de sortie disponibles avec ces Etats Rapides : Texte, 4D View (Tableur), 4D Chart (Graphe), HTML et XML.

I. Résumé
II. Interface
III. Composition de la liste
IV. Visualiser les informations sur les Etats
V. Choisir un nouveau dossier
VI. Types de Sorties
Fichier Texte
4D View
Graphe 2D
Graphe 3D
Fichier HTML
Tableau croisé
Export XML
VII. Conclusion
VIII. Base exemple


I. Résumé

L'objectif de cette note est de décrire une interface simple qui liste des fichiers d'Etats Rapides dans un dossier et qui explore les différents types de sortie disponibles avec ces Etats Rapides : Texte, 4D View (Tableur), 4D Chart (Graphe), HTML et XML.


II. Interface

L'interface est une base de données simple offrant les fonctionnalités suivantes :

- elle liste les fichiers d'Etats Rapides dans un répertoire donné ;

- elle permet de sélectionner un nouveau répertoire ;

- elle affiche des informations basiques sur l'Etat Rapide sélectionné dans la liste ;

- elle permet d'ouvrir un Etat Rapide dans un process séparé, par un double-clic dans cette liste.

Pictures 0417x0350

Par défaut, le dialogue affiche la liste des Etats Rapides localisés dans le dossier Etats. Vous pouvez choisir un dossier différent en cliquant sur le bouton Mise à jour du dossier.

info Note : Lorsque vous ouvrez la base exemple pour la première fois, il n'existe pas de fichier de données. En Menus Créés, choisissez "Créer 1000 enregistrements". Les données ainsi créées vous serviront pour les Etats.

III. Composition de la liste

La liste est composée à l'affichage du formulaire ou quand une mise à jour du dossier est choisie. La méthode M_Update_List met à jour le tableau aScroll1. Un filtre est mis en place pour éliminer tout ce qui n'est pas Etats Rapides. Sous Windows, la règle est simple : si l'extension n'est pas ".4qr", ce n'est pas un Etat Rapide. Sous Mac, le problème est plus complexe : un Etat Rapide peut avoir une extension ".4qr" ou avoir un type de fichier "4DQR" ou "4DSE", en fonction de sa plateforme de création. Les deux plateformes sont traitées séparément, dans une variable interprocess (<>Platform), qui est initialisée à l'ouverture de la base.

   TABLEAU ALPHA(80;aScroll1;0)

   LISTE DES DOCUMENTS(<>Folder;aScroll1)

   Si (<>Platform=3)
      ` windows

      Boucle ($i;Taille tableau(aScroll1);1;-1)
         Si (Non(Sous chaine(aScroll1{$i};Longueur(aScroll1{$i})-3;Longueur(aScroll1{$i}))=".4qr"))
            SUPPRIMER LIGNES(aScroll1;$i)
            ` on supprime tous les fichiers qui n'ont pas comme extension .4qr
            ` basically removing any file whose extension is not .4qr
         Fin de si
      Fin de boucle

   Sinon

      Boucle ($i;Taille tableau(aScroll1);1;-1)
         Si (Non(Sous chaine(aScroll1{$i};Longueur(aScroll1{$i})-3;Longueur(aScroll1{$i}))=".4qr"))
            ` si les fichiers n'ont pas la bonne extension
            ` if it does not have the right extension
            Si (<>vAbsPath)
               Path:=<>Folder+<>Separator+aScroll1{$i}
            Sinon
               Path:=<>MacOS+<>Folder+<>Separator+aScroll1{$i}
            Fin de si
            Si (Non((Type document(Path)="4DQR") | (Type document(Path)="4DSE")))
               `si l'extension n'est pas correcte, on vérifie le type qui doit être soit 4DSE, soit 4DQR
               `it does not have the right extension so it MUST have the types 4DSE or 4DQR
               SUPPRIMER LIGNES(aScroll1;$i)
            Fin de si
         Fin de si
      Fin de boucle

   Fin de si


IV. Visualiser les informations sur les Etats

Vous noterez que lorsque l'Etat est sélectionné, son type (Liste ou Tableau Croisé) et son format de sortie sont affichés dans une zone séparée. Ces informations additionnelles sont là juste pour indiquer les données disponibles au premier coup d'oeil :

Pictures 0248x0086

      ` Method M_Update_QR_Data
      ` retrieve the form's basic information
      ` when it is clicked in the list
      `affichage des informations basiques sur l'Etat rapide lorsque l'on clique dessus.

   C_TEXTE(vQrStatus)
   Si ($1="")
   Sinon
      Si (<>vAbsPath)
         Path:=<>Folder+<>Separator+$1
      Sinon
         Path:=<>MacOS+<>Folder+<>Separator+$1
      Fin de si
      $QR_Area:=QR Creer zone hors ecran
      C_BLOB($vTemp)
      DOCUMENT VERS BLOB(Path;$vTemp)
      QR BLOB VERS ETAT($QR_Area;$vTemp)
      $QrType:=QR Lire type etat($QR_Area)
      Au cas ou
         : ($QrType=1)
            vQrStatus:="Type Etat : Liste"
         : ($QrType=2)
            vQrStatus:="Type Etat : Tableau croisé"
      Fin de cas
      QR LIRE DESTINATION($QR_Area;$output)
      Au cas ou
         : ($output=1)
            vQrStatus:=(vQrStatus+Caractere(13)+"Type sortie : Imprimante")
         : ($output=2)
            vQrStatus:=(vQrStatus+Caractere(13)+"Type sortie : Fichier Texte")
         : ($output=3)
            vQrStatus:=(vQrStatus+Caractere(13)+"Type sortie : 4D View")
         : ($output=4)
            vQrStatus:=(vQrStatus+Caractere(13)+"Type sortie : 4D Chart")
         : ($output=5)
            vQrStatus:=(vQrStatus+Caractere(13)+"Type sortie : Fichier HTML")
         Sinon
            vQrStatus:=(vQrStatus+Caractere(13)+"Type sortie : Type inconnu - Erreur")
      Fin de cas
      QR SUPPRIMER ZONE HORS ECRAN($QR_Area)
   Fin de si


V. Choisir un nouveau dossier

Vous pouvez choisir un nouveau dossier à n'importe quel moment. Quand la base est lancée, une variable (<>Folder) est mise en place sur le dossier des Etats qui se trouve près de la structure de la base exemple. A ce moment, le chemin utilisé est un chemin relatif (<>vAbsPath est passé à Faux). Si un dossier différent est utilisé plus tard, <>vAbsPath passe à Vrai.

Chaque fois qu'un chemin est nécessaire, le code suivant est utilisé pour déterminer quelle méthode doit être utilisée pour pointer sur le dossier :

   Si (<>vAbsPath)
      Path:=<>Folder+<>Separator+aScroll1{$i}
   Sinon
      Path:=<>MacOS+<>Folder+<>Separator+aScroll1{$i}
   Fin de si

Ce morceau de code est nécessaire car sur Mac, un chemin relatif doit commencer par le caractère ":" (stockée dans <>MacOS).


La mise à jour du dossier est faite par la méthode suivante :

      `method M_Update_Folder

      `called to update the folder
      `Mise à jour du dossier

   C_TEXTE($tmpFolder)

   $tmpFolder:=Selectionner dossier("Sélectionnez un dossier.")
   Si ($tmpFolder="")
      ` No folder selected. No update needed
      ` pas de dossier ou répertoire sélectionné, donc pas de mise à jour.
   Sinon
      <>Folder:=$tmpFolder
      Si (<>MacOs=":")
         <>Folder:=Sous chaine(<>Folder;1;Longueur(<>Folder)-1)
         ` removing the endng :
         ` on supprime le dernier :
         <>vAbsPath:=Vrai
      Fin de si
      M_Update_List
      ` updating the list of reports
      ` Mise à jour de la liste des Etats

      vQrStatus:=""
      ` resetting the report summary
      ` Remise à chaine vide des infos
   Fin de si

Le principe est de laisser l'utilisateur choisir un nouveau dossier et de mettre à jour la variable interprocess <>Folder.


VI. Types de Sorties


Fichier Texte

Des fichiers textes peuvent être générés en utilisant l'éditeur d'Etats Rapides. Les fichiers générés respectent le format TAB-TAB-RETURN, où une tabulation est insérée entre chaque cellules et un retour chariot est inséré à la fin de chaque ligne.

Par exemple, examinons l'état suivant :

Pictures 0566x0428

Voici l'état imprimé :

Pictures 0420x0200

En fichier texte, il apparaît comme ceci :

Pictures 0412x0319


4D View

Un des formats de sortie disponible est 4D View. Lorsque vous choisissez ce type de sortie, l'Etat est présenté dans une fenêtre externe 4D View. Chaque cellule générée par le rapport est placée dans une cellule séparée 4D View. Ce principe est appliqué pour les Etats Listes ou Tableaux croisés.

Dans l'état ci-dessous, la ligne de Détail a été rendue invisible et une somme est faite lorsque l'on change de produits et de pays.

Pictures 0566x0428

Lorsque l'Etat est généré, la fenêtre 4D View ressemble à ceci :

Pictures 0270x0376


Graphe 2D

Pictures 0428x0337

Une fois généré, le graphe peut être manipulé comme n'importe quel graphe avec 4D Chart.


Graphe 3D

Pour créer un graphe en 3 dimensions, on a besoin d'un tableau croisé. En principe, l'état définira deux catégories et une valeur. Dans l'Etat ci-dessous, les catégories sont Produits et Pays, et les valeurs sont les sommes des factures.

Pictures 0458x0346

Le résultat en graphe 3D :

Pictures 0508x0400


Fichier HTML

La génération de fichier HTML à partir d'un Etat Rapide fonctionne comme un mécanisme d'export avec tags. Le résultat final dépendra du contenu du modèle HTML que vous utilisez. Avec le modèle par défaut, le fichier HTML incluera, avec les données, les styles de polices et les couleurs d'arrière-plan que vous assignerez aux différentes zones de l'Etat.

Le modèle par défaut ressemblera à ceci :

Pictures 0434x0429

Pour plus d'informations sur les tags, reportez-vous à la description de la commande QR FIXER MODELE HTML (http://4d.developpez.com/documentation/4DDoc2004/CMF/CMF00750.HTM).


Tableau croisé

Voici un exemple de tableau croisé :

Pictures 0468x0393


Export XML

Un exemple en XML :

Le format de sortie HTML fonctionne donc comme un export texte qui inclut un système de tag. Considérant les similitudes entre le format HTML et le format XML, exporter au format XML ne devrait pas présenter trop de difficultés. Dans cette partie, nous allons construire un état qui exportera nos données au format XML, compatible avec le propre format d'export XML de 4D.

Voici un exemple d'export XML de notre base exemple :

Pictures 0377x0313

Créons un modèle à utiliser avec l'état :

Pictures 0597x0185

Lorsque vous créez un état, vous avez simplement besoin de placer les cinq champs dans le même ordre que celui utilisé dans l'export et assigner le modèle HTML (en utilisant QR FIXER MODELE HTML) :

Pictures 0630x0186

En générant le fichier, changez son extension en ".xml", c'est identique à un export XML et peut être importé dans une base de données :

Pictures 0424x0428


VII. Conclusion

Cette note technique décrit une interface simple et multi-plateforme qui liste les fichiers d'Etats Rapides d'un dossier donné et présente un aperçu des formats de sortie disponibles avec l'Editeur d'Etats Rapides.


VIII. Base exemple

Téléchargez la base exemple :

Base pour Windows

Base pour Mac OS

__________________________________________________
Copyright © 1985-2009 4D SA - Tous droits réservés
Tous les efforts ont été faits pour que le contenu de cette note technique présente le maximum de fiabilité possible.
Néanmoins, les différents éléments composant cette note technique, et le cas échéant, le code, sont fournis sans garantie d'aucune sorte. L'auteur et 4D S.A. déclinent donc toute responsabilité quant à l'utilisation qui pourrait être faite de ces éléments, tant à l'égard de leurs utilisateurs que des tiers.
Les informations contenues dans ce document peuvent faire l'objet de modifications sans préavis et ne sauraient en aucune manière engager 4D SA. La fourniture du logiciel décrit dans ce document est régie par un octroi de licence dont les termes sont précisés par ailleurs dans la licence électronique figurant sur le support du Logiciel et de la Documentation afférente. Le logiciel et sa documentation ne peuvent être utilisés, copiés ou reproduits sur quelque support que ce soit et de quelque manière que ce soit, que conformément aux termes de cette licence.
Aucune partie de ce document ne peut être reproduite ou recopiée de quelque manière que ce soit, électronique ou mécanique, y compris par photocopie, enregistrement, archivage ou tout autre procédé de stockage, de traitement et de récupération d'informations, pour d'autres buts que l'usage personnel de l'acheteur, et ce exclusivement aux conditions contractuelles, sans la permission explicite de 4D SA.
4D, 4D Calc, 4D Draw, 4D Write, 4D Insider, 4ème Dimension ®, 4D Server, 4D Compiler ainsi que les logos 4e Dimension, sont des marques enregistrées de 4D SA.
Windows,Windows NT,Win 32s et Microsoft sont des marques enregistrées de Microsoft Corporation.
Apple, Macintosh, Power Macintosh, LaserWriter, ImageWriter, QuickTime sont des marques enregistrées ou des noms commerciaux de Apple Computer,Inc.
Mac2Win Software Copyright © 1990-2002 est un produit de Altura Software,Inc.
4D Write contient des éléments de "MacLink Plus file translation", un produit de DataViz, Inc,55 Corporate drive,Trumbull,CT,USA.
XTND Copyright 1992-2002 © 4D SA. Tous droits réservés.
XTND Technology Copyright 1989-2002 © Claris Corporation.. Tous droits réservés ACROBAT © Copyright 1987-2002, Secret Commercial Adobe Systems Inc.Tous droits réservés. ACROBAT est une marque enregistrée d'Adobe Systems Inc.
Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.
__________________________________________________
 



Valid XHTML 1.1!Valid CSS!

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.
Contacter le responsable de la rubrique 4D