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.
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.
 |
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 :
` 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 :
Voici l'état imprimé :
En fichier texte, il apparaît comme ceci :
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.
Lorsque l'Etat est généré, la fenêtre 4D View ressemble à ceci :
Graphe 2D
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.
Le résultat en graphe 3D :
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 :
Tableau croisé
Voici un exemple de tableau croisé :
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 :
Créons un modèle à utiliser avec l'état :
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) :
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 :
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
__________________________________________________
Copyright © 1985-2008 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.
__________________________________________________
 
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.
|