Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Combos interdépendants dans un signalétique

0000002324     -      21/11/2016

Ceci peut se faire assez simplement puisque Mercator dispose de cette fonctionnalité pour lui même (pour les rayons / familles / sous-familles, pour les gammes). 

Il faut ajouter ces champs dans la table STOCK : S_ID_RAY2 et  S_ID_FAM2  char(10)

Il faut ajouter un combo en mode paramétrage associé à ces deux champs et respectivement avec ces 2 requêtes SQL :

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

Il faut alimenter la propriété ParentField du combo associé à S_ID_FAM2 avec la valeur S_ID_RAY2 pour lier les 2 combos. La SelectedValue du combo rayon sera passée en tant que @id à la requête SQL. Ce changement de propriété se fait par ce simple 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";
        }
    }
}

Il ne faut rien faire d'autre. Mercator se charge du reste.


Comment est-il possible de placer des comboboxes interdépendants dans un signalétique ? Par exemple pouvoir disposer d'un deuxième jeux "rayons - familles". Ceci associé aux champs  S_ID_RAY2 et  S_ID_FAM2 de la ta table STOCK.