Vous êtes sur la page 1sur 9

Une gestion de parc informatique avec Paradox sous Windows

Par Frdric BROUARD Tous les PME dont linformatique est en pleine expansion sont confrontes au mme problme : recenser le matriel du parc informatique afin de connatre les quipements maintenir et renouveler.
1 Fonctionnalits dune gestion de parc informatique

Quelles sont donc les fonctionnalits dune gestion de parc informatique ? Tout dabord notons le recensement du matriel et du logiciel. Ensuite la localisation des matriels et leur marquage, le comptage des licences et pour terminer laffectation des matriels et logiciels un utilisateur. Enfin la gestion de la maintenance des matriels en panne. 1.1 Caractristique du recensement

Pour identifier le matriel ou le logiciel, et ses caractristiques, nous avons besoins dun identifiant du produit, du fabriquant ou de lditeur, du modle ou version, du n de srie, du type de matriel ou de logiciel, de ses caractristiques propres. En outre sil sagit dune unit centrale, nous avons besoin de paramtres supplmentaires tel que la vitesse du processeur, la quantit de RAM, la taille des disques durs et les lecteurs. Identifiant Fabriquant Modele No srie Type 1.2 : code donne pour identifier le matriel ou le logiciel : nom du fabriquant : modle du produit ou version du logiciel : numro de srie : par exemple : cran, unit centrale, logiciel

Caractristiques de la localisation et de lutilisateur : nom de lutilisateur courant : quel prise du rseau le matriel est-il connect : dans quelle pice, dans quel bureau se situe le matriel

Utilisateur Connexion Situation 1.3

Caractristiques de la maintenance

Mise en service Installation : date de premire mise en service Envoi maintenance : date du dernier dpart en maintenance
article paru dans Point DBF 1 Frdric BROUARD

Atelier : nom de latelier de rparation Retour maintenance : date de retour de maintenance Le choix de disposer des paramtres de maintenance au sein mme de la table de gestion du parc micro est critiquable. En effet cela permet de ne rendre compte que de la dernire maintenance effectue ou en cours. Une table dhistorisation de la maintenance avec des renseignements sur la panne aurait t plus judicieux. Mais souvenons nous quil sagit dun exemple, et que vous pourrez y remdier si vous avez le temps. 2 Structure de lapplication

Cette structure rpond au squelette applicatif que nous avons dvelopp dans notre tude consacre au rpertoire tlphonique (voir les numros prcdents de Point DBF). 3 Tables de lapplication

Notre application ne dispose donc que dune seule table principale de nom PARCMIC , dont la structure est la suivante :
Nom de champ Identifiant Fabriquant Modele No serie Type Utilisateur Caracteristiques Connexion Vitesse RAM Disque dur C Disque dur D Disque dur E Lecteur A Lecteur B Autre lecteur Situation Installation Envoi maintenance Atelier Retour maintenance Observations Type A A A A A A A A I I I I I A A A A D D A D F Taille 32 16 32 32 16 32 50 8 Cl * Oblig * * * * * * Modle *! *! *! *! Table de rf. TR_FAB.DB

TR_TYPE.DB TR_UTIL.DB

*!

5 5 8 25

3;,5,5;,25,CD ROM 3;,5,5;,25,CD ROM TR_SITU.DB

32

Fiches de lapplication

Lapplication comporte une fiche principale, 4 fiches de saisie des rfrences et une fiche lie au prvisualisateur dtat (voir nos articles prcdents).

article paru dans Point DBF

Frdric BROUARD

4.1

Fiche principale

Elle permet de saisir lensemble des information et comporte un menu permettant dimprimer des listings, dafficher les crans de saisie pour les rfrences et de faire afficher les donnes suivants diffrents ordres logiques. Un format daffichage spcifique a t ajouter pour les champs mmoire :

article paru dans Point DBF

Frdric BROUARD

5 5.1

Programmation Construction et manipulation du menu

Elle seffectue dans la mthode personnalise BuildMenu , lanc dans lvnement Open de la fiche.
method BuildMenu() var popImprim popUpMenu popRef popUpMenu popOrd popUpMenu endVar popImprim.addText("&Liste",MenuEnabled,UserMenu+1) popImprim.addText("&Fiches",MenuEnabled,UserMenu+2) popImprim.addText("&Etiquettes",MenuEnabled,UserMenu+3) MenuLin.addpopUp("&Listing",popImprim) popRef.addText("&Type",MenuEnabled,UserMenu+4) popRef.addText("&Utilisateur",MenuEnabled,UserMenu+5) popRef.addText("&Situation",MenuEnabled,UserMenu+6) popRef.addText("&Fabriquant",MenuEnabled,UserMenu+11) MenuLin.addpopUp("&Rfrences",popRef) popOrd.addText("&Clef : identifiant",MenuEnabled,UserMenu+7) popOrd.addText("&Type + Modle",MenuEnabled,UserMenu+8) popOrd.addText("&Utilisateur",MenuEnabled,UserMenu+9) popOrd.addText("&Situation",MenuEnabled,UserMenu+10) MenuLin.addpopUp("&Ordre",popOrd) MenuLin.show()

article paru dans Point DBF

Frdric BROUARD

endmethod

Le traitement du menu tant effectu dans une partie spcifique de lvnement MenuAction de la fiche :
method menuAction(var eventInfo MenuEvent) var id smallint endVar if eventInfo.isPreFilter() then ;// Ce code s'excute pour chaque objet de la fiche : else ;// Ce code s'excute seulement pour la fiche : id = eventInfo.id() [] SWITCH CASE id = UserMenu+1 : ImprimeListe() CASE id = UserMenu+2 : ImprimeSelect() CASE id = UserMenu+3 : ImprimeEtiquette() CASE id = UserMenu+4 : OpenScreenBD("TYPE") CASE id = UserMenu+5 : OpenScreenBD("UTIL") CASE id = UserMenu+6 : OpenScreenBD("SITU") CASE id = UserMenu+7 : SetClef("") CASE id = UserMenu+8 : SetClef("IndTypMod") CASE id = UserMenu+9 : SetClef("IndUt") CASE id = UserMenu+10 : SetClef("IndSitu") CASE id = UserMenu+11 : OpenScreenBD("FAB") ENDSWITCH

endif endmethod

5.2

Mthode personnalise ImprimeListe :

Elle renvoie vers la mthode personnalise parametrageImpression avec les paramtres suivants : parametrageImpression(":ETAT:LISTPARC", prnAuto) 5.3 Mthode personnalise ImprimeSelect :

article paru dans Point DBF

Frdric BROUARD

method ImprimeSelect() var pop PopUpMenu RQ Query TC TCursor retour string endvar retour = "" RQ = Query :TABLE:PARCMIC.DB | Utilisateur | | Check | EndQuery if not RQ.executeQBE(TC) then errorShow() return endif SCAN TC : pop.addText(TC.(1)) ENDSCAN retour = pop.show() if retour = "" then return endif RQ = Query :TABLE:Parcmic.db | Identifiant | Utilisateur | Check | ~retour EndQuery if not RQ.executeQBE(":PRIVE:REPONSE.DB") then errorShow() return endif parametrageImpression(":ETAT:USERPARC", prnAuto) endmethod | |

Elle permet dextraire les informations relative un utilisateur et renvoi vers la procdure dimpression parametrageImpression. 5.4 Mthode personnalise ImprimeEtiquettes :
6 Frdric BROUARD

article paru dans Point DBF

Elle affiche un message donnant lordre lutilisateur dintroduire des planches tiquettes A4 format 3x8 et renvoi vers la procdure dimpression parametrageImpression. 5.5 Mthode personnalise parametrageImpression :

Uses OBJECTPAL PreviewReport(titreFiche string, nomEtat string) endUses method ParametrageImpression(nomEtat string, bac longint) var TCparam NomOrg TitreOrg prt OptionPrint LibPrint endVar TCursor string string string PrinterOptionInfo library

Message("Paramtrage de l'impression") setMouseShape(MouseWait) ; paramtrage de l'impression if not NomOrg.isAssigned() then if not TCparam.open(":APPLI:PARAM") then errorShow() return endif NomOrg = TCParam."Nom organisme" Titre = TCParam."Nom application" TCParam.close() WriteEnvironmentString("PDXW_nomOrg",nomOrg) WriteEnvironmentString("PDXW_titre",titre) endif if not LibPrint.open(":BIBLIO:PRINTS") then errorShow() return endif printerGetOptions(OptionPrint) OptionPrint.Orientation = prnPortrait OptionPrint.PaperSize = prnA4 OptionPrint.Copies = 1 OptionPrint.DefaultSource = bac OptionPrint.PrintQuality = prnHigh OptionPrint.Duplex = prnSimplex sleep() if not PrinterSetOptions(OptionPrint) then ; mise en place des ; paramtres par dfaut ; ; ; ; ; ; mode portrait format A4 une seule copie bac d'impression 600 points par pouces pas de recto-verso

article paru dans Point DBF

Frdric BROUARD

endif sleep()

errorShow() return

; paramtres par dfaut pour cette imprimante tablis LibPrint.PreviewReport(GetTitle(), nomEtat) endMethod

Elle rcupre le nom de lorganisation dans la table des paramtres, prpare les options dimpression et utilise le prvisualisateur dtat dont le code est situ dans la bibliothque PRINTS . 5.6 Mthode personnalise OpenScreenBD :

method OpenScreenBD(nomFiche string) var F Form endVar if isEdit() then if not active.action(DataEndEdit) then errorShow() return endif endif if not F.open(":FICHE:"+nomFiche) then errorShow() return endif sleep() F.bringToTop() sleep() F.Wait() Sleep() F.close() endMethod

Elle permet dafficher lune quelconque des fiche de saisie des rfrences. 5.7 Mthode personnalise SetClef :

method SetClef(nomindx string) if not PARCMIC.switchIndex(nomIndx) then errorShow() return endif

article paru dans Point DBF

Frdric BROUARD

SWITCH CASE nomindx = "" : SetTitle(Titre) CASE nomindx = "IndSitu" : SetTitle(Titre+" - ordre : situation") CASE nomindx = "IndTypMod" : SetTitle(Titre+" - ordre : type + modle") CASE nomindx = "IndUt" : SetTitle(Titre+" - ordre : utilisateur") ENDSWITCH endMethod

Cette mthode positionne lindex actif du cadre de table en fonction du choix de lutilisateur et modifie le titre de lapplication en fonction de lindex utilis. Conclusion Voici une petite application trs utile a tous ceux qui doivent grer un parc informatique. Nous aurions pu lagrmenter dun module de calculs statistiques pour savoir quels sont les matriels les plus souvent en panne ou encore quel moment changer tel ou tel quipement. Je vous laisse le soin de ltoffer en fonction de vos desiderata. A ce sujet il existe en racine de cette application une fiche intitule MATRIX.FSL qui peut tre utilise par tout un chacun.

article paru dans Point DBF

Frdric BROUARD