WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Elaboration d'une application de la méthode Activity Based Costing utilisant les technologies XML

( Télécharger le fichier original )
par Jean Mairesse
ULB - Master Informatique et sciences humaines 2009
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Chapitre 8. Présentation des résultats.

Parvenant au terme de ce travail, nous nous attacherons en cette dernière partie à la présentation des résultats obtenus.

Au départ d'un fichier au format XML, nous avons au travers des diverses requêtes XQuery produit des résultats sous forme d'arbres XML, qui sont lisibles, mais dont la présentation peut être améliorée.

Pour ce, nous utiliserons les solutions XSL du W3C, et plus particulièrement XSL-FO.

Comme pour la partie dédiée à XQuery, nous utiliserons le vocabulaire technique en anglais, la recommandation source du W3C étant rédigée en anglais.

XSL.

Extensible Stylesheet Language est un langage de transformation de documents XML.

XSL, devenu une recommandation du W3C le 16 décembre 1998 en version1.0 , a évolué pour être scindé en trois domaines: Xpath, XSLT et XSL-FO.

XSLT et Stylesheet.

Une transformation XSL s'opère par le recours à une « stylesheet » ou feuille de style.

XSLT est le langage utilisé pour produire les « stylesheet », ce qui revient à ce qu'une stylesheet est un document de transformation XSLT.

Une « stylesheet » permet de décrire les règles de transformation des données (éléments et attributs) d'un arbre XML afin d'aboutir en fin de traitement à leur présentation (police, taille, couleur, fond de page,..).

Une « stylesheet » est un document XML bien formé utilisant des expressions issues de l'espace de nom XML.

Transformation et Templates.

Une « stylesheet » consiste en un ensemble de « template rules ».

Un « template rule » utilise deux composants:

1) Des pattern qui recourent à Xpath et sélectionnent les éléments de l'arbre XML de base.

2) Des template qui appliqués aux éléments sélectionnés, construisent chacun une partie de l'arbre de résultat.

Principe de transformation.

Nous décrivons brièvement le principe de transformation d'un arbre XML en un autre afin de mieux appréhender les mécanismes mis en oeuvre.

Un processeur XSL reçoit en entrée un document XML (à traiter) et une « stylesheet ».

L'arbre XML initial est transformé par le processeur XSL en un autre arbre XML selon les indications fournies par la « stylesheet ».

Cette transformation est réalisée en deux étapes:

1) La construction de l'arbre de résultat (« tree transformation »).

2) Traitement de l'arbre de résultat selon la feuille de style (« formatting »).

Le formatting.

L'étape de « Formatting » inclus de la sémantique dans l'arbre de résultat dont les « nodes » sont des « formatting objects ».

Les « formatting objects » font partie de classes qui décrivent paragraphes, texte, tables.

« Formatting » consiste à créer un arbre « formatting object tree », dont les éléments sont des « formatting object ».

Le modèle du « formatting object tree » est celui du « area tree ».

« Formatting » revient à créer un arbre « area tree » constitué de « geometric area » .

Les « geometric area » consistent en une séquence de pages, où chaque « area » a sa position précise dans la page.

Cet « area tree » décrit la structure géométrique de la sortie.

Simplement exprimé, la transformation crée une séquence de zones géométriques ayant un contenu et une position précise au sein de séquence.

Nous retenons que les « formatting objects » peuvent être de type « block-level » ou « inlinelevel », ceci selon le type d' « areas » qu'ils génèrent.

XSL-FO.

XST-FO fait partie de la recommandation Extensible Stylesheet Language version 1.0 du 15 octobre 2001, modifiée en version 1.1 le 05 décembre 2006.

XSL-FO a pour finalité de produire un document imprimable, alors qu'une transformation XSLT comme nous venons de décrire, génère soit du XML, soit du HTML ou du texte.

Plutôt que de devoir utiliser une multitude de spécifications correspondant chacune à un type d'imprimante existant, il a été choisi de produire un document au format PS ou PDF, ce qui le rend imprimable presque universellement.

Principe de transformation XSL-FO.

Une transformation XSL-FO est similaire à une transformation XSLT: à un document XML de base est appliquée une feuille de style XSLT qui sélectionne les éléments XML de base et leur applique les règles de transformation qui créent le document XSL-FO.

Ce document XSL-FO est alors traité par un « formatter » qui produit le document PDF imprimable.

Apache propose un outil: Formatting Objects Processor - FOP - permettant la transformation en PDF d'un document XSL-FO.

XSL-FO stylesheet.

La construction d'une « stylesheet » XSL-FO repose sur l'utilisation de différents « formatting objects ».

La recommandation W3C propose le modèle ci-après.

La forme d'un document XSL-FO est celle d'un arbre XML, à la base duquel se trouve un élément racine qui est le « fo:root » « formatting object ».

« fo-root » a pour éléments descendants:

- « fo:layout-master-set » qui défini la géométrie et la séquence des pages utilisées dans le document final.

- « fo:declarations » (qui est optionnel).

- une ou plusieurs « fo:page-sequences », dont les descendants sont des « flows », génèrent le contenu de ces pages.

« fo:layout-master-set » a pour enfants:

- simple-page-masters qui décrit les subdivisions des pages et leur géométrie; il faut au minimum un simple-page-master. Un simple-page-master a un attribut « master-name ».

- page-sequence-masters qui décrit la séquence de « page-masters » que le formatting du

« fo:page-sequence » devra respecter. Il détermine l'ordre d'apparition des « page-masters ». Un page-sequence-master » a un attribut « master-reference ».

Représentation d'un simple-page-master model. (source: W3C)

Le « simple-page-master » permet de déterminer différentes régions (« region before », « region start », « region after », « region end », « body ») et la taille d'une page (« margin »).

D'autres propriétés ayant trait à la pagination peuvent être décrites, comme la direction d'écriture au travers des différentes pages d'un document « writing mode » et « relative direction » .

Application pratique.

Nous créons une présentation pour l'arbre XML synthétisant les résultats d'une commande, que nous développions au cours du chapitre précédent.

Nous le reproduisons ci-dessous.

<?xml version="1.0" encoding="UTF-8"?>

<presentation2> <commande>

<id_commande>com001</id_commande>

<descriptif>systeme solaire</descriptif>

<nom>jaeger</nom>

<adresse>rue du bois 36 à 1000 bruxelles</adresse>

</commande> <charges>

<cout_direct>5103</cout_direct> <cout_indirect_commande>3376.1968</cout_indirect_commande>

</charges>

<resultats>

<chiffre_affaire>12000</chiffre_affaire>

<marge_brute>6897</marge_brute>

<marge_nette>3520.8032</marge_nette>

</resultats>

<ratios>

<a>42.525</a>

<b>57.475</b>

<c>28.134974</c>

<d>29.340027</d>

<e>70.65997</e>

</ratios>

</presentation2>

Détail de la stylesheet.

Nous détaillons la « Stylesheet » de façon fragmentaire; le document est présenté dans son entièreté plus bas.

<?xml version="1.0" encoding="ISO-8859-1" ?> <xsl:stylesheet version="1.0"

xmlns:xsl=" http://www.w3.org/1999/XSL/Transform">

Nous déclarons le document XSL qui est conforme à la version XSL 1.0 et est lui même un document XML.

La mention de xmlns:xsl=" http://www.w3.org/1999/XSL/Transform" indique au processeur XSLT qu'il devra utiliser le « namespace » correspondant (Transform).

<xsl:template match="presentation">

<fo:root xmlns:fo=" http://www.w3.org/1999/XSL/Format">

Nous sélectionnons l'élément « presentation » qui est l'élément racine du fichier XML que nous voulons transformer.

L'élément racine du fichier XSL-FO est déclaré, avec une précision pour le processeur (xmlns:fo=" http://www.w3.org/1999/XSL/Format"), qui devra utiliser le « Namespace » « Format » pour la transformation FO.

<fo:layout-master-set>

<fo:simple-page-master master-name="expdf" page-height="29.7cm" page-width="21cm" margin-top="2cm" margin-bottom="2cm" margin-left="2cm" margin-right="2cm">

<fo:region-body/>

</fo:simple-page-master>

</fo:layout-master-set>

Nous déclarons le « fo:layout-master-set » contenant le « simple-page-master » dont le « master-name » est « expdf » . Nous y décrivons le format de page qui sera utilisé : une feuille A4 (21 * 29,5 cm).

Les marges seront de 2cm.

<fo:page-sequence master-reference="expdf"> <fo:flow flow-name="xsl-region-body">

Le « page-sequence-master-reference » est déclaré, il fait référence à « expdf ». Le flow (qui génère le contenu des pages) écrira dans la région « body ».

<fo:block border="2 px solid black" padding="4mm" space-after="18mm" > <fo:block font-weight="bold" font-family= "Helvetica"

font-size="24pt" text-align="center"

border="3px outset olive" space-before = "8mm" space-after="18mm" padding="2mm"> Résultats financiers de la commande

</fo:block>

Ici commence la sélection de ce qui devra être affiché en sortie de traitement.

La notion de « block-level » que nous évoquions plus haut est utilisée.

Dans la première ligne, nous déclarons que l'ensemble du contenu devra être encadré d'une bordure noire épaisse de 2px.

Cette première balise sera refermée après la déclaration de tous les blocs suivants.

Puis en seconde ligne nous déclarons le premier « block » qui sera le titre « Résultats financiers de la commande ».

La police, sa taille, son épaisseur, le mode d'alignement du texte sont déclarés; ce titre devra être encadré en couleur « olive ».

<fo:block font-weight="bold" font-family= "Helvetica"

font-size="18pt" text-align="center" border="2px double darkolivegreen"

space-after="10mm" padding="2mm">

Commande
</fo:block>

<fo:block border="2 px solid black" padding="2mm" space-after="28mm" >

<fo:block font-size="16pt" space-before="14pt" space-after="2mm" line-height="20pt" text-align="left" start-indent="2mm" >

- Référence Commande: <xsl:value-of select="commande/id_commande"/>

</fo:block>

<fo:block font-size="16pt" space-after="2mm" start-indent="2mm" line-height="20pt"> - Client: <xsl:value-of select="commande/nom"/>

</fo:block>

<fo:block font-size="16pt" start-indent="2mm" space-after="2mm" line-height="20pt"> - Détail de la commande: <xsl:value-of select="commande/descriptif"/>

</fo:block>

</fo:block>

Puis vient une zone portant le titre « Commande », suivi d'une zone reprenant les informations de l'arbre XML de départ: "commande/id_commande", "commande/nom", et "commande/descriptif". Nous sélectionnons ces éléments via l'instruction « xsl:value-of select » suivi d'une expression Xpath

« commande/id_commande ».

Chaque élément sélectionné est précédé d'un commentaire: « - Référence Commande: », « - Client: », « - Détail de la commande: » dont le but est de faciliter la compréhension et d'enrichir la présentation des éléments XML de départ.

<fo:block font-weight="bold" font-family= "Helvetica"

font-size="18pt" text-align="center" border="3px ridge darkolivegreen" space-after="10mm" padding="2mm">

Calcul de rentabilité

</fo:block>

<fo:block border="2 px solid black" padding="2mm" space-after="8mm">

<fo:block font-size="16pt" space-before= "4mm" start-indent="2mm" space-after="2mm" line- height="20pt">

Chiffre d'affaire de la commande: <xsl:value-of select="resultats/chiffre_affaire"/> Euro </fo:block>

<fo:block font-size="16pt" space-after="2mm" start-indent="2mm" line-height="20pt"> ( - ) Charge Directe: <xsl:value-of select="charges/cout_direct"/> Euro

</fo:block>

<fo:block font-size="16pt" space-after="2mm" start-indent="2mm" line-height="20pt"> ( = ) Marge Brute: <xsl:value-of select="resultats/marge_brute"/> Euro

</fo:block>

<fo:block font-size="16pt" space-after="2mm" start-indent="2mm" line-height="20pt">

( - ) Charge indirecte (ou coût ABC): <xsl:value-of select="charges/cout_indirect_commande"/> Euro </fo:block>

<fo:block font-size="16pt" space-after="2mm" start-indent="2mm" line-height="20pt"

padding="1mm" border="2px solid red">

( = ) Marge Nette: <xsl:value-of select="resultats/marge_nette"/> Euro

</fo:block> </fo:block> </fo:block>

<fo:block font-weight="bold" font-family= "Helvetica"

font-size="18pt" text-align="center" border="3px ridge darkolivegreen" space-after="4mm" padding="2mm"> Présentation sous forme de ratios

</fo:block>

<fo:block border="2 px solid black" padding="2mm" space-after="8mm">

<fo:block font-size="14pt" space-after="2mm" start-indent="2mm" line-height="20pt"> Proportion Charges Directes dans le chiffre d'affaire: <xsl:value-of select="ratios/a"/> % </fo:block>

<fo:block font-size="14pt" space-after="2mm" start-indent="2mm" line-height="20pt"> Proportion Marge Brute dans le chiffre d'affaire: <xsl:value-of select="ratios/b"/> % </fo:block>

<fo:block font-size="14pt" space-after="2mm" start-indent="2mm" line-height="20pt"> Proportion Charges Indirectes dans le chiffre d'affaire: <xsl:value-of select="ratios/c"/> % </fo:block>

<fo:block font-size="14pt" space-after="2mm" start-indent="2mm" line-height="20pt">

Proportion Marge Nette dans le chiffre d'affaire: <xsl:value-of select="ratios/d"/> %

</fo:block>
</fo:block>

</fo:flow>

</fo:page-sequence> </fo:root>

</xsl:template>

</xsl:stylesheet>

Nous créons une zone similaire à la précédente selon exactement les mêmes principes.

Le titre encadré devient « Calcul de rentabilité », les données sélectionnées dans l'arbre XML de résultat sont "resultats/chiffre_affaire", "charges/cout_direct", "resultats/marge_brute", "charges/cout_abc_ commande", "resultats/marge_nette".

Les commentaires sont : « Chiffre d'affaire de la commande: », « ( - ) Charge Directe: », « ( = ) Marge Brute: », « ( - ) Charge indirecte (ou coût ABC): » et « ( = ) Marge Nette: ».

La ligne dédiée à l'élément « resultats/marge_nette » est encadrée de rouge.

Enfin, un commentaire est placé à la suite de chaque élément sélectionné afin de préciser l'unité monétaire: « Euro ».

Enfin, en une troisième zone, identique, nous présentons les données issues du calcul de ratios. Le titre: « Présentation sous forme de ratios ».

Nous présentons également les éléments: « ratios/a », « ratios/b », « ratios/c », et « ratios/d ». Nous commentons chacun des éléments: « Proportion Charges Directes dans le chiffre d'affaire: »,

« Proportion Marge Brute dans le chiffre d'affaire: », « Proportion Charges Indirectes dans le chiffre d'affaire: », et « Proportion Marge Nette dans le chiffre d'affaire: ».

Chaque élément est suivi du signe « % ».

Ci-dessous, la « stylesheet » complète.

<?xml version="1.0" encoding="ISO-8859-1" ?>

<xsl:stylesheet version="1.0" xmlns:xsl=" http://www.w3.org/1999/XSL/Transform" xmlns:fo=" http://www.w3.org/1999/XSL/Format">

<xsl:template match="presentation">

<fo:root xmlns:fo=" http://www.w3.org/1999/XSL/Format">

<fo:layout-master-set>

<fo:simple-page-master master-name="expdf" page-height="29.7cm" page-width="21cm" margin-top="2cm" margin-bottom="2cm" margin-left="2cm" margin-right="2cm">

<fo:region-body/>

</fo:simple-page-master>

</fo:layout-master-set>

<fo:page-sequence master-reference="expdf"> <fo:flow flow-name="xsl-region-body">

<fo:block border="2 px solid black" padding="4mm" space-after="18mm" > <fo:block font-weight="bold" font-family= "Helvetica"

font-size="24pt" text-align="center"

border="3px outset olive" space-before = "8mm" space-after="18mm" padding="2mm"> Résultats financiers de la commande

</fo:block>

<fo:block font-weight="bold" font-family= "Helvetica"

font-size="18pt" text-align="center" border="2px double darkolivegreen" space-after="10mm" padding="2mm">

Commande
</fo:block>

<fo:block border="2 px solid black" padding="2mm" space-after="28mm" >

<fo:block font-size="16pt" space-before="14pt" space-after="2mm" line-height="20pt" text-align="left" start-indent="2mm" >

- Référence Commande: <xsl:value-of select="commande/id_commande"/> </fo:block>

<fo:block font-size="16pt" space-after="2mm" start-indent="2mm" line-height="20pt"> - Client: <xsl:value-of select="commande/nom"/>

</fo:block>

<fo:block font-size="16pt" start-indent="2mm" space-after="2mm" line-height="20pt"> - Détail de la commande: <xsl:value-of select="commande/descriptif"/>

</fo:block>

</fo:block>

<fo:block font-weight="bold" font-family= "Helvetica"

font-size="18pt" text-align="center" border="3px ridge darkolivegreen" space-after="10mm" padding="2mm">

Calcul de rentabilité

</fo:block>

<fo:block border="2 px solid black" padding="2mm" space-after="8mm">

<fo:block font-size="16pt" space-before= "4mm" start-indent="2mm" space-after="2mm" line- height="20pt">

Chiffre d'affaire de la commande: <xsl:value-of select="resultats/chiffre_affaire"/> Euro </fo:block>

<fo:block font-size="16pt" space-after="2mm" start-indent="2mm" line-height="20pt"> ( - ) Charge Directe: <xsl:value-of select="charges/cout_direct"/> Euro

</fo:block>

<fo:block font-size="16pt" space-after="2mm" start-indent="2mm" line-height="20pt"> ( = ) Marge Brute: <xsl:value-of select="resultats/marge_brute"/> Euro

</fo:block>

<fo:block font-size="16pt" space-after="2mm" start-indent="2mm" line-height="20pt">

( - ) Charge indirecte (ou coût ABC): <xsl:value-of select="charges/cout_indirect_commande"/> Euro </fo:block>

<fo:block font-size="16pt" space-after="2mm" start-indent="2mm" line-height="20pt" padding="1mm" border="2px solid red">

( = ) Marge Nette: <xsl:value-of select="resultats/marge_nette"/> Euro </fo:block>

</fo:block>

</fo:block>

<fo:block font-weight="bold" font-family= "Helvetica"

font-size="18pt" text-align="center" border="3px ridge darkolivegreen" space-after="4mm" padding="2mm"> Présentation sous forme de ratios </fo:block>

<fo:block border="2 px solid black" padding="2mm" space-after="8mm">

<fo:block font-size="14pt" space-after="2mm" start-indent="2mm" line-height="20pt"> Proportion Charges Directes dans le chiffre d'affaire: <xsl:value-of select="ratios/a"/> % </fo:block>

<fo:block font-size="14pt" space-after="2mm" start-indent="2mm" line-height="20pt"> Proportion Marge Brute dans le chiffre d'affaire: <xsl:value-of select="ratios/b"/> % </fo:block>

<fo:block font-size="14pt" space-after="2mm" start-indent="2mm" line-height="20pt"> Proportion Charges Indirectes dans le chiffre d'affaire: <xsl:value-of select="ratios/c"/> % </fo:block>

<fo:block font-size="14pt" space-after="2mm" start-indent="2mm" line-height="20pt"> Proportion Marge Nette dans le chiffre d'affaire: <xsl:value-of select="ratios/d"/> % </fo:block>

</fo:block> </fo:flow> </fo:page-sequence>

</fo:root>

</xsl:template>

</xsl:stylesheet>

Traitement « formatter ».

La suite logicielle <oXygen/> intègre un « formatter ». Nous avons eu recours à cette solution, qui a généré le document .PDF suivant.

Nous y retrouvons les éléments du document XML de base, comme le nom du client, le chiffre d'affaire de la commande, la marge nette, etc.. enrichis des commentaires que nous souhaitions.

Sources.

W3C XSL Transformations (XSLT) Version 1.0

Illustrations: W3C XSL Transformations (XSLT) Version 1.0 W3C Extensible Stylesheet Language (XSL) Version 1.1 XSL-FO de Dave Pawson; ISBN : 0-596-00355-2

Chapitre 9. Suite du mémoire et conclusions. Terminer ce mémoire.

Nous terminons ce mémoire, en ayant suivi les objectifs, excepté notre semi-échec concernant les logiciels libres.

Cependant, au fil de la réalisation de ce travail, d'autres objectifs potentiels sont apparus, ce qui nous fait dire que si ce travail est terminé par rapport aux objectifs de base, il ne l'est pas tout à fait.

Il s'agit de points qui pourraient être améliorés, ou encore de points auxquels nous n'avions pas pensé au moment de l'établissement des objectifs initiaux.

Ils pourraient faire l'objet de développement ultérieurs.

Recommandations pour la suite de ce travail.

Ce travail pourrait être poursuivi en développant les aspects que nous décrivons ci-après.

Recherche sur les logiciels libres.

Nous avons failli quant à l'objectif de n'utiliser que des logiciels libres, ayant dû acquérir une licence d'utilisation de la suite logicielle <oXygen/>XML.

Il est probable qu'en se concentrant sur ce point uniquement, une solution libre aboutisse.

Nos recherches (que nous avons dû limiter faute de temps) ont montré qu'il existe diverses solutions libres, mais non regroupées au sein d'une même suite, et surtout pas très ergonomiques et encore moins documentées.

Par regroupement, nous entendons un éditeur XML doté d'un parser , un logiciel Xquery, voire un traitement XSL et encore mieux, un formatter, le tout accessible via une plate-forme unique. Idéalement dotée d'une interface graphique.

Simplement exprimé, la même chose que <oXygen/>XML, mais en licence libre et s'installant sous Linux.

A notre sens, XQDT (pour XQuery) sous la plate-forme Eclipse est une très bonne base moyennant un minimum de documentation.

Repenser le document XML.

La méthode que nous avons utilisée pour représenter l'ensemble des données comptables, relatives aux commandes, etc... au sein d'un même document XML pourrait être revue si le volume d'information devenait important.

Pour quelques milliers de saisies, et relativement peu d'éléments, cela convient.

La redondance de l'information (par exemple pour les postes pcmn) rend sa maintenance laborieuse et comporte un risque d'erreur.

Plus d'information et plus d'éléments augmenterait cette redondance.

Il serait alors intéressant de développer un support pour ces informations XML ayant recours à un ensemble tables plutôt qu'un document XML unique.

Travailler l'ergonomie.

Un travail portant sur l'ergonomie doit être réalisé.

L'utilisateur final ciblé, c'est à dire les gérants de TPE et PME sont très peu friands, voire réticents à toute forme de travail administratif, pour utiliser un terme global.

Cela relève très souvent de la corvée, et est sans cesse reporté au lendemain.

Si il doit être utilisé, il importe donc que ce projet ABC soit très bien présenté, et de façon la plus simple possible à manipuler.

Saisir les informations XML « manuellement » dans le document XML est impensable. Nous l'avons pratiqué dans le cadre de ce travail, c'est très fastidieux, et générateur d'erreurs.

A notre sens, le recours à un système de fenêtres de saisie, donc une interface graphique est nécessaire.

Organisation de l'interface graphique.

Une interface graphique pourrait être organisée selon différents thèmes. Interface orientée vers les données de fonctionnement de l'entreprise.

L'interface concernerait la saisie, lecture et correction/suppression des données relatives aux mesurages, imputations des pièces comptables, et données relatives aux commandes.

Interface orientée vers les d onnées système.

Une autre interface pourrait donner accès aux données qui régissent le fonctionnement de l'application.

Il s'agit essentiellement des proportions de répartition des charges indirectes et des familles de coût, mais aussi de la gestion des comptes pcmn autorisés, clients autorisés.

L'action porte ici sur la DTD et fichier XML.

Interface orientée vers la structure du système.

Cette interface permettrait de modifier ou de créer des activités, familles de coût, mais aussi d'ajouter des éléments inexistants dans la forme actuelle.

L'action porte ici sur la DTD et fichier XML.

Interface orientée consultation / requêtes.

Une interface graphique accédant les requêtes XQuery est nécessaire également.

L'apprentissage de XQuery est long, et nécessite une parfaite connaissance de l'arbre XML de base. A nouveau, ce n'est pas là tâche pour l'utilisateur final.

Il serait possible de proposer une série de requêtes par thèmes.

- Recherches par commande: des détails quant aux mesurages relatifs à telle commande, la part de

charges indirectes pour telle commande,..

- Requêtes de calcul: le coût d'une unité d'oeuvre, la valeur de toutes les charges indirectes sur une période, le coût d'une famille,...

Une alternative serait un canevas de requêtes « préfabriquées » qui seraient composables via des objets graphiques (cf. Stylus Studio).

D'autres solutions sont bien entendu possibles.

L'utilisateur final devrait idéalement voir de la requête:

- une fenêtre où saisir la(es) condition(s) de sélection imposée à la requête; un choix pourrait lui être proposé; par exemple un choix entre les identificateurs de commande.

- une icône « start » lançant la requête.

En retour, un affichage du résultat à l'écran ou l'impression d'un document de synthèse semblable à celui que nous créons dans le dernier chapitre sont proposés.

Autres fonctions des interfaces.

Ces différentes vues pourraient proposer un filtrage par utilisateur, par exemple pour éviter des modifications des règles de calcul par un utilisateur non-initié, ou ne pas autoriser l'accès aux requêtes de résultats à tous.

L'interface devrait avoir également quelques fonctions propres, comme la création automatique d'identificateurs uniques à chaque saisie (sans intervention de l'utilisateur).

Ou encore lorsque le choix des valeurs pour un attribut est défini dans la DTD, ces différentes possibilités pourrait être proposé à l'utilisateur par menu déroulant.

Technologie pour les interfaces.

Au terme d'une très brève recherche, il semble que Xul ou Xforms pourraient être des solutions pour les interfaces, dans l'esprit XML.

- Xul (XML-based User interface Language) créé pour le projet Mozilla, utilise un langage ayant une structure XML pour créer des interfaces graphiques.

- Xforms, une recommandation du W3C depuis 2003, qui est en constante évolution.

Les requêtes XQuery.

Nous restons avec une interrogation à propos de l'aspect « low level » de XQDT évoqué précédemment, que nous avons généralisé à XQuery , à tort ou à raison, partant du principe que XQDT est un outil de recherche XQuery.

Nous n'avons pas approfondi, la question reste ouverte.

Si comme nous le suggérions, l'aspect low level peut se traduire par la nécessité de devoir appliquer une série de requêtes successives sur un arbre XML pour obtenir un résultat plus raffiné que les données du document XML de base, il serait intéressant d'automatiser ces enchaînements de requêtes.

L'utilisateur ne devrait voir qu'une seule requête, la première, et lui demander de fournir les résultats raffinés ... de la dernière requête.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Piètre disciple, qui ne surpasse pas son maitre !"   Léonard de Vinci