novembre
2008
J’ai eu dans l’idée il y a quelques temps d’adapter un projet de CRM open source sous WinDev. Ce projet c’est egroupware (www.egroupware.org).
####################
Phase 1 :
####################
Acte 1 : télécharger les 40 Mo de l’application
Acte 2 : installation sur un serveur wamp
Acte 3 : création d’un nouveau projet WD 11
Acte 4 : import de l’analyse MySQL à partir de la base de données.
Acte 5 : création de la fiche contact avec le RAD
Acte 6 : mise en forme de cette fenêtre et modification des libellés.
Acte 7 : ajout des petites images de egw dans ma fenêtre
Acte 8 : Ma première fenêtre Fiche contact fonctionnelle en moins d’une heure. Bien sur avec vérification entre l’écran WEB et ma fenêtre WinDev.
Conclusions :
– PAS UNE SEULE LIGNE DE CODE n’a été tapée et pourtant l’écran fonctionne.
– Le seul problème technique que j’ai eu concerne l’absence de libmysql.dll sur mon poste.
– Autre problème mineur le format de date de egw c’est MM/JJ/AAAA donc c’est un peu surprenant.
– Ce qui m’a fait le plus perdre du temps (et encore on parle de 5 minutes ) ? Dans Firefox avec un clic droit on peut sauvegarder une image dans le presse papier, c’est ce que j’ai fait. Sauf que dans WinDev quand vous faites coller sur la fenêtre, il vous propose de sauvegarder dans un fichier bmp. Le top pour moi aurait été la dépose de l’image dans la fenêtre et la sauvegarde automatique de l’image dans le répertoire.
####################
Phase 2 :
####################
Rappel : La fiche contact est générée par le RAD. Aucune ligne de code et j’ai une interface conviviale qui fonctionne.
Jusque là j’avais à afficher des colonnes « brutes », il me reste les colonnes pointant sur des données d’autres tables (le propriétaire du contact), des colonnes interprétées (le flag privé / public), des colonnes sous forme de liste (le fuseau horaire) et même une date de modification au format http://www.allhtml.com/articles/detail/244. Il n’y a pas photo, il faut mettre les mains dans le cambouis.
Malgré certains reproches que l’on peut faire au RAD il a l’avantage de créer deux fonctions locales RADAffiche et RADEnregistre. Il suffit donc de modifier ces 2 fonctions pour ajouter mes modifications :
- Pour le propriétaire, un petit HFiltre puis HLP+F5 et le tour est joué,
- Pour la combo fuseau horaire, un F1 sur le mot liste et on retrouve ses petits (et oui l’aide en ligne sert),
- Pour la colonne interprétée, c’est trop simple
- Pour la date de modification là c’est dur à se formaliser le concept, après 1 heure de recherche infructueuse, je pose la question sur le forum de l’éditeur et au miracle, les fonctions DateVersEntier et HeureVersEntier répondent au besoin en moins de 5 lignes.
J’ai donc maintenant une fenêtre contact fonctionnelle. Le tout en moins de 2 heures de travail effectif dessus.
####################
Phase 3 :
####################
Rappel : Une fenêtre fiche contact opérationnelle avec des données brutes ou des données calculées. Reste maintenant à faire la fenêtre Table_Contacts.
Là je me base (une fois de plus) sur le RAD pour me générer la table ainsi que pour récupérer le code des boutons Ajouter, Modifier, Supprimer.
En fait je ne vais pas utiliser de fenêtre table_contacts mais reprendre un principe que j’avais vu dans l’exemple WinDev CRM. Tout est dans une fenêtre principale et on change de plan au fur et à mesure du choix utilisateur. J’ai exactement la même problématique : aujourd’hui ce sont les contacts, demain ce sera le calendrier.
Ni une ni deux, je migre la fenêtre principale CRM en WinDev 11 et je fait quelques copier coller pour récupérer le champ boite à gauche. Comme toujours, je récupère les images de egroupware pour les intégrer dans ma fenêtre. Bien sur il se pose les erreurs de compilation car le code de cet objet (est des objets qu’il contient) utilise des variables non définis dans ma fenêtre. Encore un coup de copier coller et c’est fini.
J’ai maintenant ma fenêtre principale. Il ne me reste plus qu’à un ajouter la table_contacts et reporter les codes créer, modifier, supprimer dans mes boutons de ma boite. Un petit GO et me voici en train de naviguer dans mes contacts egroupware. Mission réussie en 4 heures de travail.
Soyons francs, afficher des données provenant d’une table est d’une simplicité enfantine avec WinDev car tout est prévu pour se faire. Je pense que ma phase future d’affichage d’un calendrier risque d’être d’une autre ampleur entre l’affichage jour, hebdo, mensuel. Je vais bien regarder l’exemple planning pour voir ce que je peux faire ou encore me baser sur une autre ressource WinDev glanée sur sur le net.