rafraichissement de rapports BO en VBA...

rafraichissement de rapports BO en VBA... - VB/VBA/VBS - Programmation

Marsh Posté le 06-04-2004 à 16:56:36    

bonjour,
 
je souhaiterais réaliser quelque chose qui me permette d'automatiser les rafraichissements de plusieurs rapports BO (environ 15...)
 
pour ne pas tout refaire à la main...
 
et aussi si possible, que chaque rapport s'enregistre en Pdf dans un répertoire...
 
voila, je vous remerci d'avance...
 
bonne journée.
 
PS : j'utilise BO 6.1a


Message édité par petburn le 09-04-2004 à 17:01:55
Reply

Marsh Posté le 06-04-2004 à 16:56:36   

Reply

Marsh Posté le 06-04-2004 à 18:06:41    

personne ???
 
bon, voila, commetn je vois les choses :
 
étape 1 : suppression des fichiers existants (pdf et exel)
     - kill
     - ou (plutot je pense...)  
         Dim FS
         Set FS = CreateObject("Scripting.FileSystemObject" )
         FS.DeleteFile "c:\useless.txt"
 
étape 2 : rafraichissement des rapports
      - ???
 
étape 3 : enregistrement des nouveaux rapports (au format PDF et exel...) dans le bons répertoires
      - ???
 
toujours personne ????


Message édité par petburn le 06-04-2004 à 18:09:22
Reply

Marsh Posté le 06-04-2004 à 18:10:19    

à oui..
j'oublais.. je ne veux pas utiliser broadcast agent (pour ceux qui connaissent...)
 

Reply

Marsh Posté le 07-04-2004 à 08:53:19    

tjs personne... ???
 
ou est ce que je pourrai trouver de la doc sur VBA sous BO ????

Reply

Marsh Posté le 07-04-2004 à 10:40:01    

en clair, ce que je veux faire :
mettre à jour des fichiers exporté à partir de rapports BO.
et cela automatiquement. (pour ne pas avoir à le faire à la main pour les 15/20 rapports que j'ai...)
 
1 : supprimer un fichier pdf et un fichier excel
2 : ouvrir un rapport BO
3 : le mettre à jour
3 : exporter le rapport au format pdf
4 : exporter le repport au format xls.
 
donc s'il vous plait... si vous avez quelquechose qui pourrai m'aider... je serais super heureux...
 
et sinon, je recherche toujours es docs sur VBA pour BO....

Reply

Marsh Posté le 07-04-2004 à 18:19:32    

bon, j'avance un peu...
 
j'arrive à exporter au format pdf et xls, c'est pas très compliqué :
 
ActiveReport.ExportAsPDF (location & ActiveReport.Name & ".pdf" )
ActiveReport.ExportAsExcel (location & ActiveReport.Name & ".xls" )
 
location est le lien vers le répertoire ou seront enregistré le pdf et le xls;
 
par contre, je n'arrive psa à trouver comment rafraichir le rapport...
 
sinon :
chaque rapport aura la macro sur lui...
 
et un rapport "père" lancera les autres rapports et leurs macro..
dans le style :
Application.Run("nom_rapport.rep"!nom_macro, param1, param2...)
 
est ce que je suis dans le bon chemin ?????

Reply

Marsh Posté le 08-04-2004 à 13:55:59    

en fait, pour exporter tout les rapports (onglets) d'un même fichier ".rep", il ne faut pas utiliser Activereport, mais ActiveDocument.
 
ca marche bien pour exporter en pdf (Export As pdf)  
 
mais la fonction exportAsExcel n'est pas possible... ou du moins je ne l'ai pas trouvée...
 
est ce que quelqu'un aurait trouvé une solution à mon (mes en fait) problèmes.... ????
 
PS : j'ai un peu l'impression de ne parler qu'à moi...

Reply

Marsh Posté le 09-04-2004 à 14:34:40    

finalement, pour le exportAsExcel, je laisse ActiveReport... il faut juste veiller à ce que ce soit le bon onglet qui soit actif.
 
je parle tjs tout seul !!!!!
 
personne ne fais des macro VBA sous BO ?????? je suis le seul en france (présent sur le forum...) ?????

Reply

Marsh Posté le 12-04-2004 à 21:17:48    

Pour le rafraichissement ça ne doit pas être compliqué
 
as-tu les bonnes bibliothèques: Référencement de la bibliotheque "BusinessObjects 6.1 Object Library"  
 
 
après tu peux mettre le chemin de ta requête en variable
----------------------------------------------
 
Private appBO As busobj.Application  
Private docBO As busobj.Document  
Private repBO As busobj.Report  
   
Function Fct_InitBO_var(byval ReqBO as string )  
 
Set appBO = New busobj.Application  
 
  appBO.Interactive = True  
 
  appBO.LoginAs "MonLog", "MotdePasse", False  
     
  appBO.Visible = True  
 
Set docBO = appBO.Documents.Open(ReqBO)  
   
   
appBO.Interactive = False  
docBO.Refresh  
 
docBO.Close  
appBO.Quit  
 
Set docBO = Nothing  
Set appBO = Nothing  
 
End Function  

Reply

Marsh Posté le 13-04-2004 à 10:21:49    

ca ne marche pas bien...
 
je dois mettre les 3 private dans le fonction... et les changer en Dim...
sinon, il gueule..
 
et encore, ca ne marche tjs pas....

Reply

Marsh Posté le 13-04-2004 à 10:21:49   

Reply

Marsh Posté le 15-04-2004 à 12:24:08    

Quel message d'erreur as-tu ?

Reply

Marsh Posté le 15-04-2004 à 15:06:36    


pour le message d'erreur, je ne sais plus... mais finalement, j'ai changer un peu de technique...
 
ce que je veux :
a voir un rapport BO ("lance.rep" )
dans ce rapport, une macro VBA qui :
    - ouvre un rapport ("rep1.rep" )
    - lance une requête de "rep1.rep" (cette macro filtre et export en pdf...)
    - passe à un autre rapport ("rep2.rep" )  
    - et ainsi de suite...
 
des idées ..... ???
   

Reply

Marsh Posté le 16-04-2004 à 09:32:46    

je sais pas si on peut inserer une macro VBA dans un rapport BO ...
 
Tu travailles depuis quel outil ? excel, access, VB... ?
 
moi ce que j'ai c'est : une base access, avec une formulaire sur lequel il y a un compteur. Tous les dimanches soirs à 20h00, ce compteur lance une macro, dans laquelle j'ai un code pour chacune de mes requêtes BO (parce que je fais des calculs de variables pour les critères de mes requêtes BO).
 
Voici le code :
 
 
Private appBO As busobj.Application
Private docBO As busobj.Document
Private repBO As busobj.Report
 
 
Function lancement()
 
Dim Fi
Fi = "C:\Chemin\NomFichiers.pdf"
 
Dim Rq
Rq = "C:\Chemin\NomReqêteBO.rep"
 
Dim Go
Go = Fct_lanceBO(Fi, Rq)
 
End Function
 
 
 
Function Fct_lanceBO(NomFichier As String, NomReqBO As String)
 
' ------------ Cherche si fichier .pdf existant + suppr  ---------------
 
Application.FileSearch.FileName = NomFichier
 
    If Application.FileSearch.Execute > 0 Then
        Kill "C:\Chemin\NomFichiers.pdf"
    End If
 
' ----------------- ouvre Businessobject  ------------------------------
 
Set appBO = New busobj.Application
 
  appBO.Interactive = True
 
  appBO.LoginAs "MonLog", "MotdePasse", False
     
  appBO.Visible = True
 
'---------------------  lance requête BO  ------------------------------
 
Set docBO = appBO.Documents.Open(NomReqBO)
 
appBO.Interactive = False
 
docBO.Refresh
 
Set repBO = docBO.Reports.Item(1)
 
repBO.ExportAsPDF (NomFichier)
 
'---------------------  ferme BO  --------------------------------------
 
docBO.Close
appBO.Quit
 
Set docBO = Nothing
Set repBO = Nothing
Set appBO = Nothing
 
End Function
 
 
 
Si malgrés ça, tu as encore des pbm, n'oublie pas de préciser sur quel outil tu trailles et quel message d'erreur tu as (et où).
 :)

Reply

Marsh Posté le 16-04-2004 à 11:26:26    

Salut.
 
Je voudrai savoir un truc, comment créer une requete dans une macro créée à l'aide de Visual Basic Editor dans BusinessObjects.
J'ai pas de connaissance en VB :pfff: .
 
Je voudrai intégrer la requete suivante :
 
SELECT result1.network_operator_id,result1.month,result1.product_id, result1.durée1, result2.durée2  
  FROM (SELECT network_operator_id,last_day(call_date) as month, product_id, sum(duration) as durée1  
        FROM daily_summary  
        GROUP BY network_operator_id, last_day(call_date), product_id) result1,  
       (SELECT feeder_cust_code,last_day(traffic_date) as month, prod_line, sum(unit_count) as durée2  
        FROM posted_account_entry  
        GROUP BY feeder_cust_code,last_day(traffic_date) , prod_line) result2  
  WHERE result1.network_operator_id = result2.feeder_cust_code
  AND result1.month=result2.month
  AND result1.product_id= result2.prod_line
  AND result1.network_operator_id = 'GBBT'
  AND result1.product_id= 'IDTF';  :pt1cable:  
 
 
Salut

Reply

Marsh Posté le 16-04-2004 à 15:16:56    

GOOOOO a écrit :

Salut.
 
Je voudrai savoir un truc, comment créer une requete dans une macro créée à l'aide de Visual Basic Editor dans BusinessObjects.
J'ai pas de connaissance en VB :pfff: .
 
Je voudrai intégrer la requete suivante :
 
SELECT result1.network_operator_id,result1.month,result1.product_id, result1.durée1, result2.durée2  
  FROM (SELECT network_operator_id,last_day(call_date) as month, product_id, sum(duration) as durée1  
        FROM daily_summary  
        GROUP BY network_operator_id, last_day(call_date), product_id) result1,  
       (SELECT feeder_cust_code,last_day(traffic_date) as month, prod_line, sum(unit_count) as durée2  
        FROM posted_account_entry  
        GROUP BY feeder_cust_code,last_day(traffic_date) , prod_line) result2  
  WHERE result1.network_operator_id = result2.feeder_cust_code
  AND result1.month=result2.month
  AND result1.product_id= result2.prod_line
  AND result1.network_operator_id = 'GBBT'
  AND result1.product_id= 'IDTF';  :pt1cable:  
 
 
Salut
 


 
je comprends pas ce que tu veux faire...
 
tu veux lancer cette requette sur ton univers...??? avec VBA... ???
modifier une requette.. et la ramplacer par celle ci ???

Reply

Marsh Posté le 16-04-2004 à 17:39:33    

Salut.
 
Ce que je veux c'est récupérer les résultats d'une requête avec la foction @script.
 
Voilà....

Reply

Marsh Posté le 19-04-2004 à 11:14:24    

GOOOOO a écrit :

Salut.
 
Ce que je veux c'est récupérer les résultats d'une requête avec la foction @script.
 
Voilà....


 
désolé, mais je ne sais pas... ou du moins pas pour le moment...

Reply

Marsh Posté le 20-04-2004 à 16:12:26    

sinon, en réponse à pumpkin0312 >
je bosse directement sous BO

Reply

Marsh Posté le 20-04-2004 à 16:57:16    

Désolée, ma boite a une version diminuée de BO : sans gestion de VBA ...Je ne sais travailler en VBA avec BO que depuis depuis access.

Reply

Marsh Posté le 21-04-2004 à 09:07:08    

ok, moi, c BO en Full + Oracle

Reply

Marsh Posté le 06-08-2004 à 09:38:44    

Enfin, g pu trouver des personnes qui travaillent avec Bo et VB,
Mon problème à moi c que g créé une requête sous BO pour pouvoir générer des rapports de statistique et au niveau da ma clause Where ,mes conditions sont statiques cad que la valeurs de mes variables sont prédéfinies en avance,j'aimerais savoir comment rendre ma requête dynamique en saisissant  des valeurs différentes via une IHM faite avec VB??? Aidez moi SVP!!!

Reply

Marsh Posté le 10-08-2004 à 10:32:52    

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed