Automatische creatie van subdirectories op het tabblad "Bestandsbrowsers" van de klantenfiche

0000001994     -      23-05-2013

Met de hier vermelde module kunnen automatisch subdirectories worden gecreëerd in het object "Bestandsbrowser" van de klantenfiche. Het proces wordt geactiveerd bij de creatie van een nieuwe klantenfiche, via een informatiebestandcustomizer die de interface MercatorUi.ICustomizers.INewSigId implementeert.

Deze code houdt rekening met de volgende situaties:

  • de directory van het tabblad "Bestandsbrowser" wordt pas gecreëerd zodra men effectief naar dit tabblad gaat. Zo vermijdt men dat er een hele reeks lege directories gecreëerd zou worden. Men moet dus eerst de creatie forceren (dat is de rol van de eerste CreateDirectory);
  • verder kan C_id spaties of niet-toegelaten tekens bevatten. Deze worden verwijderd via de methode Api.CleanRep();
  • een andere te overwegen situatie is dat de gebruiker de root van deze directories kan wijzigen in "Tools / Opties / Overige" (variabele 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;
        }

    }
}


Merk op: als het commando CreateDirectory gebruikt wordt voor een al bestaande directory, verschijnt er geen foutmelding.