Les Commandes Avancees

 
 

OLE - Excel - Internet Explorer

 
 

Les parties avancées sont plus ce qu'a apporté la dernière version de kixtart. La version 2001 prend plus d'objet relatifs à Windows même que ses précédentes. Nous voyons principalement l'interaction avec des objets OLE et des accès aux données ActiveDirectory.

Les objets OLE - top

Un objet OLE (Object Linking and Embedding, liaison et incorporation d'objets) est un concept utilisé sous Windows. OLE compatibilité est une technologie relative à la création de documents composites et à la communication entre applications. Elle permet le partage de données et la mise à jour, automatique ou sur demande, de celle-ci par la création d'objets liés ou d'objets incorporés.

En bref ils peuent être utilisé par différentes applications. C'est le cas de la quasi totalité des applications microsoft. Kixtart va utilisé les fonctions VB disponible sur l'ordinateur local.

L'intérêt dans nos commandes de script est de formater nos données extraites et de les rendre directement utilisable après l'éxécution du script. Par exemple on peut les intégrer à un fichier Excel ou les faire apparaitre dans une page d'Internet Explorer.

Exemple avec Excel - top

Par exemple nous allons créer un fichier excel et le remplir de 30 valeurs HT et calculer le montant avec TVA.

$oXL = CreateObject("EXCEL.application") ; appelle l'objet Excel

If @error = 0
$oXL.Visible = 0 ; rend Excel visible au user

$Rc = $oXL.Workbooks.Add ; ajoute un nouveau workbook

$array = "Commande #", "Valeur HT", "TTC (20,6%)"

$oXL.Range("A1:C1").Value = $array ;ajoute les colonnes

For $i = 0 To 29
$oXL.Cells(($i+2),1).Value = "ORD" + ($i + 1000)
$oXL.Cells(($i+2),2).Value = Rnd() / 100
Next

;Remplit la dernière colonne avec une formule pour calculer la valeur TTC.
$oXL.Range("C2").Resize(31, 1).Formula = "=B2*1.206"

;Formate la feuille de travail
$oXL.Range("A1:C1").Font.Bold = 1
$Rc = $oXL.Range("A1:C1").EntireColumn.AutoFit

; Sauvegarde de notre travail
$oXL.ActiveWorkbook.SaveAs("%temp%\fic.xls")

;Détermine si le user peut avoir un contrôle sur les actions
$oXL.UserControl = 0

; Ferme l'objet Excel utilisé.
$oXL.Workbooks.Close()
$oXL = 0

Else
? @error + " / " @serror
EndIf

Exemple avec Internet Explorer - top

Pour faire le même type d'emploi à l'aide d'une page HTML. Le script récupère des informtions sur le système, crée une page html contenant ces informations et l'affiche.

;----- Preparation de la page HTML----
$titre = Affichage de valeurs ; en-tete
$html='
<HTML>
<HEAD>
<TITLE>'+$titre+'</TITLE>
</HEAD>
<BODY>'

; corps


+'<br>Vous etes connecte avec les informations suivantes :'
+'<br>Userid : ' + @userid
+'<br>Nom Complet : ' + @fullname
+'<br>Workstation : ' + @wksta
+'<br>Domaine : ' + @domain
+'<br>Serveur de validation : ' + @lserver
+'<br>Adresse IP : ' + @ipaddress0
+'<br>OS utilise : ' + @PRODUCTTYPE
+'<br>Groupe Principal : ' + @PRIMARYGROUP
+'<br>Niveau de privilege : ' + @PRIV

; et fin
$html= $html +'
</BODY>
</HTML>' ;Notre page Web est prete

; creation du fichier HTML,changer le fichier si autre
$=ReDirectOutput("%temp%\info.htm", 1) $html $=ReDirectOutput("")
; Ouverture IE
$ie=createobject("internetexplorer.application")

; Fixe les propriétés ...
$ie.addressbar="0"
$ie.menubar="0"
$ie.toolbar="0"
$ie.statusbar="0"
$ie.resizable="0"
$ie.height=440
$ie.width=380
$ie.visible="true"

; ouverture du fichier HTML
$ie.navigate("%temp%\info.htm")
setFocus($titre+' - Microsoft Internet Explorer')

Donc vous avez deux exemples d'utilisations d'interface avec des objets OLE. Les propriétés et les fonctions ne viennent pas directement de kixtart. Il faut souvent se pencher sur le Visual Basic avant de se lancer dans ce type de script. En plus on commence à s'éloigner sérieusement d'un script.

 

 
 
 
 


J'oubliais, le contenu de ce site peut être pompé ou utilisé dans son intégralité tant que ce n'est pas à des fins commerciales. Il a été concu dans le cadre de ma formation à l'Université de Marne la Vallée et les copyright lui appartiennent donc.