Een knop toevoegen in het rappelvenster die data ophaalt

0000002293     -      05-09-2016

Deze module hier laat toe om een knop toe te voegen in de onderste band van het scherm. Deze knop laat toe om een actie te activeren, met inbegrip van het aanbrengen van wijzigingen in de dataset, die zich achter het rooster bevindt. In ons voorbeeld, beperken we ons tot het weergeven van de Dataset.

Als het rappelvenster niet beschikt over een eigen customizer, moet men hem bereiken via de Main-customizer met het BaseFormCreating. De knop die toegevoegd zal worden is van het type MercatorUi.BoutonsPro.ButtonXPro, dit wil zeggen dat het een knop is met grafische verbeteringen van Mercator. (Het is mogelijk om een eenvoudige Systems.Windows.Forms.Button toe te voegen.) De knop zal beschikken over een foto van 32x32 pixels (bijvoegd in het zip-bestand)

De code gaat als volgt:

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using System.Windows.Forms;
using System.Reflection;

namespace Main
{
    public class Customizer : MercatorUi.ICustomizers.IExec
    {

        public void Main(MercatorUi.ICustomizers.ExecAction Action)
        {
            if (Action == MercatorUi.ICustomizers.ExecAction.DossierOpen)
            {
                Globals.Main.BaseFormCreating += new MercatorUi.Main.BaseFormCreatingEventHandler(Main_BaseFormCreating);
            }
            else if (Action == MercatorUi.ICustomizers.ExecAction.DossierClose)
            {
                Globals.Main.BaseFormCreating -= new MercatorUi.Main.BaseFormCreatingEventHandler(Main_BaseFormCreating);
            }
        }

        void Main_BaseFormCreating(object sender, MercatorUi.Main.BaseFormCreatingEventArgs e)
        {
            if (e.Form.GetType() == typeof(MercatorUi.Forms.Accounting.AccountingRemindersForm))
                e.Form.Shown += new EventHandler(Form_Shown);
        }

        void Form_Shown(object sender, EventArgs e)
        {
            MercatorUi.Forms.Accounting.AccountingRemindersForm accountingRemindersForm = (MercatorUi.Forms.Accounting.AccountingRemindersForm)sender;
            accountingRemindersForm.Shown -= new EventHandler(Form_Shown); // désinscrire l'évènement
            MercatorUi.BoutonsPro.BleuPro bleuPro1 = (MercatorUi.BoutonsPro.BleuPro)accountingRemindersForm.Controls["bleuPro1"];
            MercatorUi.BoutonsPro.ButtonXPro buttonCustom = new MercatorUi.BoutonsPro.ButtonXPro();
            buttonCustom.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
            buttonCustom.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            buttonCustom.Image = System.Drawing.Image.FromFile("window_edit.png");
            buttonCustom.Location = new System.Drawing.Point(250, 5);
            buttonCustom.Name = "buttonCustom";
            buttonCustom.Size = new System.Drawing.Size(120, 48);
            buttonCustom.SubItemsExpandWidth = 16;
            buttonCustom.Text = "Custom Action";
            buttonCustom.Click += new EventHandler(buttonCustom_Click);
            bleuPro1.Controls.Add(buttonCustom);
        }

        void buttonCustom_Click(object sender, EventArgs e)
        {
            MercatorUi.BoutonsPro.ButtonXPro buttonCustom = (MercatorUi.BoutonsPro.ButtonXPro)sender;
            MercatorUi.Forms.Accounting.AccountingRemindersForm accountingRemindersForm = (MercatorUi.Forms.Accounting.AccountingRemindersForm)buttonCustom.FindForm();
            MercatorUi._Divers.ViewData(accountingRemindersForm.DataSet, true);
        }
    }
}

Merk op dat het mogelijk is om deze code te hergebruiken in andere schermen:

  • Domiciliëringen: het type form om rekening mee te houden is hier MercatorUi.Forms.Accounting.AccountingBankDomForm en is te vinden in MercatorUi.Forms.AccountingRemindersForm.
  • De betalingen: het type venster om rekening mee te houden is hier MercatorUi.Forms.Accounting.AccountingBankPayForm en is te vinden in MercatorUi.Forms.Accounting.AccountingRemindersForm


Te laden : 0000002293.zip (1 Kb - 12-02-2014)