Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > SDK
SDK Forum d'entraide pour la programmation des outils BO par des API (VBA, ASP, Java)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/11/2006, 14h01   #1
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 103
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 103
Points : 32
Points : 32
Par défaut [VBA]Envoi mail par section en automatique

Bonjour,

J'ai un rapport concernant plusieurs magasins. J'ai une section par magasin.
Je voudrais envoyer de manière automatique à chacun des magasins ses chiffres. C'est à dire un mail par section.

Est-ce possible en automatique, j'utilise actuellement V5 je ne pense pas que ce soit possible avec, mais on est en train de migrer en XI et je me demandais si c'était possible.

Ou est ce que je suis obligée de créer un rapport par magasin et d'envoyer le rapport en automatique surement avec le Broadcast Agent.

Merci,
cdumas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 15h20   #2
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
En VBA ça t'irait ? Pas que je sache le faire, mais ça me parait faisable.
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 15h47   #3
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 103
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 103
Points : 32
Points : 32
Le VBA ne me dérange pas mais j'ai aucune idée de comment résoudre ce problème en VBA.
cdumas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2006, 14h47   #4
Membre régulier
 
Inscription : novembre 2006
Messages : 84
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 84
Points : 83
Points : 83
J'ai fait une macro qui correspond à ton besoin. création d'un pdf par section et envoi automatique par e-mail.
Pour l'envoye par e-mail, je m'appuie sur un petit logiciel : tmail .
Nota dans mon document les sections contiennent l'adresse e-mail des destinataires.

Pour rendre à Cesar ce qui est à Cesar, je me suis inspiré de codes trouvés sur "http://www.forumtopics.com/busobj/"

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 Sub CreationPdf()
 
Dim DocObj AS busobj.Document     ' l'Object Document
Dim RepObj AS busobj.Report       ' l'Object Rapport
Dim SecArray                      ' Tableau qui va contenir les valeurs des sections
Dim IntSecArrayLen As Integer     ' longueur de la section du tableau
Dim SectionType AS String         ' type de la section
Dim i As Integer
Dim EnvoyeSMTP As String
Dim s_fichier As String
Dim CheckPDFSize As String
 
 
Set DocObj = ActiveDocument     ' récupère le document actif
SET RepObj = ActiveReport       ' récupère le rapport actif
 
 
' pour être sûr que le rapport a des sections
IF NOT RepObj.GeneralSectionStructure.IsTerminal Then
' On est sûr que le rapport à des sections !
 
' retrouve le nom de la section
SectionName = RepObj.GeneralSectionStructure.SubSectionStructure.Master.Name
 
 
' retrouver les valeurs de la session
SecArray = DocObj.DocumentVariables(SectionName).Values(boUniqueValues)
SectionType = TypeName(SecArray(1)) ' Identifie le type de la valeur
IntSecArrayLen = UBound(SecArray)
 
 
WITH RepObj
    FOR i = 1 TO IntSecArrayLen        ' boucle sur les sessions et filtrage
        If SectionType = "String" Or SectionType = "Date" Then
            ' filtre si string ou date
            .AddComplexFilter SectionName, "=<" & SectionName & "> = """ & SecArray(i) & """"
        Else
            ' filtre si numerique
            .AddComplexFilter SectionName, "=<" & SectionName & "> = " & SecArray(i)
        End If
        .ForceCompute     ' Applique le filtre
        ' Export dans le répertoire désiré
        .ExportAsPDF "C:\temp\" & SecArray(i) & ".pdf"
        s_fichier = "C:\temp\" & SecArray(i) & ".pdf"
        CheckPDFSize = FileLen(s_fichier) ' Returns file length (bytes).
    EnvoyeSMTP = "C:\Program Files\AGRIAL_OUTILS\tmail\tmail.exe -se <a href="mailto:BOenvoi.automatique@XXX.com">BOenvoi.automatique@XXX.com</a> -to " & SecArray(i) & " -smtp <AdresseDuServeurSMTP> -sub 'TitreAfaireApparaitre'  -att " & s_fichier
        'Shell (EnvoyeSMTP)
 
    Next
    ' enlever les filtres. important
    .AddComplexFilter SectionName, "=(0=0)"
    .ForceCompute
 
 
End WITH
Else
' si pas de section on enregistre tout de meme
RepObj.ExportAsPDF "C:\temp\" & RepObj.Name
End If
 
 
MsgBox "Diffusion effectuée"
 
 
Set DocObj = Nothing
Set RepObj = Nothing
 
End Sub
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 Private Sub Document_AfterRefresh()
 
Dim Response AS String
 
Response = MsgBox("Voulez vous diffuser le document aux conseillers ?", vbYesNo)
 
IF Response = vbYes Then    ' L'utilisateur a choisi Oui.
    Call CreationPdf
Else    ' L'utilisateur a choisi Non.
    'MyString = "Non"    ' Effectue une action.
End IF
 
 
End Sub
jj bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2006, 16h33   #5
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Avec des balises CODE ça aurait été super
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2006, 11h12   #6
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 103
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 103
Points : 32
Points : 32
Merci, c'est parfait.
cdumas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2007, 12h12   #7
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 103
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 103
Points : 32
Points : 32
Je viens de migrer en XI et vu que les macros ne fonctionne plus.

Comment faire pour faire l'équivalent ?

Merci
cdumas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 11h51   #8
Invité régulier
 
Inscription : mars 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 8
Points : 9
Points : 9
Par défaut macro XI

bonjour,

ce genre de macro fonctionne en XI (DeskI) il faut la declarer en 'private sub document _AfterRefresh...'
docbo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2007, 09h10   #9
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 103
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 103
Points : 32
Points : 32
Le problème est que je n'ai pas accès dans Outils -> Macro tout est grisé.

Alors que je me connecte avec les droits maximum équivalent de 'Administrator' à l'installation.

Comment puis-je la rajouter dans mon rapport ?
cdumas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2007, 15h20   #10
Invité régulier
 
Inscription : mars 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 8
Points : 9
Points : 9
bonjour
es tu sur les erveur ou sur un poste client?
as tu office sur ce poste
ton desktop intelligence est il appele via infoview en modif de .rep ou en 'natif du poste'?

@+
docbo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2007, 17h40   #11
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 103
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 103
Points : 32
Points : 32
Bonjour,

J'ai testé en poste client ou sur le serveur.
J'ai office sur mon poste.
Deski est appelé en direct.

Mais je suis en citrix sauf quand je suis directement sur le serveur.

@++
cdumas est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h24.


 
 
 
 
Partenaires

Hébergement Web