De vervaldatum toevoegen in het eerste rooster van de commerciƫle artikelopzoeking

0000002023     -      30-12-2024

 Sinds versie 10.10 is deze code verouderd. Het is mogelijk om deze instelling zonder code uit te voeren. De query kan worden gewijzigd via de eigenschap StringUpdater van het StockInterro-object. Vervolgens moet u de eigenschap AutoAddCustomColumnsGrid op JA instellen .


De hier beschreven programmering laat zien hoe u een kolom met de vervaldatum toevoegt aan het eerste rooster van de commerciële artikelopzoeking (StockInterro). Deze customizer SigStock implementeert 3 interfaces:

  • IStringUpdater : voor het wijzigen van de SQL-opdracht die standaard geen rekening houdt met het veld "Vervaldag".
  • IFormLoadCustomizer : voor het toevoegen van een AfterColumnsCreated-event aan het object StockInterro;
  • IFormClosedCustomizer : voor het verwijderen van het hierboven gecreëerde event.

De code ziet er als volgt uit:

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

namespace SigStock
{
    public class Customizer : MercatorUi.ICustomizers.IStringUpdater, MercatorUi.ICustomizers.IFormLoadCustomizer, MercatorUi.ICustomizers.IFormClosedCustomizer
    {
        public string StringUpdate(string stringToModify)
        {
            string id = Api.StrExtract(stringToModify, "<ID>", "</ID>");
            if (id != "STOCK_INTERRO1") // Er moet enkel gereageerd worden op de opdracht van rooster 1 van StockInterro. StringUpdate zal echter alle opdrachten van alle objecten en van het rooster van het informatiebestand "Artikels" zien passeren.
                return stringToModify; // Dit is niet de opdracht van rooster 1 van StockInterro -> er wordt niets gewijzigd.
            else // Opgelet: de opdracht varieert in functie van de geselecteerde aanvinkvakjes.
                return stringToModify.Replace(",pieds_v.date,", ",pieds_v.date,pieds_v.echeance,").Replace(",pieds_a.date,", ",pieds_a.date,pieds_a.echeance,").Replace(",lignes_d.date,", ",lignes_d.date,cast('01/01/1900' as datetime) as echeance,");
        }

        public void FormLoadCustomize(Form form)
        {
            MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)form;
            MercatorUi.Forms.Sig.SigObjects.StockInterro stockInterro = sigForm.MovableControls.Values.OfType<MercatorUi.Forms.Sig.SigObjects.StockInterro>().FirstOrDefault();
            if (stockInterro != null)
                stockInterro.AfterColumnsCreated += stockInterro_AfterColumnsCreated;
        }

        public void FormClosedCustomize(Form form)
        {
            MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)form;
            MercatorUi.Forms.Sig.SigObjects.StockInterro stockInterro = sigForm.MovableControls.Values.OfType<MercatorUi.Forms.Sig.SigObjects.StockInterro>().FirstOrDefault();
            if (stockInterro != null)
                stockInterro.AfterColumnsCreated -= stockInterro_AfterColumnsCreated;
        }

        private void stockInterro_AfterColumnsCreated(object sender, EventArgs e)
        {
            MercatorUi.GridPro.DataGridViewXPro grid = (MercatorUi.GridPro.DataGridViewXPro)sender;
            if (grid.Name == "grid1") // Opgelet: StockInterro bevat 2 roosters. Hier moet enkel gereageerd worden op rooster 1. Ditzelfde event zal ook rooster 2 zien passeren (maar dat moet niet gewijzigd worden).
            {
                grid.Columns.Add("echeance", _Divers.Iif_langue(Globals.Langue, "Due Date", "Vervald.", "Echéance"));
                grid.Columns["echeance"].Width = 68;
                grid.Columns["echeance"].DataPropertyName = "echeance";
                grid.Columns["echeance"].DefaultCellStyle.Format = Api.Iif(Globals.DateMDY, "MM/dd/yyyy", "dd/MM/yyyy");
            }
        }
    }
}


Functionele cookies: Cookies die nodig zijn voor het gebruik van de website en voorkeurscookies. Ze bevatten geen persoonsgegevens. (Meer informatie)

Analytische cookies: Verzamelen van statistieken met betrekking tot het gedrag van internetgebruikers. (Meer informatie)

Marketingcookies: Om bezoekers op verschillende websites te volgen voor advertentiedoeleinden. (Meer informatie)