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

A partir d'un bouton dans un signalétique, créer une nouvelle fiche dans un autre signalétique

0000002231     -      28/07/2016

Le paramètrage illustré ici montre comme simplement créer une fiche dans un signalétique au départ d'un bouton ajouté dans un autre signalétique. L'exemple est donné pour la création d'une fiche dans le signalétique des clients.

Le code du bouton est simplement :

Zoom
using System.Text;
using System.Data;
using MercatorApi;
using MercatorController;
using System.Data.SqlClient;

namespace MercatorUi.MovableControls.ButtonsCodes
{
    public static class Script
    {

        public static void Exec(MercatorUi.MovableControls.MovableButton clickedButton)
        {
            MercatorUi.Forms.Sig.SigForm sigFormCli = MercatorUi.Globals.Main.ShowSigInInThread(MercatorUi.Sig._SigEnum.CLI);
            if (sigFormCli != null)
                sigFormCli.Sig.RecordNew(sigFormCli);
        }
    }
}

Si on souhaite placer dans la signalétique de destination une information venant du signalétique de départ, il suffit de

  • récupérer l'information avec une ligne de code telle que : string myInfo = clickedButton.Form.DataSource.Rows[0]["s_myfield"].ToString();
  • écrire cette information dans le champ souhaité par une ligne de code telle que : sigFormCli.DataSource.Rows[0]["c_myfield"] = myInfo;

Le code devient dès lors :

using System.Text;
using System.Data;
using MercatorApi;
using MercatorController;
using System.Data.SqlClient;

namespace MercatorUi.MovableControls.ButtonsCodes
{
    public static class Script
    {

        public static void Exec(MercatorUi.MovableControls.MovableButton clickedButton)
        {
            string myInfo = clickedButton.Form.DataSource.Rows[0]["s_myfield"].ToString();
            MercatorUi.Forms.Sig.SigForm sigFormCli = MercatorUi.Globals.Main.ShowSigInInThread(MercatorUi.Sig._SigEnum.CLI);
            if (sigFormCli != null)
            {
                sigFormCli.Sig.RecordNew(sigFormCli);
                sigFormCli.DataSource.Rows[0]["c_myfield"] = myInfo;
            }
        }
    }
}