mardi 14 avril 2015

Swift : le vent en poupe ?

Affichage / Impression / PDF avec XML : bonnes pratiques

Dans un logiciel, vous avez au moins un traitement qui affiche, imprime ou génére un fichier PDF.

Comment associer judicieusement les technologies XML avec les traitements pré-cités ?

Considérons d'abord un affichage de données.

Dans la façon traditionnelle, vous lisez et affichez vos données en écrivant du code - en utilisant un langage de développement en particulier.

C'est bien mais nous pouvons rendre le traitement plus souple et plus dynamique.

Votre langage de développement intégre un moteur HTML : utilisez - le !

"Découplez" les données, de l'affichage.

Vos données peuvent être ainsi regroupées dans un fichier XML (avec un fichier XSD associé) et votre affichage dans un fichier XSL (template).

Votre traitement va donc consister à associer les données lues (XML) au template (XSL) et à générer (XSLT) une page HTML prête à être affichée  !

Le principal avantage : votre traitement ne subit aucunes modifications - vous modifiez uniquement vos données et/ou votre template.

Considérons le traitement d'impression.

Il est possible de définir un fichier CSS pour l'impression d'un document, tout comme nous pouvons définir un fichier CSS pour l'affichage d'un document.

Mais cette pratique est très vite limitée - exemple : la gestion multi - page d'un document.

Hors rares sont les documents qui ne sont pas multi - pages.

Un fichier CSS, comme tout fichier Web, est lié à un navigateur Web. "L'interprétation" de certaines fonctionnalités HTML varie d'un navigateur à un autre.

Nous déconseillons donc cette approche.

L'astuce consiste d'abord à générer un fichier PDF et ensuite d'imprimer ce fichier.

Nous verrons dans la partie suivante comment générer ce fichier PDF.

Votre traitement va consister :

  • à afficher une boite de dialogue permettant de choisir l'imprimante et de renseigner quelques informations pour l'impression
  • de lancer la tâche d'impression de votre document généré

Le traitement pour générer un fichier PDF.

De nombreuses API existent pour générer un fichier PDF.

L'utilisation de la technologie XSL:FO va permettre une plus grande souplesse.

Cette technologie comme son nom l'indique est une technologie très proche de la technologie XSL mais elle est plus adaptée à la génération de documents (dont le PDF).

Même si elles se rapprochent, ces technologies restent néanmoins différentes et nécessitent un apprentissage distinct mais complémentaire.

Votre traitement va consister uniquement à "coupler" vos données avec votre template (XSL-FO) et à générer le document souhaité.


Que dire de ce bref tour d'horizon des technologies XML ?

Développons des solutions les plus "souples" possible en "découplant" au maximum les données des traitements.

Les technologies XML sont puissantes et offrent une potentiel souvent sous-estimé.

Nous y gagnerons dans la maintenabilité de notre logiciel.

mercredi 1 avril 2015

API dhtmlxGantt : nouvelle version !

Webix - Tutoriel #2 : la gestion des appels AJAX

La gestion des appels AJAX en Javascript peut être assez "fastidieuse" : trop de code (souvent redondant) et une visibilité du code peu optimale !

Webix a réglé ce problème.

Exemple source :

ma_page.php

<script>
webix.ajax("chercher_data.php",
function(text, data, xhr){ alert(text); });
</script>

cherche_data.php

<?php
$json = Array();

$json[] = Array("data1"=> "test", "data2"=> "test2");

echo json_encode($json);
?>

Quelques explications.

La page <chercher_data.php> a pour mission d'extraire les données et de les mettre en forme façon JSON.

Dans notre exemple, les données "data1" et "data2" peuvent servir par exemple à "alimenter" un composant UI de Webix de type <list>.

Intéressons - nous à la fonction CALLBACK de notre appel AJAX - function(text, data, xhr).

TEXT -> réponse complète de notre appel AJAX

DATA -> réponse au format JSON / XML quand cela est applicable

XHR -> objet XmlHttpRequest

Il existe d'autres variantes pour l'utilisation de webix.ajax - veuillez consulter la documentation pour plus d'informations.

Vous noterez donc qu'un appel AJAX est simple sous Webix.

Le code est lisible  ! ce qui non négligeable dans le cas où vous devez effectuer de nombreux appels AJAX.