U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

Afhankelijke comboboxen in een informatiebestand

0000002324     -      21-11-2016

Dit kan heel eenvoudig, omdat mercator zelf over deze functie beschikt (voor rayons/families/sub-families en de gammas)

Men moet de volgende velden toevoegen in de tabel STOCK: S_ID_RAY2 en S_ID_FAM2 char(10)

Men moet de combobox in de setupmodus associëren met deze 2 velden, en er 2 SQL-queries aan toevoegen.

  • select nom,id from rayons order by nom
  • select nom,id from familles where id_rayon=@id order by nom

We moeten de propertie ParentField van de combo S_ID_FAM2 geassocieerd met de waarde S_ID_RAY2 koppelen aan deze combo's.De SelectedValue van de combo zal worden doorgegeven als @id in de SQL-query. Deze verandering van de propertie wordt eenvoudig gedaan in de customizer:

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;

namespace SigStock
{
    public class Customizer : MercatorUi.ICustomizers.IComboListPreCustomizer
    {

        public void ComboListPreCustomize(MercatorUi.MovableControls.Interfaces.IMovableComboBoxOrTree combo)
        {
            if (combo.Source == "S_ID_FAM2")
                combo.ParentField = "S_ID_RAY2";
        }
    }
}

Doe anders niets. Mercator doet de rest.


Hoe is het mogelijk om 2 van elkaar afhankelijke comboboxen te plaatsen in een informatiebestand? Bijvoorbeeld om te beschikken over een tweede spel "rayons-families". Dit in combinatie met de velden S_ID_RAY2 en S_ID_FAM2 uit de tabel STOCK.