In het object TarCli een kolom S_CLE1 toevoegen

0000002138     -      15-01-2025

 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 TarCli-raster. Kolomregels zijn ook beschikbaar.


Met het voorbeeld dat hier gegeven wordt kan het veld stock.s_cle1 worden weergegeven in de prijsrooster van de klanten.

Dit veld wordt toegevoegd aan de selectie-opdracht van de prijzen van de klant via het event StringUpdate. Dankzij het event AfterColumnsCreated, wordt vervolgens de ReadOnly-eigenschap van de DataColumn op 'true' geplaatst om te voorkomen dat Mercator deze waarde bijwerkt.

attention Mercator werkt de kolommen niet bij waarvan de DataColumn in ReadOnly staat.
Dit systeem is beschikbaar in alle roosters in de informatiebestanden.

De code wordt als volgt samengesteld:

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

namespace SigCli
{
    public class Customizer : MercatorUi.ICustomizers.IFormLoadCustomizer, MercatorUi.ICustomizers.IFormClosedCustomizer,
                              MercatorUi.ICustomizers.IStringUpdater
    {
        string MercatorUi.ICustomizers.IStringUpdater.StringUpdate(string stringToModify)
        {
            string id = Api.StrExtract(stringToModify, "/*<ID>", "</ID>*/");
            if (id == "TARCLI")
            {
                stringToModify = stringToModify.Replace(" as s_modele", " as s_modele, stock.s_cle1")
                                               .Replace("tarcli (NOLOCK) where", "tarcli (NOLOCK) left join stock on tarcli.ar_ref = stock.s_id where");
            }
            return stringToModify;
        }

        public void FormLoadCustomize(Form form)
        {
            MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)form;
            MercatorUi.Forms.Sig.SigGrids.TarCli tarCli = sigForm.MovableControls.Values.OfType<MercatorUi.Forms.Sig.SigGrids.TarCli>().FirstOrDefault();
            if (tarCli != null)
                tarCli.AfterColumnsCreated += TarCli_AfterColumnsCreated;
        }

        public void FormClosedCustomize(Form form)
        {
            MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)form;
            MercatorUi.Forms.Sig.SigGrids.TarCli tarCli = sigForm.MovableControls.Values.OfType<MercatorUi.Forms.Sig.SigGrids.TarCli>().FirstOrDefault();
            if (tarCli != null)
                tarCli.AfterColumnsCreated -= TarCli_AfterColumnsCreated;
        }

        void TarCli_AfterColumnsCreated(object sender, EventArgs e)
        {
            MercatorUi.Forms.Sig.SigGrids.TarCli tarCli = (MercatorUi.Forms.Sig.SigGrids.TarCli)sender;
            tarCli.Grid.Columns["S_CLE1"].HeaderText = "Code";
            tarCli.Grid.Columns["S_CLE1"].ReadOnly = true;
            tarCli.Grid.Columns["S_CLE1"].DisplayIndex = 2;
            DataTable dt = (DataTable)tarCli.Grid.DataSource;
            dt.Columns["S_CLE1"].ReadOnly = true;
        }
    }
}


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)