Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

UTILISATION DES DATATABLES ET L'AFFICHAGE DU CONTENU DANS UNE PAGE ASPX


Information sur la source

Catégorie :Administration Source .NET ( DotNet ) Classé sous : DataTable, TableAdapter, HtmlTableCell Niveau : Débutant Date de création : 13/04/2008 Date de mise à jour : 14/04/2008 13:40:36 Vu : 6 308

Note :
Aucune note

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

Description

Le code source charge une DataTabe depuis une DataSet
puis j'affiche le contenue dans une page web sous forme de bande qui décris une durée en terme de temps.
 

Source

  • using System;
  • using System.Data;
  • using System.Configuration;
  • using System.Web;
  • using System.Web.Security;
  • using System.Web.UI;
  • using System.Web.UI.WebControls;
  • using System.Web.UI.WebControls.WebParts;
  • using System.Web.UI.HtmlControls;
  • using EMIRapportDataSetTableAdapters;
  • /// <summary>
  • /// ClassName:MarketingClass
  • /// Release Date:21/12/2007
  • /// Description:Classe pour le traittement de la partie Marketing
  • /// </summary>
  • public class MarketingClass
  • {
  • private string DetailsTypeCode; //Code de l'entity Details;
  • private string MarketingTypeCode; //Code de l'entity marketing dans le CRM
  • private Int32 NbRows; //Nombre de Ligne dans le DataTabe des Marketing
  • private DateTime DateDeb; //Date début d'un enregistrement Marketing
  • private DateTime DateFin; //Date fin d'un enregistrement Marketing
  • private string StringDateDeb;
  • private string StringDateFin;
  • private Int32 Nbs = 0; //Nombre de semaine Totale entre DateDeb et DateFin
  • private Int32 DebMois; //Le numero de Mois de la date de début
  • private Int32 FinMois; //Le numero de Mois de a date de fin
  • private Int32 DebSemaine; //Numero de la semaine de la date de début (Premiere semaine a partir de la quel on débute le déssin exemple:S1 de Mars)
  • private Int32 FinSemaine; //Numero de la semaine de la Date de fin (Derniere semaine exemple S3 de Juin)
  • private Guid Artist_Id; //Guid de l'artiste
  • private Guid Project_Id; //Guid de l'album
  • private Guid MarketingGuid; //CodeType de l'entity Marketing
  • private string MarketingTitle; //Titre d'un enregistrement Marketing
  • private string budget;
  • // private string Album;
  • int NumSDeb_Ann; //Numero de la semaine de début dans l'année
  • int NumSFin_Ann; //Numero de la semaine de fin dans l'année
  • int NumS1er_J_Deb_Ann; //numero de la semaine dans l'année de la premiere semaine dans un moi donnée(Pour la date de début)
  • int NumS1er_J_Fin_Ann; //numero de la semaine dans l'année de la premiere semaine dans un moi donnée(Pour la date de fin)
  • private DateClass DateC; //Attribut de la class Date pour les opération spécial de calcule des semaines...
  • // private HtmlTable[] TableOfWeek; //Tableau qui contient les ID des Tabeaux de semaine dans la page Aspx pour la partie Marketing
  • private ArtistClass ArtistC; //Attribut de type Artiste
  • private int TodayMonth; //Mois du jour courant
  • private int TodayWeek; //Lasemaine courante
  • private int TodayFirstWeek; //la semaine du 1er jour dans le mois courant
  • private int TodayNumWeek; //la semaine du jour en cours(de 1 à 4)
  • private DateTime Today; //la date d'aujoudhui
  • private MarketingTableAdapter MarketingTableAdapter; //Table Adapter qui contient les informations des enregistrements de Marketing
  • private EMIRapportDataSet.MarketingDataTable MarketingData;
  • #region Constructeur
  • /// <summary>
  • /// Constructeur
  • /// <returns>
  • /// None
  • /// </returns>
  • /// <param name="ArtistId">
  • /// Le Guid de L'artiste
  • /// </param>
  • /// <param name="ProjectId">
  • /// Le Guid de l'album
  • /// </param>
  • /// <param name="TypeIdMarketing">
  • /// le type code de l'entity Marketing
  • /// </param>
  • /// </summary>
  • public MarketingClass(string ArtistId, string ProjectId, string TypeIdMarketing, string DetailsTypeCode)
  • {
  • this.DetailsTypeCode = DetailsTypeCode;
  • this.MarketingTypeCode = TypeIdMarketing;
  • this.Artist_Id = new Guid(ArtistId);
  • this.Project_Id = new Guid(ProjectId);
  • this.ArtistC = new ArtistClass(ArtistId, ProjectId);
  • this.MarketingTableAdapter = new MarketingTableAdapter();
  • this.MarketingData = new EMIRapportDataSet.MarketingDataTable();
  • #region Création de la date d'aujourd'hui
  • this.DateC = new DateClass();
  • this.Today = DateTime.Today;
  • this.TodayMonth = Today.Month;
  • this.TodayWeek = DateC.NumeroSemaine(Today);
  • this.TodayFirstWeek=DateC.NumeroSemaine(Convert.ToDateTime("01" + Today.ToString().Remove(0, 2)));
  • this.TodayNumWeek = DateC.localiserSemaine(TodayFirstWeek, TodayWeek);
  • #endregion
  • try
  • {
  • MarketingTableAdapter.FillMarketingByArtistId_ProjectId(MarketingData, Project_Id, Artist_Id);
  • }
  • catch (Exception ex)
  • {
  • MessageBox.Show(ex.Message.ToString());
  • }
  • }
  • #endregion
  • #region Méthode pour la construction de la liste des Marketings
  • /// <summary>
  • /// Méthode pour la construction de la liste des Marketings
  • /// <returns>
  • /// Void
  • /// </returns>
  • /// <param name="T">
  • /// L'ID du Tableau Marketing Dans la page Aspx
  • /// </param>
  • /// <param name="TofWeek">
  • /// L'ID du Tableau des Weekend
  • /// </param>
  • /// </summary>
  • public void DisplayMarketingTable(HtmlTable T,HtmlTable[] TofWeek)
  • {
  • Int32 StarRow = 0; //Compteur qui parcoure le DataTable des Marketing
  • NbRows = MarketingData.Rows.Count; //Nombre de ligne dans la DataTable de MARKETING
  • #region Boucle qui parcoure le DataTable des Marketing et Lance l'affichage dans la page Aspx
  • for (StarRow = 0; StarRow < NbRows; StarRow++)
  • {
  • HtmlTableRow Maligne = new HtmlTableRow(); //Nouvelle ligne
  • HtmlTableCell MaCase = new HtmlTableCell(); //Nouvelle case
  • MaCase.Style.Add(HtmlTextWriterStyle.Color, "#3f4b68");
  • // MaCase.InnerText = MarketingData.Rows[StarRow].ItemArray[1].ToString(); //Affectation du texte d'un enregistrement Marketing dans la case
  • MaCase.InnerHtml = "&nbsp;<img src=\"ico_Arrow_R.gif\"/>"+" " + MarketingData.Rows[StarRow].ItemArray[1].ToString();
  • Maligne.Attributes.Add("id", string.Concat("Marke", StarRow));
  • Maligne.Cells.Add(MaCase);
  • Maligne.Style.Add(HtmlTextWriterStyle.FontStyle, "Tahoma, 10");
  • T.Rows.Add(Maligne);
  • MarketingGuid = new Guid(MarketingData.Rows[StarRow].ItemArray[0].ToString());
  • MarketingTitle = MarketingData.Rows[StarRow].ItemArray[1].ToString();
  • budget = MarketingData.Rows[StarRow].ItemArray[4].ToString();
  • //Date debut d'une Marketing
  • StringDateDeb = MarketingData.Rows[StarRow].ItemArray[3].ToString();
  • DateDeb = Convert.ToDateTime(MarketingData.Rows[StarRow].ItemArray[3].ToString());
  • //Date de Fin d'une Marketing
  • StringDateFin = MarketingData.Rows[StarRow].ItemArray[2].ToString();
  • DateFin = Convert.ToDateTime(MarketingData.Rows[StarRow].ItemArray[2].ToString());
  • //Mois de début
  • DebMois = DateDeb.Month;
  • //Mois de fin
  • FinMois = DateFin.Month;
  • #region Traittement de calcule de Nombre de semaine totale pour l'enregistrement en cours
  • NumSDeb_Ann = DateC.NumeroSemaine(DateDeb);
  • // MessageBox.Show("NumSDeb_Ann " + NumSDeb_Ann.ToString());
  • NumS1er_J_Deb_Ann = DateC.NumeroSemaine(Convert.ToDateTime("01" + DateDeb.ToString().Remove(0, 2)));
  • // MessageBox.Show("NumS1er_J_Deb_Ann " + NumS1er_J_Deb_Ann.ToString());
  • NumS1er_J_Fin_Ann = DateC.NumeroSemaine(Convert.ToDateTime("01" + DateFin.ToString().Remove(0, 2)));
  • NumSFin_Ann = DateC.NumeroSemaine(DateFin);
  • // MessageBox.Show("NumS1er_J_Fin_Ann " + NumS1er_J_Fin_Ann.ToString());
  • // MessageBox.Show("NumSFin_Ann " + NumSFin_Ann.ToString());
  • if (NumSFin_Ann < NumS1er_J_Fin_Ann)
  • {
  • NumSFin_Ann = NumS1er_J_Fin_Ann + 4;
  • }
  • Nbs = NumSFin_Ann - NumSDeb_Ann;
  • DebSemaine = DateC.localiserSemaine(NumS1er_J_Deb_Ann, NumSDeb_Ann);
  • //MessageBox.Show("DebSemaine " + DebSemaine.ToString());
  • FinSemaine = DateC.localiserSemaine(NumS1er_J_Fin_Ann, NumSFin_Ann);
  • // MessageBox.Show("FinSemaine " + FinSemaine.ToString());
  • #endregion
  • //Nbs = Nbs + 1;
  • // MessageBox.Show(Nbs.ToString());
  • //Appel a la fonction qui affiche une ligne de marketing
  • DisplayMarketingLigne(DebSemaine, FinSemaine, Nbs, DebMois-1 , FinMois-1 , MarketingGuid, TofWeek, StarRow,string.Concat("Marke",StarRow.ToString()));
  • }
  • #endregion
  • // Marketing
  • }
  • #endregion
  • #region Méthode pour la construction d'une ligne de Marketing
  • /// <summary>
  • /// Méthode pour la construction d'une ligne de Marketing
  • /// <returns>
  • /// Void
  • /// </returns>
  • /// <param name="SdebT">
  • /// Le numéro de la semaine de début de la ligne (de 1 à 4)
  • /// </param>
  • /// <param name="SfinT">
  • /// Le numéro de la semaine de Fin de la ligne (de 1 à 4)
  • /// </param>
  • /// <param name="NombreSemaine">
  • /// Nombre de semaine Totale entre SdebT et SfinT de la ligne
  • /// </param>
  • /// <param name="Moisdeb">
  • /// Mois de début de la ligne (de 1 à 12)
  • /// </param>
  • /// <param name="Moisfin">
  • /// Mois de début de la ligne (de 1 à 12)
  • /// </param>
  • /// <param name="IndexGuid">
  • /// Guid du Marketing en cours (Utilisée pour l'ouverture du formulaire CRM)
  • /// </param>
  • /// <param name="NumLigneCourante">
  • /// Numéro de ligne courante (Utilisée pour savoir la couleur choisie de ligne:Bleu ou bleu claire)
  • /// </param>
  • /// </summary>
  • private void DisplayMarketingLigne(Int32 SdebT, Int32 SfinT, Int32 NombreSemaine, Int32 Moisdeb, Int32 Moisfin, Guid IndexGuid,HtmlTable[] TofWeek,int NumLigneCourante,string Prefix)
  • {
  • Int32 IndexMois = 0;
  • Int32 K;
  • //MessageBox.Show(Moisdeb.ToString());
  • #region Parcourir les Mois avant le Mois de début
  • for (K = 0; K < Moisdeb; K++)
  • {
  • //MessageBox.Show("Avant");
  • if (K == (TodayMonth - 1))
  • {
  • PutCellsIntoTableEmpty(TofWeek[K], true,K,Prefix);
  • }
  • else
  • {
  • PutCellsIntoTableEmpty(TofWeek[K], false, K, Prefix);
  • }
  • }
  • #endregion
  • #region Parcourir les mois concerner(les mois coloré)
  • for (IndexMois = Moisdeb; IndexMois <= Moisfin; IndexMois++)
  • {
  • // MessageBox.Show(IndexMois.ToString());
  • if (IndexMois == Moisdeb && NombreSemaine >= 4)
  • {
  • //MessageBox.Show("H1");
  • if (IndexMois == (TodayMonth - 1))
  • {
  • PutCellsIntoTable(TofWeek[IndexMois], SdebT, 4, IndexGuid, NumLigneCourante, true,IndexMois, Prefix);
  • }
  • else
  • {
  • PutCellsIntoTable(TofWeek[IndexMois], SdebT, 4, IndexGuid, NumLigneCourante, false, IndexMois, Prefix);
  • }
  • }
  • else if (IndexMois == Moisdeb && NombreSemaine < 4)
  • {
  • // MessageBox.Show("H1");
  • if (IndexMois == (TodayMonth - 1))
  • {
  • PutCellsIntoTable(TofWeek[IndexMois], SdebT, SfinT, IndexGuid, NumLigneCourante, true, IndexMois, Prefix);
  • }
  • else
  • {
  • PutCellsIntoTable(TofWeek[IndexMois], SdebT, SfinT, IndexGuid, NumLigneCourante, false, IndexMois, Prefix);
  • }
  • }
  • if (IndexMois > Moisdeb && IndexMois < Moisfin)
  • {
  • if (IndexMois == TodayMonth - 1)
  • {
  • PutCellsIntoTable(TofWeek[IndexMois], 1, 4, IndexGuid, NumLigneCourante, true, IndexMois, Prefix);
  • }
  • else
  • {
  • PutCellsIntoTable(TofWeek[IndexMois], 1, 4, IndexGuid, NumLigneCourante, false, IndexMois, Prefix);
  • }
  • }
  • if (IndexMois == Moisfin && Moisdeb!=Moisfin)
  • {
  • if (IndexMois == TodayMonth - 1)
  • {
  • PutCellsIntoTable(TofWeek[IndexMois], 1, SfinT, IndexGuid, NumLigneCourante, true, IndexMois, Prefix);
  • }
  • else
  • {
  • PutCellsIntoTable(TofWeek[IndexMois], 1, SfinT, IndexGuid, NumLigneCourante, false, IndexMois, Prefix);
  • }
  • }
  • }
  • #endregion
  • #region Parcourir les mois aprés le mois de fin
  • for (K = Moisfin + 1; K <= 11; K++)
  • {
  • if (K == (TodayMonth - 1))
  • {
  • PutCellsIntoTableEmpty(TofWeek[K], true, K, Prefix);
  • }
  • else
  • {
  • PutCellsIntoTableEmpty(TofWeek[K], false, K, Prefix);
  • }
  • }
  • #endregion
  • }
  • #endregion
  • #region Méthode qui remplie les cellules des mois vide
  • /// <summary>
  • /// Méthode qui remplie les cellules des mois vide
  • /// <returns>
  • /// Void
  • /// </returns>
  • /// <param name="T">
  • /// L'ID du Tableau de semaine dans la page Aspx
  • /// </param>
  • /// <param name="ToDayM">
  • /// True si le Tableau de semaine (T) appartient au mois de la date d'aujourd'hui si non false
  • /// </param>
  • /// </summary>
  • protected void PutCellsIntoTableEmpty(HtmlTable T,bool ToDayM,int NumDetailMois,string Prefix)
  • {
  • HtmlTableRow Maligne = new HtmlTableRow();
  • for (Int32 i = 0; i < 4; i++)
  • {
  • #region Création d'une cellule qui contient la date d'aujourd'hui si le numéro de week = i
  • if (ToDayM == true && (i==(TodayNumWeek-1)))
  • {
  • HtmlTableCell MaCase = new HtmlTableCell();
  • MaCase.Style.Add(HtmlTextWriterStyle.Color, "#dd0000");
  • MaCase.InnerText = "|";
  • Maligne.Cells.Add(MaCase);
  • MaCase.Attributes.Add("onMouseOver", "InfoBulleToDay()");
  • }
  • #endregion
  • #region Création d'une cellule normale
  • else
  • {
  • HtmlTableCell MaCase = new HtmlTableCell();
  • MaCase.Style.Add(HtmlTextWriterStyle.Color, "#eef0f6");
  • MaCase.InnerText = "-";
  • Maligne.Cells.Add(MaCase);
  • }
  • #endregion
  • }
  • Maligne.Attributes.Add("id", string.Concat(Prefix, NumDetailMois));
  • T.Rows.Add(Maligne);
  • }
  • #endregion
  • #region Méthode qui remplie les cellules dans un Tableau de semaine qui appartient a un mois donnée
  • /// <summary>
  • /// Méthode qui remplie les cellules dans un Tableau de semaine qui appartient a un mois donnée
  • /// <returns>
  • /// Void
  • /// </returns>
  • /// <param name="T">
  • /// L'ID du Tableau de semaine d'un mois donnée dans la page Aspx
  • /// </param>
  • /// <param name="Sdeb">
  • /// Numéro de la semaine de début (1 à 4)
  • /// </param>
  • /// <param name="Sfin">
  • /// Numéro de la semaine de fin (1 à 4)
  • /// </param>
  • /// <param name="IndexGUID">
  • /// Guid de l'enregistrement Marketing,Utiliser pour l'ouverture du formulaire CRM aprés le OnClick sur une cellule
  • /// </param>
  • /// <param name="NumLigneCourante">
  • /// Numéro de la ligne en cours,utiliser pour différencier les ligne en bleu ou bleu claire
  • /// </param>
  • /// <param name="ToDayM">
  • /// True si T apprtient a un mois de la date d'aujourd'hui si non False
  • /// </param>
  • /// </summary>
  • protected void PutCellsIntoTable(HtmlTable T, Int32 Sdeb, Int32 Sfin, Guid IndexGUID, int NumLigneCourante, bool ToDayM,int NumDetailMois,string Prefix)
  • {
  • HtmlTableRow Maligne = new HtmlTableRow();
  • Int32 D;
  • Int32 i = 0;
  • int FolowToDayWeek=0;
  • string Titre = "Marketing";
  • string IntervalDate = "Du "+StringDateDeb+ " au " +StringDateFin;
  • string Budget = budget + " Euro";
  • string Album = ArtistC.GetAlbum(); ;
  • #region Afficher les Cellules vide qui se trouve avant la semaine de début
  • D = (Sfin - Sdeb) +1;
  • //MessageBox.Show(D.ToString());
  • for (i = 0; i < Sdeb - 1; i++)
  • {
  • HtmlTableCell MaCase = new HtmlTableCell();
  • if (ToDayM == true && (i == (TodayNumWeek-1)))
  • {
  • MaCase.Style.Add(HtmlTextWriterStyle.Color, "#dd0000");
  • MaCase.InnerText = "|";
  • MaCase.Attributes.Add("onMouseOver", "InfoBulleToDay()");
  • }
  • else
  • {
  • MaCase.Style.Add(HtmlTextWriterStyle.Color, "#e3e3e3");
  • MaCase.InnerText = "-";
  • }
  • Maligne.Attributes.Add("id", string.Concat(Prefix, NumDetailMois));
  • Maligne.Cells.Add(MaCase);
  • }
  • #endregion
  • FolowToDayWeek = i;
  • T.Rows.Add(Maligne);
  • #region Afficher les Cellules qui contiennent de l'information
  • for (i = 0; i < D; i++)
  • {
  • HtmlTableCell MaCase = new HtmlTableCell();
  • HtmlTable Macase1 = new HtmlTable();
  • Maligne.Attributes.Add("id", string.Concat(Prefix, NumDetailMois));
  • Maligne.Attributes.Add("OnClick", "FormulaireCRM('" + IndexGUID.ToString() + "','" + MarketingTypeCode + "','" + DetailsTypeCode + "','" + Artist_Id.ToString() + "','" + Project_Id.ToString() + "')");
  • Maligne.Attributes.Add("onMouseOver", "InfoBulle('" + Titre + "','" + MarketingTitle + "','" + IntervalDate + "','" + Budget + "','" + Album + "')");
  • if (NumLigneCourante % 2 == 0)
  • {
  • MaCase.BgColor = "#749eff";
  • MaCase.Style.Add(HtmlTextWriterStyle.Color, "#749eff");
  • }
  • else
  • {
  • MaCase.BgColor = "#99ccff";
  • MaCase.Style.Add(HtmlTextWriterStyle.Color, "#99ccff");
  • }
  • if (ToDayM == true && (FolowToDayWeek == (TodayNumWeek - 1)))
  • {
  • //MessageBox.Show("TodayNumWeek-2 " + TodayNumWeek.ToString());
  • MaCase.Style.Add(HtmlTextWriterStyle.Color, "#dd0000");
  • MaCase.InnerText = "|";
  • MaCase.Attributes.Add("onMouseOver", "InfoBulleToDay()");
  • Maligne.Cells.Add(MaCase);
  • }
  • else
  • {
  • MaCase.InnerText = "-";
  • //MaCase.InnerHtml = "<table ><tr><td style=\"background-color:Red\"/>-</td></tr></table>";
  • Maligne.Cells.Add(MaCase);
  • }
  • FolowToDayWeek++;
  • }
  • #endregion
  • FolowToDayWeek = FolowToDayWeek + i;
  • T.Rows.Add(Maligne);
  • #region Afficher les cellules vide qui se trouve aprés la semaime de fin
  • for (i = 0; i < (4 - Sfin); i++)
  • {
  • HtmlTableCell MaCase = new HtmlTableCell();
  • if (ToDayM == true && (FolowToDayWeek == (TodayNumWeek - 1)))
  • {
  • MaCase.Style.Add(HtmlTextWriterStyle.Color, "#dd0000");
  • MaCase.InnerText = "|";
  • MaCase.Attributes.Add("onMouseOver", "InfoBulleToDay()");
  • }
  • else
  • {
  • MaCase.Style.Add(HtmlTextWriterStyle.Color, "#e3e3e3");
  • MaCase.InnerText = "-";
  • }
  • Maligne.Cells.Add(MaCase);
  • Maligne.Attributes.Add("id", string.Concat(Prefix, NumDetailMois));
  • FolowToDayWeek++;
  • }
  • #endregion
  • T.Rows.Add(Maligne);
  • }
  • #endregion
  • public int GetMarketingRowsNember()
  • {
  • return NbRows;
  • }
  • }
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using EMIRapportDataSetTableAdapters;

/// <summary>
/// ClassName:MarketingClass
/// Release Date:21/12/2007
/// Description:Classe pour le traittement de la partie Marketing
/// </summary>
public class MarketingClass
{
    private string DetailsTypeCode;    //Code de l'entity Details;
    private string MarketingTypeCode;  //Code de l'entity marketing dans le CRM
    private Int32 NbRows;      //Nombre de Ligne dans le DataTabe des Marketing
    private DateTime DateDeb;  //Date début d'un enregistrement Marketing
    private DateTime DateFin;  //Date fin d'un enregistrement Marketing
    private string StringDateDeb;
    private string StringDateFin;
    private Int32 Nbs = 0;     //Nombre de semaine Totale entre DateDeb et DateFin
    private Int32 DebMois;     //Le numero de Mois de la date de début
    private Int32 FinMois;     //Le numero de Mois de a date de fin
    private Int32 DebSemaine;  //Numero de la semaine de la date de début (Premiere semaine a partir de la quel on débute le déssin exemple:S1 de Mars)
    private Int32 FinSemaine;  //Numero de la semaine de la Date de fin (Derniere semaine exemple S3 de Juin)
    private Guid Artist_Id;    //Guid de l'artiste 
    private Guid Project_Id;   //Guid de l'album
    private Guid MarketingGuid; //CodeType de l'entity Marketing
    private string MarketingTitle;  //Titre d'un enregistrement Marketing
    private string budget;
   // private string Album;
    int NumSDeb_Ann;         //Numero  de la semaine de début dans l'année
    int NumSFin_Ann;         //Numero de la semaine de fin dans l'année
    int NumS1er_J_Deb_Ann;   //numero de la semaine dans l'année de la premiere semaine dans un moi donnée(Pour la date de début)
    int NumS1er_J_Fin_Ann;   //numero de la semaine dans l'année de la premiere semaine dans un moi donnée(Pour la date de fin)
    private DateClass DateC;  //Attribut de la class Date pour les opération spécial de calcule des semaines...
   // private HtmlTable[] TableOfWeek;   //Tableau qui contient les ID des Tabeaux de semaine dans la page Aspx pour la partie Marketing
    private ArtistClass ArtistC;       //Attribut de type Artiste 
    private int TodayMonth;            //Mois du jour courant
    private int TodayWeek;             //Lasemaine courante
    private int TodayFirstWeek;        //la semaine du 1er jour dans le mois courant
    private int TodayNumWeek;          //la semaine du jour en cours(de 1 à 4)
    private DateTime Today;            //la date d'aujoudhui
    
    private MarketingTableAdapter MarketingTableAdapter;     //Table Adapter qui contient les informations des enregistrements de Marketing
    private EMIRapportDataSet.MarketingDataTable MarketingData;

    #region Constructeur
    /// <summary>
    /// Constructeur
    /// <returns>
    ///  None
    /// </returns>
    /// <param name="ArtistId">
    /// Le Guid de L'artiste
    /// </param>
    /// <param name="ProjectId">
    /// Le Guid de l'album
    /// </param>
    /// <param name="TypeIdMarketing">
    /// le type code de l'entity Marketing
    /// </param>
    /// </summary>
    public MarketingClass(string ArtistId, string ProjectId, string TypeIdMarketing, string DetailsTypeCode)
	{
        this.DetailsTypeCode = DetailsTypeCode;
        this.MarketingTypeCode = TypeIdMarketing;
        this.Artist_Id = new Guid(ArtistId);
        this.Project_Id = new Guid(ProjectId);
        this.ArtistC = new ArtistClass(ArtistId, ProjectId);
        this.MarketingTableAdapter = new MarketingTableAdapter();
        this.MarketingData = new EMIRapportDataSet.MarketingDataTable();

        #region Création de la date d'aujourd'hui
        this.DateC = new DateClass();
        this.Today = DateTime.Today;
        this.TodayMonth = Today.Month;
        this.TodayWeek = DateC.NumeroSemaine(Today);
        this.TodayFirstWeek=DateC.NumeroSemaine(Convert.ToDateTime("01" + Today.ToString().Remove(0, 2)));
        this.TodayNumWeek = DateC.localiserSemaine(TodayFirstWeek, TodayWeek);
        #endregion

        try
        {
            MarketingTableAdapter.FillMarketingByArtistId_ProjectId(MarketingData, Project_Id, Artist_Id);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message.ToString());
        }
    }
    #endregion

    #region Méthode pour la construction de la liste des Marketings
    /// <summary>
    /// Méthode pour la construction de la liste des Marketings
    /// <returns>
    ///  Void
    /// </returns>
    /// <param name="T">
    /// L'ID du Tableau Marketing Dans la page Aspx
    /// </param>
    /// <param name="TofWeek">
    /// L'ID du Tableau des Weekend
    /// </param>
    /// </summary>
    public void DisplayMarketingTable(HtmlTable T,HtmlTable[] TofWeek)
    {
        
        Int32 StarRow = 0;                   //Compteur qui parcoure le DataTable des Marketing

        NbRows = MarketingData.Rows.Count;  //Nombre de ligne dans la DataTable de MARKETING

        #region Boucle qui parcoure le DataTable des Marketing et Lance l'affichage dans la page Aspx
        for (StarRow = 0; StarRow < NbRows; StarRow++)
        {
            HtmlTableRow Maligne = new HtmlTableRow();  //Nouvelle ligne
            HtmlTableCell MaCase = new HtmlTableCell(); //Nouvelle case
            MaCase.Style.Add(HtmlTextWriterStyle.Color, "#3f4b68");  
           // MaCase.InnerText = MarketingData.Rows[StarRow].ItemArray[1].ToString(); //Affectation du texte d'un enregistrement Marketing dans la case

            MaCase.InnerHtml = "&nbsp;<img src=\"ico_Arrow_R.gif\"/>"+" " + MarketingData.Rows[StarRow].ItemArray[1].ToString();
            Maligne.Attributes.Add("id", string.Concat("Marke", StarRow));

            Maligne.Cells.Add(MaCase);
            Maligne.Style.Add(HtmlTextWriterStyle.FontStyle, "Tahoma, 10");
            T.Rows.Add(Maligne);
            MarketingGuid = new  Guid(MarketingData.Rows[StarRow].ItemArray[0].ToString());
            MarketingTitle =  MarketingData.Rows[StarRow].ItemArray[1].ToString();
            budget =  MarketingData.Rows[StarRow].ItemArray[4].ToString();
            
            //Date debut d'une Marketing
            StringDateDeb = MarketingData.Rows[StarRow].ItemArray[3].ToString();
            
            DateDeb = Convert.ToDateTime(MarketingData.Rows[StarRow].ItemArray[3].ToString());

            //Date de Fin d'une Marketing
            StringDateFin = MarketingData.Rows[StarRow].ItemArray[2].ToString();
            DateFin = Convert.ToDateTime(MarketingData.Rows[StarRow].ItemArray[2].ToString());
            
            //Mois de début
            DebMois = DateDeb.Month;
            //Mois de fin
            FinMois = DateFin.Month;

            #region Traittement de calcule de Nombre de semaine totale pour l'enregistrement en cours
            NumSDeb_Ann = DateC.NumeroSemaine(DateDeb);
           // MessageBox.Show("NumSDeb_Ann " + NumSDeb_Ann.ToString());
            NumS1er_J_Deb_Ann = DateC.NumeroSemaine(Convert.ToDateTime("01" + DateDeb.ToString().Remove(0, 2)));
           // MessageBox.Show("NumS1er_J_Deb_Ann " + NumS1er_J_Deb_Ann.ToString());
            NumS1er_J_Fin_Ann = DateC.NumeroSemaine(Convert.ToDateTime("01" + DateFin.ToString().Remove(0, 2)));

            NumSFin_Ann = DateC.NumeroSemaine(DateFin);
          //  MessageBox.Show("NumS1er_J_Fin_Ann " + NumS1er_J_Fin_Ann.ToString());
          //  MessageBox.Show("NumSFin_Ann " + NumSFin_Ann.ToString());
            
           
            if (NumSFin_Ann < NumS1er_J_Fin_Ann)
            {
                NumSFin_Ann = NumS1er_J_Fin_Ann + 4;
            }
            Nbs = NumSFin_Ann - NumSDeb_Ann;
            DebSemaine = DateC.localiserSemaine(NumS1er_J_Deb_Ann, NumSDeb_Ann);
            //MessageBox.Show("DebSemaine " + DebSemaine.ToString());
            
            FinSemaine = DateC.localiserSemaine(NumS1er_J_Fin_Ann, NumSFin_Ann);
           // MessageBox.Show("FinSemaine " + FinSemaine.ToString());
            
            #endregion
            
            //Nbs = Nbs + 1;
           // MessageBox.Show(Nbs.ToString());
            //Appel a la fonction qui affiche une ligne de marketing
            DisplayMarketingLigne(DebSemaine, FinSemaine, Nbs, DebMois-1 , FinMois-1 , MarketingGuid, TofWeek, StarRow,string.Concat("Marke",StarRow.ToString()));
        }
        #endregion
       // Marketing
    }
    #endregion

    #region Méthode pour la construction d'une ligne de Marketing
    /// <summary>
    /// Méthode pour la construction d'une ligne de Marketing
    /// <returns>
    ///  Void
    /// </returns>
    /// <param name="SdebT">
    /// Le numéro de la semaine de début de la ligne (de 1 à 4)
    /// </param>
    /// <param name="SfinT">
    ///  Le numéro de la semaine de Fin de la ligne (de 1 à 4)
    /// </param>
    /// <param name="NombreSemaine">
    /// Nombre de semaine Totale entre SdebT et SfinT de la ligne
    /// </param>
    /// <param name="Moisdeb">
    /// Mois de début de la ligne (de 1 à 12)
    /// </param>
    /// <param name="Moisfin">
    /// Mois de début de la ligne (de 1 à 12)
    /// </param>
    /// <param name="IndexGuid">
    /// Guid du Marketing en cours (Utilisée pour l'ouverture du formulaire CRM)
    /// </param>
    /// <param name="NumLigneCourante">
    /// Numéro de ligne courante (Utilisée pour savoir la couleur choisie de ligne:Bleu ou bleu claire)
    /// </param>
    /// </summary>
    private void DisplayMarketingLigne(Int32 SdebT, Int32 SfinT, Int32 NombreSemaine, Int32 Moisdeb, Int32 Moisfin, Guid IndexGuid,HtmlTable[] TofWeek,int NumLigneCourante,string Prefix)
    {
        Int32 IndexMois = 0;
        Int32 K;
        //MessageBox.Show(Moisdeb.ToString());
        #region Parcourir les Mois avant le Mois de début
        for (K = 0; K < Moisdeb; K++)
        {
            //MessageBox.Show("Avant");
            if (K == (TodayMonth - 1))
            {
                PutCellsIntoTableEmpty(TofWeek[K], true,K,Prefix);
            }
            else
            {
                PutCellsIntoTableEmpty(TofWeek[K], false, K, Prefix);
            }
        }
        #endregion

        #region Parcourir les mois concerner(les mois coloré)
        for (IndexMois = Moisdeb; IndexMois <= Moisfin; IndexMois++)
        {
           // MessageBox.Show(IndexMois.ToString());
            if (IndexMois == Moisdeb && NombreSemaine >= 4)
            {
                //MessageBox.Show("H1");
                if (IndexMois == (TodayMonth - 1))
                {
                    PutCellsIntoTable(TofWeek[IndexMois], SdebT, 4, IndexGuid, NumLigneCourante, true,IndexMois, Prefix);
                }
                else
                {
                    PutCellsIntoTable(TofWeek[IndexMois], SdebT, 4, IndexGuid, NumLigneCourante, false, IndexMois, Prefix);
                }

            }
            else if (IndexMois == Moisdeb && NombreSemaine < 4)
            {
               // MessageBox.Show("H1");
                if (IndexMois == (TodayMonth - 1))
                {
                    PutCellsIntoTable(TofWeek[IndexMois], SdebT, SfinT, IndexGuid, NumLigneCourante, true, IndexMois, Prefix);
                }
                else
                {
                    PutCellsIntoTable(TofWeek[IndexMois], SdebT, SfinT, IndexGuid, NumLigneCourante, false, IndexMois, Prefix);
                }

            }

            if (IndexMois > Moisdeb && IndexMois < Moisfin)
            {
                if (IndexMois == TodayMonth - 1)
                {
                    PutCellsIntoTable(TofWeek[IndexMois], 1, 4, IndexGuid, NumLigneCourante, true, IndexMois, Prefix);

                }
                else
                {
                    PutCellsIntoTable(TofWeek[IndexMois], 1, 4, IndexGuid, NumLigneCourante, false, IndexMois, Prefix);

                }
            }
            if (IndexMois == Moisfin && Moisdeb!=Moisfin)
            {
                if (IndexMois == TodayMonth - 1)
                {
                    PutCellsIntoTable(TofWeek[IndexMois], 1, SfinT, IndexGuid, NumLigneCourante, true, IndexMois, Prefix);

                }
                else
                {
                    PutCellsIntoTable(TofWeek[IndexMois], 1, SfinT, IndexGuid, NumLigneCourante, false, IndexMois, Prefix);

                }

            }
        }
        #endregion

        #region Parcourir les mois aprés le mois de fin
        for (K = Moisfin + 1; K <= 11; K++)
        {
            if (K == (TodayMonth - 1))
            {
                PutCellsIntoTableEmpty(TofWeek[K], true, K, Prefix);
            }
            else
            {
                PutCellsIntoTableEmpty(TofWeek[K], false, K, Prefix);
            }
        }
        #endregion
    }
    #endregion

    #region Méthode qui remplie les cellules des mois vide
    /// <summary>
    /// Méthode qui remplie les cellules des mois vide
    /// <returns>
    ///  Void
    /// </returns>
    /// <param name="T">
    /// L'ID du Tableau de semaine dans la page Aspx
    /// </param>
    /// <param name="ToDayM">
    ///  True si le Tableau de semaine (T) appartient au mois de la date d'aujourd'hui si non false
    /// </param>
    /// </summary>
    protected void PutCellsIntoTableEmpty(HtmlTable T,bool ToDayM,int NumDetailMois,string Prefix)
    {
        HtmlTableRow Maligne = new HtmlTableRow();
        for (Int32 i = 0; i < 4; i++)
        {
            #region Création d'une cellule qui contient la date d'aujourd'hui si le numéro de week = i
            if (ToDayM == true && (i==(TodayNumWeek-1)))
            {
                HtmlTableCell MaCase = new HtmlTableCell();
                MaCase.Style.Add(HtmlTextWriterStyle.Color, "#dd0000");
                MaCase.InnerText = "|";
                Maligne.Cells.Add(MaCase);
                MaCase.Attributes.Add("onMouseOver", "InfoBulleToDay()");
            }
            #endregion

            #region Création d'une cellule normale
            else
            {
                HtmlTableCell MaCase = new HtmlTableCell();
                MaCase.Style.Add(HtmlTextWriterStyle.Color, "#eef0f6");
                MaCase.InnerText = "-";
                Maligne.Cells.Add(MaCase);
            }
            #endregion

        }
        Maligne.Attributes.Add("id", string.Concat(Prefix, NumDetailMois));
        T.Rows.Add(Maligne);
    }
    #endregion

    #region Méthode qui remplie les cellules dans un Tableau de semaine qui appartient a un mois donnée
    /// <summary>
    /// Méthode qui remplie les cellules dans un Tableau de semaine qui appartient a un mois donnée
    /// <returns>
    ///  Void
    /// </returns>
    /// <param name="T">
    /// L'ID du Tableau de semaine d'un mois donnée dans la page Aspx
    /// </param>
    /// <param name="Sdeb">
    ///  Numéro de la semaine de début (1 à 4)
    /// </param>
    /// <param name="Sfin">
    /// Numéro de la semaine de fin (1 à 4)
    /// </param>
    /// <param name="IndexGUID">
    /// Guid de l'enregistrement Marketing,Utiliser pour l'ouverture du formulaire CRM aprés le OnClick sur une cellule
    /// </param>
    /// <param name="NumLigneCourante">
    /// Numéro de la ligne en cours,utiliser pour différencier les ligne en bleu ou bleu claire
    /// </param>
    /// <param name="ToDayM">
    /// True si T apprtient a un mois de la date d'aujourd'hui si non False
    /// </param>
    /// </summary>
    protected void PutCellsIntoTable(HtmlTable T, Int32 Sdeb, Int32 Sfin, Guid IndexGUID, int NumLigneCourante, bool ToDayM,int NumDetailMois,string Prefix)
    {
        HtmlTableRow Maligne = new HtmlTableRow();
        Int32 D;
        Int32 i = 0;
        int FolowToDayWeek=0;
        string Titre = "Marketing";
        string IntervalDate = "Du "+StringDateDeb+ " au " +StringDateFin;
        string Budget = budget + " Euro";
        string Album = ArtistC.GetAlbum(); ;


#region Afficher les Cellules vide qui se trouve avant la semaine de début
        D = (Sfin - Sdeb) +1;
        //MessageBox.Show(D.ToString());
        for (i = 0; i < Sdeb - 1; i++)
        {
            HtmlTableCell MaCase = new HtmlTableCell();
            if (ToDayM == true && (i == (TodayNumWeek-1)))
            {
                MaCase.Style.Add(HtmlTextWriterStyle.Color, "#dd0000");
                MaCase.InnerText = "|";
                MaCase.Attributes.Add("onMouseOver", "InfoBulleToDay()");
            }
            else
            {
                MaCase.Style.Add(HtmlTextWriterStyle.Color, "#e3e3e3");
                MaCase.InnerText = "-";
            }
            Maligne.Attributes.Add("id", string.Concat(Prefix, NumDetailMois));
            Maligne.Cells.Add(MaCase);
        }
#endregion

        FolowToDayWeek = i;
        T.Rows.Add(Maligne);

#region Afficher les Cellules qui contiennent de l'information
        for (i = 0; i < D; i++)
        {
            HtmlTableCell MaCase = new HtmlTableCell();
            HtmlTable Macase1 = new HtmlTable();
            Maligne.Attributes.Add("id", string.Concat(Prefix, NumDetailMois));
            Maligne.Attributes.Add("OnClick", "FormulaireCRM('" + IndexGUID.ToString() + "','" + MarketingTypeCode + "','" + DetailsTypeCode + "','" + Artist_Id.ToString() + "','" + Project_Id.ToString() + "')");
            Maligne.Attributes.Add("onMouseOver", "InfoBulle('" + Titre + "','" + MarketingTitle + "','" + IntervalDate + "','" + Budget + "','" + Album + "')");
            if (NumLigneCourante % 2 == 0)
            {
                MaCase.BgColor = "#749eff";
                MaCase.Style.Add(HtmlTextWriterStyle.Color, "#749eff");
            }
            else
            {
                MaCase.BgColor = "#99ccff";
                MaCase.Style.Add(HtmlTextWriterStyle.Color, "#99ccff");
            }

            if (ToDayM == true && (FolowToDayWeek == (TodayNumWeek - 1)))
            {
                //MessageBox.Show("TodayNumWeek-2 " + TodayNumWeek.ToString());
                MaCase.Style.Add(HtmlTextWriterStyle.Color, "#dd0000");
                MaCase.InnerText = "|";
                MaCase.Attributes.Add("onMouseOver", "InfoBulleToDay()");
                Maligne.Cells.Add(MaCase);
            }
            else
            {
                MaCase.InnerText = "-";
                //MaCase.InnerHtml = "<table ><tr><td style=\"background-color:Red\"/>-</td></tr></table>";
                Maligne.Cells.Add(MaCase);
            }
            FolowToDayWeek++;
        }
#endregion


        FolowToDayWeek = FolowToDayWeek + i;
        T.Rows.Add(Maligne);

#region Afficher les cellules vide qui se trouve aprés la semaime de fin
        for (i = 0; i < (4 - Sfin); i++)
        {
            HtmlTableCell MaCase = new HtmlTableCell();
            if (ToDayM == true && (FolowToDayWeek == (TodayNumWeek - 1)))
            {
                MaCase.Style.Add(HtmlTextWriterStyle.Color, "#dd0000");
                MaCase.InnerText = "|";
                MaCase.Attributes.Add("onMouseOver", "InfoBulleToDay()");
            }
            else
            {
                MaCase.Style.Add(HtmlTextWriterStyle.Color, "#e3e3e3");
                MaCase.InnerText = "-";
            }

            Maligne.Cells.Add(MaCase);
            Maligne.Attributes.Add("id", string.Concat(Prefix, NumDetailMois));
            FolowToDayWeek++;
        }
#endregion
        T.Rows.Add(Maligne);
    }
    #endregion

    public int GetMarketingRowsNember()
    {
        return NbRows;
    }
}

Commentaires et avis

signaler à un administrateur
Commentaire de jesusonline le 14/04/2008 13:40:12 administrateur CS

Pourquoi construire un HtmlTable de cette façon ? Pourquoi ne pas utiliser un gridview ?
Pour moi c'est plus un exemple de ce qu'il ne faut pas faire plutot que de ce qu'il faut faire.

PS : merci de mettre une description plus complète de ta source

signaler à un administrateur
Commentaire de danious le 16/04/2008 16:37:16

Je suis du même avis. En plus, en enlevant les lignes de code commentées inutiles, en utilisant mieux les classes générées avec les DataSet typés (comme EMIRapportDataSet.MarketingRow) et en compressant un peu les tests divers, on aurait un code 3 fois moins long et bien plus lisible. Et même avec ça, je ne vois toujours pas l'intérêt.

signaler à un administrateur
Commentaire de medclubiste le 21/04/2008 09:30:50

Je partage votre avis  en ce qui concerne la lisibilité du code mais je pense que ça peut etre utile en cas ou on veut que l'affichage des composant de notre page se fait dynamiquement on peut par exemple se baser sur ce code pour faire un formulaire dynamique qui  
prend ces champs a partir d'un base donnée .

signaler à un administrateur
Commentaire de moujib123 le 31/03/2009 20:17:05

bjour je veux savoir comment creér un interface avec ces codes sources en asp.net

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

DataSet,DataTable...pfff... [ par vbtom ] Salut,Bah je me met à ASP.Net et je doit bien avouer que tous ces DataSet,DataTables.... ca me lourde dpask jy comprend rien Donc si une ame charitabl DataTable [ par mwahid ] Comment faire pour savoir que la liqne X.il est supprimer DataTable et DataReader [ par marhoa ] Salut, J'utilise le code suivant pour intégrer des données dans un Repeater paginé (je ne veux afficher que 10 éléments à la fois), pour cela j'ai tro DataGrid et DataKey [ par drahcir ] Salut &#224; tous,j'ai un datatable avec une cl&#233; primaire qui est le datasource de mon datagrid. Je voudrais que la colonne contenant la cl&#233; Commnet Utiliser DataTable ???? ou Stocker temporairement les données ??? [ par arthur007 ] Bonjour le monde,Je dois faire une page web en ASP.Net qui permetera &#224; l'utilisateur de passer une commande. Cette commande peut etre&nbsp;consti Dataset et xml [ par sboutorine ] Bonjour, J'aimerais savoir comment il est possible de r&#233;cup&#233;rer une ou plusieurs lignes d'un datatable quand le champs &#224; interrog&#233; datagrid --> dataTable [ par elpens ] Bonjour,J'essaie de copier un dataGrid dans un dataTable. Comment puis-je procéder?Merci et bon aprem ElpenS Problème tableau dynamique html dans code behind [ par adressprov ] Bon, je ne savais pas trop dans quel section cela devait aller, je m'en excuse auprès des modos. Voici mon problème, je souhaiterais faire un tableau Ajouter un ligne dans une DataTable [ par elpens ] Bonjour,J'aimerai pouvoir insérer de nouvelles lignes dans un dataTable, en ayant la possibilité de définir à quelle ligne je veux l'ajouter.Sinon, de dataTable [ par bootchoz ] salut, je dois utiliser une fonction qui retourne un datatable, mais je n'arrive pas a l'afficher. quelle est la methode ?


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.