 |
Libre-infO.NET Forum d'entre aide aux outils du décisionnel.
|
| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
Mickey_tds Invité
|
Posté le: 02 Mai 2005, 13:34 Sujet du message: Macro Powerplay |
|
|
Bonjour!
Je suis entrain de faire une analyse de donnees sous Powerplay et je voudrais automatiser une selection sur un cube de donnees.Cette selection sera ensuite exporte dans un fichier excel. Je voudrai savoir si qq'un connait les macros sous powerplay et s'il pouvait me donner des liens ou un exemple de macro car je n'ai rien trouvé pour l'instant.?
Pour l'instant, tout est fait à la main et je pense que ce serait plus sympa si tout était automatisé.
En espérant que vous avez compris ce que je voulais faire et qu'une ame charitable pourrait me venir en aide.
Merci d'avance. |
|
| Revenir en haut |
|
 |
LPZ© Invité
|
Posté le: 03 Mai 2005, 10:51 Sujet du message: Re: les macro |
|
|
Bonjour,
J'était justement en train de me pencher dessus avant de partir en vacances
...
Si tu n'es pas trop impatient je vais y jetter un coup d'oeil a partir du 10 Mai
Désolé.
Le boeuf est lent mais la terre est patiente
(Confusius ... je crois)  |
|
| Revenir en haut |
|
 |
LPZ© Invité
|
Posté le: 03 Mai 2005, 10:56 Sujet du message: Re: Macro |
|
|
Si j'ai bien compris tu veux sélectionner une partie de ton rapport, l'extraire puis l'exporter vers Excel tout cela sous PowerPlay ...
Petite question stupide .....
Pourquoi n'utilise tu pas plutôt Impromptu ???? |
|
| Revenir en haut |
|
 |
Mickey_tds Invité
|
Posté le: 04 Mai 2005, 07:18 Sujet du message: |
|
|
Bonjour,
T'a compris mon probleme, c'est deja ça!
Je posais cette question pour powerplay car j ai vu qu'on pouvait effectuer des macros!
Et, pour Impromptu, je t'explique: je suis en stage dans une boite internationale et la et le lieu ou je suis est un bureau de vente.Quand le cube de données a été fait,je l'ai donc fait sous Powerplay transformer au centre mère.La ou je suis, ce n'est pratiquement que des attachés commerciaux et ils font juste du consulting donc Powerplay correspond largement.
Comprendo?
Sinon, impromptu a l'air d'être super intéressant mais si je peux le faire directement sous Powerplay, ca serait d'autant mieux!Au cas extreme, j'essaierai de me renseigner pour avoir Impromptu.
Merki |
|
| Revenir en haut |
|
 |
LPZ© Invité
|
Posté le: 06 Mai 2005, 08:54 Sujet du message: Re: |
|
|
Etant toujours en vacances je ne vais pas pouvoir t'aider tout de suite...
Mais g tout compris.
Je te tient au courant .... Mais peu être que les consultant qui t'entourent t'auront déjà donné la solution.
Bye |
|
| Revenir en haut |
|
 |
LPZ© Invité
|
Posté le: 09 Mai 2005, 16:37 Sujet du message: Re: |
|
|
J'ai un consultant expert COGNOS qui passe nous voir ce Mercredi 11 Mai.
Je lui poserais la question.
Mais si tu une autre question .... profites en. ( A 1400 € la journée, faut en avoir pour notre argent ...quitte a apprendre des choses ) |
|
| Revenir en haut |
|
 |
Mickey_tds Invité
|
Posté le: 10 Mai 2005, 14:45 Sujet du message: |
|
|
Alu!!
Je te remercie LPZ, c'est sympa!!
Je n'ai toujours pas trouvé la soluce!!J ai essaye de bidouiller un pti morceau de code mais impossible de le tester car je n'arrive pas a l'importer!!La galere!!!
Pourrais tu demander, si c'est possible, des le lancement de Powerplay,qu'une macro crée le cube de données selon mes choix et l'exporte en fichier texte!.Si oui, c'est bien, mais s'il me file le code, ca serait encore mieux!!
Demande si c'est possible de creer un menu a la Visual Basic.
Je te remercie a l'avance
Bye
Mickey_tds |
|
| Revenir en haut |
|
 |
LPZ© Invité
|
Posté le: 12 Mai 2005, 19:43 Sujet du message: Re: |
|
|
Salut,
Mon consultant s'en ait allé.
J'ai donc noté plein de truc. Le seul Pb est qu'il n'était pas un poil dévéloppeur de cognos-script.
En revanche j'ai vu plein de truc qui pourrait peut etre t'etre utile. tout dépend de ta config.
On essaye de se recontacter.
Cependant il m'a dit qu'avec les scripts on pouvait faire tout ce que l'outils client peut faire mais quand je lui ai demandé de si l'on pouvait extraire certaine ligne du rapport il n'a pas été capable de me repondre.
En ce qui concerne les interface a la V.B Il faut voir le produit powerprompt. J'ai ca a la boite je regarderais
@+
@+ |
|
| Revenir en haut |
|
 |
Mickey_tds Invité
|
Posté le: 13 Mai 2005, 08:00 Sujet du message: |
|
|
Excellent!
A tu des infos sur les scripts?Serait il possible que tu m'envoie de la doc?
J vais peter un cable avec les macros!! A propos de Powerprompt, j vais essayer de developper un pti menu.Je te previens si je reussis a m'en sortir!!
Merci
Mickey_tds  |
|
| Revenir en haut |
|
 |
Annabelle Invité
|
Posté le: 13 Mai 2005, 09:04 Sujet du message: |
|
|
Je n'ai pas encore fait de macro avec Powerplay mais j'ai déjà developpé des applications d'automatisation de publication de rapports Impromptu via Cognoscript. La logique est la même.
J'ai donc regardé un peu les méthodes qui pourraient t'aider pour ton problème. La méthode [i:a638a3287f]select[/i:a638a3287f] va te permettre de sélectionner une partie des données et la méthode [i:a638a3287f]saveas[/i:a638a3287f] permet d'enregistrer au format Excel :
Voici un petit exemple:
Dim PPRep as Object
Sub Main()
Set PPRep = CreateObject("PowerPlay.Report")
PPRep.Open "c:\cognos\copie.ppr"
PPRep.Columns.Item("Produits Vacances").Select
PPRep.Copy
'Enregistre au format Excel
PPRep.SaveAs "Vacances.xls"
PPRep.Close
End Sub |
|
| Revenir en haut |
|
 |
Mickeytds Invité
|
Posté le: 15 Mai 2005, 13:48 Sujet du message: |
|
|
Merci Annabelle
J vais essayer ton code lundi!Je te dirai koi!!
Merci encore |
|
| Revenir en haut |
|
 |
LPZ© Invité
|
Posté le: 16 Mai 2005, 10:43 Sujet du message: Les Macros c rigolo |
|
|
J'ai enfin commencé a regarder ton Pb de près et j'ai reussi a pondre ce bout de code. (Tu devrais regarder dans les exemples livrés avec PW)
Mais en attendant voici ce que g trouve.
Fonction qui te permet de retrouver une certaine valeur dans le rapport par rapport a une valeur saisie dans la boite de dialogue.
Je regarde pour perfectionner en fonction de tes besoins
'******************************************************************************
'*
'* RECHERCHE DANS UN RAPPORT.MAC
'*
'* Cette macro cherche dans le rapport actif toutes les lignes qui se terminent par "La veleur de la boite de dialogue"
'* et applique le style "Bon" à chacune des lignes trouvées.
'* Un message donne le nombre total de lignes trouvées.
'* Cette macro requiert la présence d'un rapport PowerPlay actif.
'*
'******************************************************************************
Option Explicit
Sub Main()
Dim objRapportPP As Object
Dim objLigneTrouvee As Object
Dim intLignesTrouvees As Integer
Dim intIndiceLigneTrouvee As Integer
Dim intDerniereLigneTrouvee As Integer
Dim intTrouve As Integer
Dim strMessageErreur As String
On Error GoTo TraitementErreur
'Récupérer le rapport actif
Set objRapportPP = GetObject(, "PowerPlay.Report")
Begin Dialog UserDialog 183, 42, "Boîte de dialogue CognosScript"
OkButton 130, 6, 50, 14
CancelButton 130, 23, 50, 14
Text 5, 5, 113, 11, "Recherche :"
TextBox 7, 23, 113, 10, .TextBox1
End Dialog
Dim MyDialog as UserDialog
Dim ValRech As String
Dim answer As Integer
'On Error Resume Next
answer=Dialog(MyDialog)
Select Case answer
Case -1
'MsgBox "Vous avez appuyé sur OK"
ValRech = MyDialog.TextBox1
Case 0
MsgBox "Vous avez appuyé sur Annuler"
Case 1
MsgBox "Vous avez appuyé sur Aide"
End Select
'Amener le curseur sur la première ligne pour commencer la recherche
objRapportPP.Rows.Item(1).Activate
'Initialiser les variables
intLignesTrouvees = 0
intIndiceLigneTrouvee = 0
intDerniereLigneTrouvee = 0
'Parcourir une à une toutes les lignes
Do
'Paramètres : Chaîne à chercher("Chaine de textbox"), Masque(4=termine par), Toutes les couches(false),
' Dimension(1=lignes)
intTrouve = objRapportPP.FindNext(ValRech , 4, false, 1)
'Si une ligne est trouvée, la rendre active
If intTrouve <> 0 Then
Set objLigneTrouvee = objRapportPP.Rows.Active
intIndiceLigneTrouvee = objLigneTrouvee.Index
'Si la ligne vient après la ligne trouvée précédemment, lui appliquer le style
If intIndiceLigneTrouvee > intDerniereLigneTrouvee Then
intDerniereLigneTrouvee = intIndiceLigneTrouvee
objLigneTrouvee.Style = "Bon"
intLignesTrouvees = intLignesTrouvees + 1
Else
'intIndiceLigneTrouvee a un indice plus petit que celui de la ligne trouvée précedemment,
'ce qui veut dire que toutes les lignes ont été parcourues.
'Ou intDerniereLigneTrouvee et intIndiceLigneTrouvee renferment la même valeur,
'donc une seule ligne répondant aux critères de recherche a été trouvée.
If intDerniereLigneTrouvee = intIndiceLigneTrouvee Then
intIndiceLigneTrouvee = -1 'pour permettre de sortir de la boucle.
End If
End If
Else
'Comme aucune ligne n'a été trouvée, intIndiceLigneTrouvee doit avoir une valeur
'inférieure à celle de intDerniereLigneTrouvee, donc inférieure à 0,
'pour permettre de sortir de la boucle
intIndiceLigneTrouvee = -1
End If
Loop Until intIndiceLigneTrouvee < intDerniereLigneTrouvee
MsgBox "Nombre de lignes qui se terminent par '" & ValRech & "': " & intLignesTrouvees
Terminer:
Exit Sub
TraitementErreur:
strMessageErreur = "L'erreur ci-après est survenue à la ligne " & Erl & "." & _
Chr$(13) & Chr$(13) & Chr$(9) & Err & " " & Error
If Err = 429 Then
MsgBox strMessageErreur & Chr$(13) & Chr$(13) & "Veuillez vous assurer qu'un " & _
"rapport est actif avant d'exécuter cette macro."
Else
MsgBox strMessageErreur
End If
Resume Terminer
End Sub |
|
| Revenir en haut |
|
 |
LPZ© Invité
|
Posté le: 16 Mai 2005, 14:20 Sujet du message: Les macro c rigolo (Suite) |
|
|
J'ai fait une petite modif, afin d'ecrire dans un fichier texte sur détection de la valeur a toi de voir si ca se rapproche de ton souhait (Il me faudrait une description de ton rapport au niveau format)
//Code
'******************************************************************************
'*
'* RECHERCHE DANS UN RAPPORT.MAC
'*
'* Cette macro cherche dans le rapport actif toutes les lignes qui se terminent par "La veleur de la boite de dialogue"
'* et applique le style "Bon" à chacune des lignes trouvées.
'* Un message donne le nombre total de lignes trouvées.
'* Cette macro requiert la présence d'un rapport PowerPlay actif.
'*
'******************************************************************************
Option Explicit
Sub Main()
Dim objRapportPP As Object
Dim objLigneTrouvee As Object
Dim intLignesTrouvees As Integer
Dim intIndiceLigneTrouvee As Integer
Dim intDerniereLigneTrouvee As Integer
Dim intTrouve As Integer
Dim strMessageErreur As String
Dim filemode as Integer
Dim attrib as Integer
Dim x as Integer
Dim valwrite as String
On Error GoTo TraitementErreur
'L30
'Récupérer le rapport actif
Set objRapportPP = GetObject(, "PowerPlay.Report")
Begin Dialog UserDialog 183, 42, "Boîte de dialogue CognosScript"
OkButton 130, 6, 50, 14
CancelButton 130, 23, 50, 14
Text 5, 5, 113, 11, "Recherche :"
TextBox 7, 23, 113, 10, .TextBox1
End Dialog
Dim MyDialog as UserDialog
Dim ValRech As String
Dim answer As Integer
'On Error Resume Next
answer=Dialog(MyDialog)
Select Case answer
Case -1
'MsgBox "Vous avez appuyé sur OK"
ValRech = MyDialog.TextBox1
'L50
Case 0
MsgBox "Vous avez appuyé sur Annuler"
Case 1
MsgBox "Vous avez appuyé sur Aide"
End Select
'Amener le curseur sur la première ligne pour commencer la recherche
objRapportPP.Rows.Item(1).Activate
'L60
'Initialiser les variables
intLignesTrouvees = 0
intIndiceLigneTrouvee = 0
intDerniereLigneTrouvee = 0
'On peut créer le fichier d'exportation
Open "C:\TEMP001.txt" For output As #1
'Kill "C:\TEMP001.txt" //Pour supprimer le fichier
'Parcourir une à une toutes les lignes
Do
'Paramètres : Chaîne à chercher("Chaine de textbox"), Masque(4=termine par), Toutes les couches(false),
' Dimension(1=lignes)
intTrouve = objRapportPP.FindNext(ValRech , 4, false, 1)
'Si une ligne est trouvée, la rendre active
If intTrouve <> 0 Then
Set objLigneTrouvee = objRapportPP.Rows.Active
intIndiceLigneTrouvee = objLigneTrouvee.Index
'Si la ligne vient après la ligne trouvée précédemment, lui appliquer le style
If intIndiceLigneTrouvee > intDerniereLigneTrouvee Then
intDerniereLigneTrouvee = intIndiceLigneTrouvee
objLigneTrouvee.Style = "Bon"
intLignesTrouvees = intLignesTrouvees + 1
'On ecrit la valeur dans la ligne
write #1, "VALEUR TROUVéE !! Cool"
'Verifier dans l'aide comment récuperer la valeur de la cellule
'objRapportPP.Cellvalues(objRapportPP.Rows.item("2004"), _
' objRapportPP.Columns.item("Temp"), _
' objRapportPP.Layers.item("Fournisseur") )
Else
'intIndiceLigneTrouvee a un indice plus petit que celui de la ligne trouvée précedemment,
'ce qui veut dire que toutes les lignes ont été parcourues.
'Ou intDerniereLigneTrouvee et intIndiceLigneTrouvee renferment la même valeur,
'donc une seule ligne répondant aux critères de recherche a été trouvée.
If intDerniereLigneTrouvee = intIndiceLigneTrouvee Then
intIndiceLigneTrouvee = -1 'pour permettre de sortir de la boucle.
End If
End If
Else
'Comme aucune ligne n'a été trouvée, intIndiceLigneTrouvee doit avoir une valeur
'inférieure à celle de intDerniereLigneTrouvee, donc inférieure à 0,
'pour permettre de sortir de la boucle
intIndiceLigneTrouvee = -1
End If
Loop Until intIndiceLigneTrouvee < intDerniereLigneTrouvee
MsgBox "Nombre de lignes qui se terminent par '" & ValRech & "': " & intLignesTrouvees
Terminer:
Exit Sub
TraitementErreur:
strMessageErreur = "L'erreur ci-après est survenue à la ligne " & Erl & "." & _
Chr$(13) & Chr$(13) & Chr$(9) & Err & " " & Error
If Err = 429 Then
MsgBox strMessageErreur & Chr$(13) & Chr$(13) & "Veuillez vous assurer qu'un " & _
"rapport est actif avant d'exécuter cette macro."
Else
MsgBox strMessageErreur
End If
Resume Terminer
End Sub
De plus a tu pensé a installer la macro excel complémentaire pour naviguer dans le cube a partir D'excel
La macro est dans
../COGNOS/cer3/bin/PPXLServer.xla
a installer en tant que macro complémentaire dans Excel ca peut etre une alternative si tu es meilleur en VBA
A suivre .....
Ca va pas vite mais je suis un peu chargé en ce moment .... Bye |
|
| Revenir en haut |
|
 |
MickeyTds Invité
|
Posté le: 17 Mai 2005, 09:23 Sujet du message: |
|
|
Merci LPZ
J comprend mieux le systeme!J vais tester tout ca et je te donnerai les conclusions.
Merci encore |
|
| Revenir en haut |
|
 |
Mickeytds Invité
|
Posté le: 25 Mai 2005, 13:56 Sujet du message: |
|
|
Ok ca roule!!!
Tout marche nickel!!
Maintenant, il me reste une derniere question:Comment crée t on des menus?Il me reste plus que ca a faire pour tout automatiser!
Si qq'un a la solution, je lui serai redevable a vie!!! Peut etre pas qd meme .... mais il(elle) serait sympa!!
Bonne journée
Mickey_tds |
|
| Revenir en haut |
|
 |
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|
|