Accueil du Site Libre-infO.NET
Forum d'entre aide aux outils du décisionnel.
 
 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Macro Powerplay
Aller à la page 1, 2  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Libre-infO.NET Index du Forum -> Forum COGNOS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
Mickey_tds
Invité





MessagePosté le: 02 Mai 2005, 13:34    Sujet du message: Macro Powerplay Répondre en citant

Bonjour! Surprised
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. Confused 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.? Shocked
Pour l'instant, tout est fait à la main et je pense que ce serait plus sympa si tout était automatisé. Laughing

En espérant que vous avez compris ce que je voulais faire et qu'une ame charitable pourrait me venir en aide. Crying or Very sad

Merci d'avance.
Revenir en haut
LPZ©
Invité





MessagePosté le: 03 Mai 2005, 10:51    Sujet du message: Re: les macro Répondre en citant

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) Wink
Revenir en haut
LPZ©
Invité





MessagePosté le: 03 Mai 2005, 10:56    Sujet du message: Re: Macro Répondre en citant

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é





MessagePosté le: 04 Mai 2005, 07:18    Sujet du message: Répondre en citant

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é





MessagePosté le: 06 Mai 2005, 08:54    Sujet du message: Re: Répondre en citant

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é





MessagePosté le: 09 Mai 2005, 16:37    Sujet du message: Re: Répondre en citant

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 Wink )
Revenir en haut
Mickey_tds
Invité





MessagePosté le: 10 Mai 2005, 14:45    Sujet du message: Répondre en citant

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!! Laughing

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é





MessagePosté le: 12 Mai 2005, 19:43    Sujet du message: Re: Répondre en citant

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é





MessagePosté le: 13 Mai 2005, 08:00    Sujet du message: Répondre en citant

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!! Shocked A propos de Powerprompt, j vais essayer de developper un pti menu.Je te previens si je reussis a m'en sortir!! Crying or Very sad Crying or Very sad

Merci

Mickey_tds Wink
Revenir en haut
Annabelle
Invité





MessagePosté le: 13 Mai 2005, 09:04    Sujet du message: Répondre en citant

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é





MessagePosté le: 15 Mai 2005, 13:48    Sujet du message: Répondre en citant

Merci Annabelle

J vais essayer ton code lundi!Je te dirai koi!!
Merci encore
Revenir en haut
LPZ©
Invité





MessagePosté le: 16 Mai 2005, 10:43    Sujet du message: Les Macros c rigolo Répondre en citant

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é





MessagePosté le: 16 Mai 2005, 14:20    Sujet du message: Les macro c rigolo (Suite) Répondre en citant

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 Wink

A suivre .....
Ca va pas vite mais je suis un peu chargé en ce moment .... Bye
Revenir en haut
MickeyTds
Invité





MessagePosté le: 17 Mai 2005, 09:23    Sujet du message: Répondre en citant

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é





MessagePosté le: 25 Mai 2005, 13:56    Sujet du message: Répondre en citant

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!!! Very Happy Peut etre pas qd meme .... mais il(elle) serait sympa!!

Bonne journée

Mickey_tds
Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Libre-infO.NET Index du Forum -> Forum COGNOS Toutes les heures sont au format GMT + 1 Heure
Aller à la page 1, 2  Suivante
Page 1 sur 2

 
Sauter vers:  
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


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com