États rapides : les différents types de sorties

Hugo FOURNIER

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

- Titre : États rapides : les différents types de sorties

- Auteur : Hugo FOURNIER

- Parution : 1 octobre 2003

- Licence : Ce document est issu de https://www.developpez.comet 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.

Sommaire

- I. Résumé

- II. Interface

- III. Composition de la liste

- IV. Visualiser les informations sur les États

- 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'États Rapides dans un dossier et qui explore les différents types de sorties disponibles avec ces États 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'États Rapides dans un répertoire donné ;

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

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

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

Par défaut, le dialogue affiche la liste des États Rapides localisés dans le dossier États. 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 1 000 enregistrements ». Les données ainsi créées vous serviront pour les États.

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 État Rapide. Sous Mac, le problème est plus complexe : un État 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.

1. TABLEAU ALPHA(80;aScroll1;0)

3. LISTE DES DOCUMENTS(<>Folder;aScroll1)

5. Si (<>Platform=3)

6. ` windows

8. Boucle ($i;Taille tableau(aScroll1);1;-1)

9. Si (Non(Sous chaine(aScroll1{$i};Longueur(aScroll1{$i})-3;Longueur(aScroll1{$i}))=".4qr"))

10. SUPPRIMER LIGNES(aScroll1;$i)

11. ` on supprime tous les fichiers qui n'ont pas comme extension .4qr

12. ` basically removing any file whose extension is not .4qr

13. Fin de si

14. Fin de boucle

16. Sinon

18. Boucle ($i;Taille tableau(aScroll1);1;-1)

19. Si (Non(Sous chaine(aScroll1{$i};Longueur(aScroll1{$i})-3;Longueur(aScroll1{$i}))=".4qr"))

20. ` si les fichiers n'ont pas la bonne extension

21. ` if it does not have the right extension

22. Si (<>vAbsPath)

23. Path:=<>Folder+<>Separator+aScroll1{$i}

24. Sinon

25. Path:=<>MacOS+<>Folder+<>Separator+aScroll1{$i}

26. Fin de si

27. Si (Non((Type document(Path)="4DQR") | (Type document(Path)="4DSE")))

28. `si l'extension n'est pas correcte, on vérifie le type qui doit être soit 4DSE, soit 4DQR

29. `it does not have the right extension so it MUST have the types 4DSE or 4DQR

30. SUPPRIMER LIGNES(aScroll1;$i)

31. Fin de si

32. Fin de si

33. Fin de boucle

35. Fin de si

IV - Visualiser les informations sur les États

Vous noterez que lorsque l'État 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'œil :

1. ` Method M_Update_QR_Data

2. ` retrieve the form's basic information

3. ` when it is clicked in the list

4. `affichage des informations basiques sur l'État rapide lorsque l'on clique dessus.

6. C_TEXTE(vQrStatus)

7. Si ($1="")

8. Sinon

9. Si (<>vAbsPath)

10. Path:=<>Folder+<>Separator+$1

11. Sinon

12. Path:=<>MacOS+<>Folder+<>Separator+$1

13. Fin de si

14. $QR_Area:=QR Creer zone hors ecran

15. C_BLOB($vTemp)

16. DOCUMENT VERS BLOB(Path;$vTemp)

17. QR BLOB VERS ETAT($QR_Area;$vTemp)

18. $QrType:=QR Lire type etat($QR_Area)

19. Au cas ou

20. : ($QrType=1)

21. vQrStatus:="Type État : Liste"

22. : ($QrType=2)

23. vQrStatus:="Type État : Tableau croisé"

24. Fin de cas

25. QR LIRE DESTINATION($QR_Area;$output)

26. Au cas ou

27. : ($output=1)

28. vQrStatus:=(vQrStatus+Caractere(13)+"Type sortie : Imprimante")

29. : ($output=2)

30. vQrStatus:=(vQrStatus+Caractere(13)+"Type sortie : Fichier Texte")

31. : ($output=3)

32. vQrStatus:=(vQrStatus+Caractere(13)+"Type sortie : 4D View")

33. : ($output=4)

34. vQrStatus:=(vQrStatus+Caractere(13)+"Type sortie : 4D Chart")

35. : ($output=5)

36. vQrStatus:=(vQrStatus+Caractere(13)+"Type sortie : Fichier HTML")

37. Sinon

38. vQrStatus:=(vQrStatus+Caractere(13)+"Type sortie : Type inconnu - Erreur")

39. Fin de cas

40. QR SUPPRIMER ZONE HORS ECRAN($QR_Area)

41. 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 États qui se trouve près de la structure de la base exemple. À 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 :

1. Si (<>vAbsPath)

2. Path:=<>Folder+<>Separator+aScroll1{$i}

3. Sinon

4. Path:=<>MacOS+<>Folder+<>Separator+aScroll1{$i}

5. 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 :

1. `method M_Update_Folder

3. `called to update the folder

4. `Mise à jour du dossier

6. C_TEXTE($tmpFolder)

8. $tmpFolder:=Selectionner dossier("Sélectionnez un dossier.")

9. Si ($tmpFolder="")

10. ` No folder selected. No update needed

11. ` pas de dossier ou répertoire sélectionné, donc pas de mise à jour.

12. Sinon

13. <>Folder:=$tmpFolder

14. Si (<>MacOs=":")

15. <>Folder:=Sous chaine(<>Folder;1;Longueur(<>Folder)-1)

16. ` removing the endng :

17. ` on supprime le dernier :

18. <>vAbsPath:=Vrai

19. Fin de si

20. M_Update_List

21. ` updating the list of reports

22. ` Mise à jour de la liste des États

24. vQrStatus:=""

25. ` resetting the report summary

26. ` Remise à chaine vide des infos

27. 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'États Rapides. Les fichiers générés respectent le format TAB-TAB-RETURN, où une tabulation est insérée entre chaque cellule 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'État 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 États 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'État 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'État 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 État 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 inclura, avec les données, les styles de polices et les couleurs d'arrière-plan que vous assignerez aux différentes zones de l'État.

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

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

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 multiplateforme qui liste les fichiers d'États Rapides d'un dossier donné et présente un aperçu des formats de sortie disponibles avec l'Éditeur d'États Rapides.

VIII - Base exemple

Téléchargez la base exemple :

Base pour Windows

Base pour Mac OS