IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

États rapides : les différents types de sorties

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. ♪

Article lu   fois.

L'auteur

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

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.
Pictures 0417x0350

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.

 
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
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 É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 :

Pictures 0248x0086
 
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
` Method M_Update_QR_Data
` retrieve the form's basic information
` when it is clicked in the list
`affichage des informations basiques sur l'État 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 État : Liste"
      : ($QrType=2)
        vQrStatus:="Type État : 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 É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 :

 
Sélectionnez
1.
2.
3.
4.
5.
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 :

 
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
`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 États

    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'É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 :

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'É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.

Pictures 0566x0428

Lorsque l'État 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'État 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 É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 :

Pictures 0434x0429

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é :

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

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

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.