- ' ---------------------------------------------------------------------------------------------------------------
- ' Windows Script Host Ouverture d'une édition Business Objects
- ' Date de création le 02/06/2003
- ' Modification : 03/01/2004 - Enregistrement du fichier *.rep sous le format *.pdf
- ' - Ajout d'une nouvelle variable Nom de 'Fichier.pdf' dans le fichier de variable
- ' Modification : 08/01/2004 - Suppression du fichier de variables à la fin du script
- ' Modification : 16/04/2004 - Ajout de l'option ouverture de la fenêtre BO au maximum et non plus par défault
- ' Modification : 21/10/2004 - Gestion de l'utilisation du fichier BOMainxxx.key
- ' ----------------------------------------------------------------------------------------------------------------
-
- ' Lecture du fichier de paramètres 'BOVar.var'
- ' Exemple sur le contenu du fichier de paramètres
- ' LOGIN,PASSWORD,C:\Temp\BOReport.rep,C:\Temp\BOReport.pdf,APERCU,CENTRE,E%
- ' -------------------------------------------------------------------------
- Const ForReading = 1, ForWriting = 2, ForAppending = 8
- Dim Fichier,FichierParam
- Set Fichier = CreateObject("Scripting.FileSystemObject")
- Set FichierParam = Fichier.OpenTextFile(WScript.Arguments.Unnamed.Item(0), ForReading)
- FichierLigne = FichierParam.ReadLine
- FichierParam.Close
-
- ' Permet de définir le nombre de paramètres
- ' ------------------------------------------
- Counter = 0
- NbreParam = 0 ' Taille du tableau
- While Counter < Len(FichierLigne) ' Teste la valeur du compteur.
- Counter = Counter + 1 ' Incrémente le compteur.
- If (Mid(FichierLigne,Counter,1) = ",") Then
- NbreParam = NbreParam + 1
- End If
- Wend ' Fin de la boucle While
-
- ' Permet l'ouverture d'un fichier BO avec des paramètres
- ' -------------------------------------------------------
- Set AppBO = Wscript.CreateObject("BusinessObjects.Application")
-
- ' Gestion du fichier BOMainxxx.key (Modif. 21/10/2004)
- ' ----------------------------------------------------
- Dim RepBoLocData, RepBo, FichRepBo, Fich
- Dim BoKey, BoKeyB, BoKeyC, BoKeySelect
- RepBoLocData = AppBO.GetInstallDirectory(boLocDataDirectory) & "\LocData\" ' Récupération du répertoire d'installation de BO
- Set RepBo = Fichier.GetFolder(RepBoLocData)
- Set FichRepBo = RepBo.Files
-
- For Each Fich in FichRepBo
- If (InStr(1, Fich.name, ".key") > 0) Then
- BoKey = Mid(Fich.name, 1, Len(Fich.name) - 4) ' Calcul de la longueur du fichier moins l'extension du fichier (.key)
- Select Case LCase(BoKey) ' Récupération de la caste du fichier (.key), car BO est très pointilleux
- Case "bomain_a"
- BoKeySelect = BoKey ' La version la plus récente
- Exit For
- Case "bomain_b"
- BoKeyB = BoKey
- Case "bomain_c"
- BoKeyC = BoKey
- End Select
- End If
- Next
-
- If (Len(BoKeySelect)=0 and Len(BoKeyB)>0) Then ' Permet de gérer les priorités sur les anciennes versions (.key)
- BoKeySelect = BoKeyB
- ElseIf (Len(BoKeySelect)=0 and Len(BoKeyC)>0) Then
- BoKeySelect = BoKeyC
- End If
-
- ' Fin de la gestion du Bomain.Key
- ' -------------------------------
-
- If (Len(BoKeySelect)>0) Then
-
- Dim Parametres
- Parametres = Split(FichierLigne,",",-1,1) ' Création du tableau - La valeur de l'indice commence à 0
-
- AppBO.LoginAs Parametres(0),Parametres(1),False ' Le Parametres(0) correspond au Login User et le Parametre(1) correspond au Password
- AppBO.Documents.Open Parametres(2),True,True ' Le Parametres(2) correspond au fichier report
-
- Set Variables = AppBO.Variables
-
- Counter = 5
- While Counter <= NbreParam ' Teste la valeur du compteur.
- Variables.Item(Parametres(Counter)).value = Parametres(Counter+1) ' Counter représente le champ et Counter+1 représente la valeur
- Counter = Counter + 2 ' Incrémente le compteur.
- Wend ' Fin de la boucle While
-
- AppBO.ActiveDocument.Refresh
-
- If Parametres(4) = "IMPRESSION" Then ' Le Parametres(4) correspond au type d'ouverture Aperçu ou Impression
- AppBO.ActiveDocument.PrintOut
- AppBO.ActiveDocument.Close
- AppBO.Quit
- ElseIf Parametres(4) = "APERCU" Then
- AppBO.Visible = True ' Affiche l'application.
- AppBO.Window.State = 3 ' 1=boNormal, 2=boMnimized, 3=boMaximized (Modif. 16/04/2004)
- AppBO.Interactive = True
- ElseIf Parametres(4) = "FICHIER" Then ' Parametres(3) correspond au nom du fichier
- AppBO.ActiveDocument.SaveAs Parametres(3) , 1 ' Enregistre dans un fichier PDF (Modif. 03/01/2004)
- AppBO.ActiveDocument.Close
- AppBO.Quit
- End If
-
- Else
- MsgBox "Il manque le fichier BoMain_xxx.key sur votre poste"
- End If ' Fin Ctrl BoKeySelect
-
- Set AppBO = Nothing ' Libère la variable objet.
-
- ' Supression du fichier paramètres xxx.var (Modif. 08/01/2004)
- ' ------------------------------------------------------------
- If (Fichier.FileExists(WScript.Arguments.Item(0))) Then
- Fichier.DeleteFile(WScript.Arguments.Item(0))
- End If
' ---------------------------------------------------------------------------------------------------------------
' Windows Script Host Ouverture d'une édition Business Objects
' Date de création le 02/06/2003
' Modification : 03/01/2004 - Enregistrement du fichier *.rep sous le format *.pdf
' - Ajout d'une nouvelle variable Nom de 'Fichier.pdf' dans le fichier de variable
' Modification : 08/01/2004 - Suppression du fichier de variables à la fin du script
' Modification : 16/04/2004 - Ajout de l'option ouverture de la fenêtre BO au maximum et non plus par défault
' Modification : 21/10/2004 - Gestion de l'utilisation du fichier BOMainxxx.key
' ----------------------------------------------------------------------------------------------------------------
' Lecture du fichier de paramètres 'BOVar.var'
' Exemple sur le contenu du fichier de paramètres
' LOGIN,PASSWORD,C:\Temp\BOReport.rep,C:\Temp\BOReport.pdf,APERCU,CENTRE,E%
' -------------------------------------------------------------------------
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim Fichier,FichierParam
Set Fichier = CreateObject("Scripting.FileSystemObject")
Set FichierParam = Fichier.OpenTextFile(WScript.Arguments.Unnamed.Item(0), ForReading)
FichierLigne = FichierParam.ReadLine
FichierParam.Close
' Permet de définir le nombre de paramètres
' ------------------------------------------
Counter = 0
NbreParam = 0 ' Taille du tableau
While Counter < Len(FichierLigne) ' Teste la valeur du compteur.
Counter = Counter + 1 ' Incrémente le compteur.
If (Mid(FichierLigne,Counter,1) = ",") Then
NbreParam = NbreParam + 1
End If
Wend ' Fin de la boucle While
' Permet l'ouverture d'un fichier BO avec des paramètres
' -------------------------------------------------------
Set AppBO = Wscript.CreateObject("BusinessObjects.Application")
' Gestion du fichier BOMainxxx.key (Modif. 21/10/2004)
' ----------------------------------------------------
Dim RepBoLocData, RepBo, FichRepBo, Fich
Dim BoKey, BoKeyB, BoKeyC, BoKeySelect
RepBoLocData = AppBO.GetInstallDirectory(boLocDataDirectory) & "\LocData\" ' Récupération du répertoire d'installation de BO
Set RepBo = Fichier.GetFolder(RepBoLocData)
Set FichRepBo = RepBo.Files
For Each Fich in FichRepBo
If (InStr(1, Fich.name, ".key") > 0) Then
BoKey = Mid(Fich.name, 1, Len(Fich.name) - 4) ' Calcul de la longueur du fichier moins l'extension du fichier (.key)
Select Case LCase(BoKey) ' Récupération de la caste du fichier (.key), car BO est très pointilleux
Case "bomain_a"
BoKeySelect = BoKey ' La version la plus récente
Exit For
Case "bomain_b"
BoKeyB = BoKey
Case "bomain_c"
BoKeyC = BoKey
End Select
End If
Next
If (Len(BoKeySelect)=0 and Len(BoKeyB)>0) Then ' Permet de gérer les priorités sur les anciennes versions (.key)
BoKeySelect = BoKeyB
ElseIf (Len(BoKeySelect)=0 and Len(BoKeyC)>0) Then
BoKeySelect = BoKeyC
End If
' Fin de la gestion du Bomain.Key
' -------------------------------
If (Len(BoKeySelect)>0) Then
Dim Parametres
Parametres = Split(FichierLigne,",",-1,1) ' Création du tableau - La valeur de l'indice commence à 0
AppBO.LoginAs Parametres(0),Parametres(1),False ' Le Parametres(0) correspond au Login User et le Parametre(1) correspond au Password
AppBO.Documents.Open Parametres(2),True,True ' Le Parametres(2) correspond au fichier report
Set Variables = AppBO.Variables
Counter = 5
While Counter <= NbreParam ' Teste la valeur du compteur.
Variables.Item(Parametres(Counter)).value = Parametres(Counter+1) ' Counter représente le champ et Counter+1 représente la valeur
Counter = Counter + 2 ' Incrémente le compteur.
Wend ' Fin de la boucle While
AppBO.ActiveDocument.Refresh
If Parametres(4) = "IMPRESSION" Then ' Le Parametres(4) correspond au type d'ouverture Aperçu ou Impression
AppBO.ActiveDocument.PrintOut
AppBO.ActiveDocument.Close
AppBO.Quit
ElseIf Parametres(4) = "APERCU" Then
AppBO.Visible = True ' Affiche l'application.
AppBO.Window.State = 3 ' 1=boNormal, 2=boMnimized, 3=boMaximized (Modif. 16/04/2004)
AppBO.Interactive = True
ElseIf Parametres(4) = "FICHIER" Then ' Parametres(3) correspond au nom du fichier
AppBO.ActiveDocument.SaveAs Parametres(3) , 1 ' Enregistre dans un fichier PDF (Modif. 03/01/2004)
AppBO.ActiveDocument.Close
AppBO.Quit
End If
Else
MsgBox "Il manque le fichier BoMain_xxx.key sur votre poste"
End If ' Fin Ctrl BoKeySelect
Set AppBO = Nothing ' Libère la variable objet.
' Supression du fichier paramètres xxx.var (Modif. 08/01/2004)
' ------------------------------------------------------------
If (Fichier.FileExists(WScript.Arguments.Item(0))) Then
Fichier.DeleteFile(WScript.Arguments.Item(0))
End If