/// <summary> /// Fonction permettant d'afficher les nuitées /// disponibles /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <param name="UnPanel">Panel concerné pour afficher les nuitées</param> /// <param name="UneConnexion">Connexion à la base de données</param> /// <param name="NomButton">Nom du bouton</param> public static void AfficheNuitee(object sender, EventArgs e, Panel UnPanel, Bdd UneConnexion, String NomButton) { if (((RadioButton)sender).Name == NomButton) { UnPanel.Visible = true; if (UnPanel.Controls.Count == 0) // on charge les nuites possibles possibles et on les affiche { //DataTable LesDateNuites = UneConnexion.ObtenirDonnesOracle("VDATENUITE01"); //foreach(Dat Dictionary<Int16, String> LesNuites = UneConnexion.ObtenirDatesNuites(); int i = 0; foreach (KeyValuePair<Int16, String> UneNuite in LesNuites) { ComposantNuite.ResaNuite unResaNuit = new ResaNuite(UneConnexion.ObtenirDonnesOracle("VHOTEL01"), (UneConnexion.ObtenirDonnesOracle("VCATEGORIECHAMBRE01")), UneNuite.Value, UneNuite.Key); unResaNuit.Left = 5; unResaNuit.Top = 5 + (24 * i++); unResaNuit.Visible = true; //unResaNuit.click += new System.EventHandler(ComposantNuite_StateChanged); UnPanel.Controls.Add(unResaNuit); } } } else { UnPanel.Visible = false; } }
/// <summary> /// Cette méthode crée des controles de type chckbox ou radio button dans un controle de type panel. /// Elle va chercher les données dans la base de données et crée autant de controles (les uns au dessous des autres /// qu'il y a de lignes renvoyées par la base de données. /// </summary> /// <param name="UneForme">Le formulaire concerné</param> /// <param name="UneConnexion">L'objet connexion à utiliser pour la connexion à la BD</param> /// <param name="pUneTable">Le nom de la source de données qui va fournir les données. Il s'agit en fait d'une vue de type /// VXXXXOn ou XXXX représente le nom de la tabl à partir de laquelle la vue est créée. n représente un numéro de séquence</param> /// <param name="pPrefixe">les noms des controles sont standard : NomControle_XX /// ou XX estl'id de l'enregistrement récupéré dans la vue qui /// sert de source de données</param> /// <param name="UnPanel">panel ou groupbox dans lequel on va créer les controles</param> /// <param name="unTypeControle">type de controle à créer : checkbox ou radiobutton</param> /// <param name="callback"> Le pointeur de fonction. En fait le pointeur sur la fonction qui réagira à l'événement déclencheur </param> public static void CreerDesControles(Form UneForme, Bdd UneConnexion, String pUneTable, String pPrefixe, ScrollableControl UnPanel, String unTypeControle, Action<object, EventArgs> callback) { DataTable UneTable = UneConnexion.ObtenirDonnesOracle(pUneTable); // on va récupérer les statuts dans un datatable puis on va parcourir les lignes(rows) de ce datatable pour // construire dynamiquement les boutons radio pour le statut de l'intervenant dans son atelier Int16 i = 0; foreach (DataRow UneLigne in UneTable.Rows) { //object UnControle = Activator.CreateInstance(object unobjet, unTypeControle); //UnControle=Convert.ChangeType(UnControle, TypeC); if (unTypeControle == "CheckBox") { CheckBox UnControle = new CheckBox(); AffecterControle(UneForme, UnPanel, UnControle, pPrefixe, UneLigne, i++, callback); } else if (unTypeControle == "RadioButton") { RadioButton UnControle = new RadioButton(); AffecterControle(UneForme, UnPanel, UnControle, pPrefixe, UneLigne, i++, callback); UnControle.CheckedChanged += new System.EventHandler(callback); } i++; } UnPanel.Height = 20 * i + 5; }
/// <summary> /// méthode permettant de remplir une combobox à partir d'une source de données /// </summary> /// <param name="UneConnexion">L'objet connexion à utiliser pour la connexion à la BD</param> /// <param name="UneCombo"> La combobox que l'on doit remplir</param> /// <param name="UneSource">Le nom de la source de données qui va fournir les données. Il s'agit en fait d'une vue de type /// VXXXXOn ou XXXX représente le nom de la tabl à partir de laquelle la vue est créée. n représente un numéro de séquence</param> public static void RemplirComboBox(Bdd UneConnexion, ComboBox UneCombo, String UneSource) { UneCombo.DataSource = UneConnexion.ObtenirDonnesOracle(UneSource); UneCombo.DisplayMember = "libelle"; UneCombo.ValueMember = "id"; }