Trouver une ressource
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
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 = " <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 = " <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;
}
}
Sources de la même categorie
Commentaires
Discussions en rapport avec ce code source
|
CalendriCode
| | | L | M | M | J | V | S | D |
| | | | 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 | |
|
|