protected void Page_Load(object sender, EventArgs e) { if (IsPostBack == false) { // Formulaire en mode Impression // AME14112009 if (Request.QueryString["print"] != null || Request.QueryString["excel"] != null) { ImageButtonPrint.Visible = false; PanelControlSats.Visible = false; PanelAide.Visible = false; } if (Request.QueryString["print"] != null) { QuestionnaireControlStatAll.ModePrint = true; TrBoutonRetour.Visible = true; } if (Request.QueryString["excel"] != null) { PanelBoutonControl.Visible = false; // En fait cela revient a changer l'extension html en .xls // c'est totalement bidon ! Response.ContentType = "application/vnd.ms-excel"; // Set the content type to Excel Response.Charset = ""; // Remove the charset from the Content-Type header Page.EnableViewState = false; // Sinon Excel de merde ne sait pas lire le fichier genere !!! // Il faut absolument cette meta dans la MasterPage Print sinon cela ne marche pas pour // Excel d'ailleur en positionnant Charset ici on ne retrouve rien dans la source !...? // <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> QuestionnaireControlStatAll.ModeExcel = true; } // Choisir le premier Questionnaire a la place de l'utilisateur if (SessionState.Questionnaire == null && SessionState.Questionnaires.Count > 0) { SessionState.Questionnaire = SessionState.Questionnaires[0]; } if (Request.QueryString["QuestionnaireID"] != null) { int questionnaireID = int.Parse(Request.QueryString["QuestionnaireID"]); SessionState.Questionnaire = SessionState.Questionnaires.FindByID(questionnaireID); } // Charger les votes pour ce Questionnaire if (SessionState.Questionnaire != null && Votes == null) { Votes = PollVoteCollection.GetPollVotesByQuestionnaireID(SessionState.Questionnaire.QuestionnaireID); Personnes = PersonneCollection.GetQuestionnaire(SessionState.Questionnaire.QuestionnaireID); initTableauVotesPersonnes(Personnes.Count, Personnes); LabelNombreContacts.Text = Personnes.Count.ToString(); } if (Request.QueryString["PollAnswerID"] != null) { PanelSousPopulation.Visible = true; Guid pollAnswerID = new Guid(Request.QueryString["PollAnswerID"].ToString()); // BUG25092009 Il ne faut ajouter 2 fois la meme reponse sinon il y a cumul // il faut eviter le cumul de PollAnswerID de Questions et de Reponses if (PollAnswerID.Contains(pollAnswerID) == false) { PollAnswerID.Add(pollAnswerID); // Trouver les votants if (Votes.Count > 0) { // Comme on a que pollAnswerID a notre disposition, pour trouver la question il faut // trouver la Reponses de pollAnswerID // trouver la Question de la Reponse PollAnswer pollAnswer = PollAnswerCollection.GetByPollAnswerID(pollAnswerID); PollQuestionCollection pollQuestionCollection = PollQuestionCollection.GetByQuestionnaire(SessionState.Questionnaire.QuestionnaireID); PollQuestion pollQuestion = pollQuestionCollection.FindByPollQuestionID(pollAnswer.PollQuestionId); // Cumuler les Reponses cliquees par l'utilisateur et les Questions Questions.Add(pollQuestion); Reponses.Add(pollAnswer); // BUB25092009 AfficherOnReponduATout(); } } // BUG25092009 il faut afficher tout ici if (Votes.Count > 0) { AfficherOnReponduATout(); } if (ListBoxQui.Items.Count <= 0) { ListBoxQui.Items.Add("Pas de vote"); ListBoxQui.Rows = 1; // On efface tout, sinon l'utilisateur est perdu // et les Questions et les reponses continuent de s'accumuler // et l'utilisateur ne voit rien EffacerSousPopulation(); } else { ListBoxQui.Rows = ListBoxQui.Items.Count <= 10 ? ListBoxQui.Items.Count : 10; LabelListBoxQuiCount.Text = ListBoxQui.Items.Count.ToString(); PanelReponses.Visible = true; } } else // du if ( Request.QueryString[ "PollAnswerID" ] != null ) { ListBoxQui.Items.Add("Cliquez sur une réponse"); ListBoxQui.Rows = 1; EffacerSousPopulation(); } if (SessionState.Questionnaire != null) { QuestionnaireControlStatAll.SelectedQuestionnaireID = SessionState.Questionnaire.QuestionnaireID; PersonnesDropDownListQui.Clear(); // Trouver les votants if (Votes.Count > 0) { int idx = 0; foreach (Personne p in Personnes) { //PollVoteCollection pvc = PollVoteCollection.GetPollVotes( SessionState.Questionnaire.QuestionnaireID, p.PersonneGUID ); //PollVoteCollection pvc = Votes.FindByPersonneGUID( p.PersonneGUID ); PollVoteCollection pvc = TableauVotesPersonnes[idx]; // A t il vote pour ce questionnaire ? if (pvc.Count > 0) { // Cacher les infos sur les votants if (SessionState.Questionnaire.Anonymat) { string personne = "personne" + idx.ToString(); DropDownListQui.Items.Add(personne); Personne anonymat = new Personne(); anonymat = p; anonymat.Nom = personne; anonymat.Prenom = ""; anonymat.EmailBureau = ""; anonymat.Civilite = ""; anonymat.TelephonePerso = ""; PersonnesDropDownListQui.Add(anonymat); // BUG07062010 je vois pas pourquoi !!! //ListBoxQui.Enabled = false; } else { string personne = FormatPersonne(p); DropDownListQui.Items.Add(personne); PersonnesDropDownListQui.Add(p); } } idx += 1; } } LabelVotes.Text = PersonnesDropDownListQui.Count.ToString(); QuestionnaireControlStatAll.PersonneVotants = PersonnesDropDownListQui; // Afficher les votes du premier votant if (PersonnesDropDownListQui.Count >= 1) { if (DropDownListQuiSelectedIndex != 0) { DropDownListQui.SelectedIndex = DropDownListQuiSelectedIndex; } Personne personne = PersonnesDropDownListQui[DropDownListQui.SelectedIndex]; QuestionnaireControlStatAll.SelectedQuestionnaireID = SessionState.Questionnaire.QuestionnaireID; QuestionnaireControlStatAll.SelectedPersonneGUID = personne.PersonneGUID; AfficherVotantEnModePrint(); } } CheckBoxAfficherReponseTextuelle.Checked = SessionState.CheckBox["CheckBoxAfficherReponseTextuelle"]; CheckBoxAfficherDateVote.Checked = SessionState.CheckBox["CheckBoxAfficherDateVote"]; CheckBoxAfficherMoyennePonderee.Checked = SessionState.CheckBox["CheckBoxAfficherMoyennePonderee"]; } }
protected void Page_Load(object sender, EventArgs e) { if (IsPostBack == false) { //// Choisir le premier Questionnaire a la place de l'utilisateur //if ( SessionState.Questionnaire == null && SessionState.Questionnaires.Count > 0 ) //{ // SessionState.Questionnaire = SessionState.Questionnaires[ 0 ]; //} //if ( Request.QueryString[ "QuestionnaireID" ] != null ) //{ // int questionnaireID = int.Parse( Request.QueryString[ "QuestionnaireID" ] ); // SessionState.Questionnaire = SessionState.Questionnaires.FindByID( questionnaireID ); //} if (Request.QueryString["CodeAcces"] != null) { int code = int.Parse(Request.QueryString["CodeAcces"]); // Dans SessionState.Questionnaires on prend une precaution pour verifier le membre // si SessionState.MemberInfo == null alors Va te faire loguer et donc on utilise // pas ce code ici ! // SessionState.Questionnaire = SessionState.Questionnaires.FindByCodeAcces( code ); QuestionnaireCollection questionnaires = QuestionnaireCollection.GetAll(); SessionState.Questionnaire = questionnaires.FindByCodeAcces(code); } if (SessionState.Questionnaire == null || SessionState.Questionnaire.Publier == false) { PanelQuestionnairePasDePublication.Visible = true; PanelQuestionnairePublication.Visible = false; return; } // Pour un meilleur referencement LabelTitre.Text = "Statistiques " + SessionState.Questionnaire.Description; Page.Title = "Publication des Statistiques pour le questionnaire dont la description est " + SessionState.Questionnaire.Description; base.AddMetaContentType(); base.AddMetaTag("description", "Publication des statistiques pour le questionnaire" + SessionState.Questionnaire.Description); base.AddMetaTag("keywords", "questionnaire, statistique, enquêtes, enquete, en ligne"); base.AddMetaTag("revisit-after", "10 days"); base.AddMetaTag("author", "Sodevlog"); base.AddMetaTag("copyright", "Sodevlog"); // Charger les votes pour ce Questionnaire if (SessionState.Questionnaire != null && Votes == null) { Votes = PollVoteCollection.GetPollVotesByQuestionnaireID(SessionState.Questionnaire.QuestionnaireID); Personnes = PersonneCollection.GetQuestionnaire(SessionState.Questionnaire.QuestionnaireID); } if (Request.QueryString["PollAnswerID"] != null) { PanelSousPopulation.Visible = true; Guid pollAnswerID = new Guid(Request.QueryString["PollAnswerID"].ToString()); // BUG25092009 Il ne faut ajouter 2 fois la meme reponse sinon il y a cumul // il faut eviter le cumul de PollAnswerID de Questions et de Reponses if (PollAnswerID.Contains(pollAnswerID) == false) { PollAnswerID.Add(pollAnswerID); // Trouver les votants if (Votes.Count > 0) { // Comme on a que pollAnswerID a notre disposition, pour trouver la question il faut // trouver la Reponses de pollAnswerID // trouver la Question de la Reponse PollAnswer pollAnswer = PollAnswerCollection.GetByPollAnswerID(pollAnswerID); PollQuestionCollection pollAnswerCollection = PollQuestionCollection.GetByQuestionnaire(SessionState.Questionnaire.QuestionnaireID); PollQuestion pollQuestion = pollAnswerCollection.FindByPollQuestionID(pollAnswer.PollQuestionId); // Cumuler les Reponses cliquees par l'utilisateur et les Questions Questions.Add(pollQuestion); Reponses.Add(pollAnswer); // BUB25092009 AfficherTout(); } } // BUG25092009 on peut afficher tout ici AfficherTout(); if (ListBoxQui.Items.Count <= 0) { ListBoxQui.Items.Add("Pas de vote"); ListBoxQui.Rows = 1; // On efface tout, sinon l'utilisateur est perdu // et les Questions et les reponses continuent de s'accumuler // et l'utilisateur ne voit rien EffacerSousPopulation(); } else { ListBoxQui.Rows = ListBoxQui.Items.Count <= 10 ? ListBoxQui.Items.Count : 10; LabelListBoxQuiCount.Text = "Sous-population : " + ListBoxQui.Items.Count.ToString(); PanelReponses.Visible = true; } } else // du if ( Request.QueryString[ "PollAnswerID" ] != null ) { ListBoxQui.Items.Add("Cliquez sur une réponse"); ListBoxQui.Rows = 1; EffacerSousPopulation(); } if (SessionState.Questionnaire != null) { QuestionnairePublication.SelectedQuestionnaireID = SessionState.Questionnaire.QuestionnaireID; LabelNombreContacts.Text = Personnes.Count.ToString(); PersonnesDropDownListQui.Clear(); // Trouver les votants if (Votes.Count > 0) { foreach (Personne p in Personnes) { //PollVoteCollection pvc = PollVoteCollection.GetPollVotes( SessionState.Questionnaire.QuestionnaireID, p.PersonneGUID ); PollVoteCollection pvc = Votes.FindByPersonneGUID(p.PersonneGUID); // A t il vote pour ce questionnaire ? if (pvc.Count > 0) { string personne = p.Nom + "/" + p.Prenom + "/" + p.EmailBureau; DropDownListQui.Items.Add(personne); PersonnesDropDownListQui.Add(p); } } } QuestionnairePublication.PersonneVotants = PersonnesDropDownListQui; // Afficher les votes du permier votant if (PersonnesDropDownListQui.Count >= 1) { if (DropDownListQuiSelectedIndex != 0) { DropDownListQui.SelectedIndex = DropDownListQuiSelectedIndex; } Personne personne = PersonnesDropDownListQui[DropDownListQui.SelectedIndex]; QuestionnairePublication.SelectedQuestionnaireID = SessionState.Questionnaire.QuestionnaireID; QuestionnairePublication.SelectedPersonneGUID = personne.PersonneGUID; } LabelVotes.Text = PersonnesDropDownListQui.Count.ToString(); } CheckBoxAfficherReponseTextuelle.Checked = SessionState.CheckBox["CheckBoxAfficherReponseTextuelle"]; CheckBoxAfficherDateVote.Checked = SessionState.CheckBox["CheckBoxAfficherDateVote"]; } // Effacer les objets que l'on publie pas //DropDownListQuestionnaires.Visible = false; ListBoxQui.Visible = false; //DropDownListQui.Visible = false; CheckBoxAfficherReponseTextuelle.Checked = false; QuestionnairePublication.AfficherReponseTextuelle = false; QuestionnairePublication.AfficherLaDateDesVotes = false; }