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
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.