Xreport : reporting de dataset en xml, pdf, excel et envoi par mail

Description

J'ai réalisé ce code dans le cadre de mon stage technique et j'ai pensé logique de le mettre à disposition de tous.

Alors, ce code prend un DataSet ou un XmlDocument directement et l'affiche dans un tableau. On peut ajouter à ce tableau une ligne Total (qui fait le total des colonnes) ou des graphiques (Camembert ou Baton) très rapidement (Voir fichier XMLLayer).

L'architecture est très simple, chaque fichier parle de lui même !

Pour l'envoi de mails, j'utilise SMTP, pensez d'ailleurs à changer le serveur SMTP (souvent votre hébergeur).

J'utilise la version Express de Dev Web sur un framework 2 avec IIS et windows XP (marche sur 2000 de sur).

Excusez moi pour le manque de détails, pour toutes questions n'hésitez pas, je suis très dispo.

Pour l'export en PDF, la source n'est pas de moi, c'est une version ASP de FPDF trouvé sur ce site.

Source / Exemple :


<%@ Register TagPrefix="intranet" TagName="XReport" Src="..\controles\XReport.ascx" %>

' Exemple d'utilisation :
    ' Génère la vue Bilan suivante :
    ' -> Equipiers | Contrat | Heures | CEX
    Public Shared Function VueEquipeBilanCtHrCx(ByVal eq_id As Integer, ByVal debut As Date, ByVal fin As Date) As Xml.XmlDocument

        Dim Data As DataSet, DataTeam As DataSet
        Dim query As String
        Dim Jour As Date = Date.Today

        DataTeam = DataLayer.SelectEquipe(eq_id)

        query = "SELECT personnel.PE_ID, CONCAT(personnel.PE_NOM, ' ', personnel.PE_PRENOM) AS Equipier, " & _
                "parametres.PA_VAL_TEXTE AS Contrat, " & _
                "SUM(journee_travail.JT_HEURES_JOUR + journee_travail.JT_HEURES_NUIT) AS Heures " & _
                "FROM(equipe, lien_personne_equipe, personnel, journee_travail, contrat, parametres) " & _
                "WHERE equipe.EQ_ID = lien_personne_equipe.EQ_ID AND lien_personne_equipe.PE_ID = personnel.PE_ID " & _
                "AND equipe.EQ_ID = journee_travail.EQ_ID AND personnel.PE_ID = journee_travail.PE_ID " & _
                "AND (equipe.EQ_ID = " & eq_id & ") " & _
                "AND (contrat.pe_id = personnel.pe_id) " & _
                "AND (parametres.pa_nom = 'TYPE') AND (parametres.pa_id = contrat.ct_type) " & _
                "AND journee_travail.jt_date >='" & debut.ToString("yyyy-MM-dd 00:00:00") & "' AND journee_travail.jt_date <='" & fin.ToString("yyyy-MM-dd 00:00:00") & "' " & _
                "GROUP BY personnel.PE_ID"

        Data = DataLayer.executeSQL(query, "personnel")

        Dim doc As XmlDocument = XMLLayer.Middleware(Data)

        XMLLayer.SetInformations(doc, "Ollioules", "2006", TimeLayer.cherche_numero_semaine(Jour), "Totaux horaire pour l'équipe " & DataTeam.Tables("equipe").Rows(0).Item("Eq_NOM") & " du " & debut & " au " & fin)
        XMLLayer.SetGraphique(doc, "circulaire", 0, 2, "Heures travaillées")
        XMLLayer.SetGraphique(doc, "histogramme", 0, 3, "CEX")
        XMLLayer.SetTotaux(doc)

        Return doc

    End Function

XReport.XMLDocument = VueEquipe... (....)

Conclusion :


Il y a un readme dans le ZIP, pour ttes questions, n'hésitez pas

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.