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

Création automatique de sous-répertoires dans l'onglet "explorateur de fichiers" de la fiche client

0000001994     -      23/05/2013

Le module repris ici permet de créer de façon automatique des sous-répertoires dans l'objet "explorateur de fichiers" de la fiche client. Le processus se déclenche à la création d'une nouvelle fiche client, via un customizer de signalétique, qui implémente l'interface MercatorUi.ICustomizers.INewSigId.

Ce code tient compte des situations suivantes :

  • Le répertoire de l'onglet explorateur de fichiers n'est créé que si on passe effectivement dans cet onglet. Ceci afin d'éviter la création d'une multitude de répertoires vides. Il faut donc d'abord en forcer la création. (C'est le rôle du premier CreateDirectory)
  • De plus, C_id peut contenir des espaces ou des caractères non autorisés. Ils sont retirés par la méthode Api.CleanRep()
  • Autre cas de figure à envisager : l'utilisateur peut changer le root de ces répertoires dans "Outils / Options / Autres" (Variable REP_FILES)
Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;

namespace SigCli
{
    public class Customizer : MercatorUi.ICustomizers.INewSigId
    {

        public string NewSigId(string defaultNewId, System.Data.DataRow dataSourceRow)
        {
            string dir = (Globals.Params["REP_FILES"] != "" ? Api.AddBS(Globals.Params["REP_FILES"]) : Globals.RepData + "Files\\") + "CLI\\" + Api.CleanRep(defaultNewId);
            try
            {
                System.IO.Directory.CreateDirectory(dir);
                System.IO.Directory.CreateDirectory(dir + "\\MyDir1");
                System.IO.Directory.CreateDirectory(dir + "\\MyDir2");
            }
            catch (Exception ex)
            {
                Dialogs.Stop(ex.Message);
            }
            return defaultNewId;
        }

    }
}


Veuillez noter que, si la commande CreateDirectory est appelée sur un répertoire déjà existant, ceci ne provoque pas de message d'erreur.