Bestanden van het tabblad "Bestandsbrowser" uploaden in de SQL-database

0000002117     -      05-11-2025

💡 Voor een oplossing zonder maatwerkcode, zie deze pagina.

Het volgende is van toepassing op alle informatiebestanden: klanten, leveranciers, artikelen, vierde informatiebestand, contactpersonen, algemene rekeningen, analytische rekeningen, vaste activa, prospecten, dienstverleners en locaties.

De onderstaande module laat zien hoe men bestanden van het tabblad "Bestandsbrowser" laadt in de SQL-database. Daartoe moet men uiteraard vooraf de in de SQL-database opgeslagen bestanden activeren en moet men werken met SqlFileView.

Doel hiervan is het downloaden van bestanden die overeenstemmen met acties uit het 4e informatiebestand (DEST) en waarvan de ID_ACTEMPL (ID van het actietemplate) gekend is. Deze code kan uiteraard makkelijk worden aangepast aan alle andere omstandigheden. Ze wordt rechtstreeks uitgevoerd via de code-editor van Mercator.

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

namespace MyNameSpace
{
    public class Class1 : MercatorUi.Interfaces.IExec
    {
        public void Main()
        {
            List<string> list = Api.Zselect<string>(Globals.RepData, "select id,module from ACTIONS where (module='DEST') and ((id_actempl='.A-A729D53') or (id_actempl='.A-C48A0EB'))");
            if (list == null)
                return;
            Progress.ProgressCreate(list.Count);
            foreach (string idAction in list)
            {
                Progress.ProgressIncrement(1);
                string id = Api.CleanRep(idAction);
                string dir = Globals.RepData + "Files\\Actions\\DEST\\" + id;
                if (System.IO.Directory.Exists(dir))
                    Api.CopyFolder(dir, "<" + Api.SqlFilePathRoots.Files + "Files\\Actions\\DEST\\" + id);
            }
            Progress.ProgressDestroy();
            Dialogs.Stop("OK !");
        }
    }
}

Wenst u de originele kopie van de bestanden niet te bewaren op schijf, dan vervangt u gewoon Api.CopyFolder door Api.MoveFolder.

De onderstaande code biedt een alternatief: hiermee worden alle bestanden van alle subdirectories van de directory "Files" gekopieerd naar Sql:

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

namespace MyNameSpace
{
    public class Class1 : MercatorUi.Interfaces.IExec
    {
        public void Main()
        {
            Api.CopyFolder(Globals.RepData + "Files", "<" + Api.SqlFilePathRoots.Files);
            Dialogs.Stop("OK !");
        }
    }
}

 

💡 De verschillende methoden van MercatorApi.Api die bestanden of mappen beheren, werken op dezelfde manier met bestanden op schijf als met SQL-bestanden. Dit zorgt dus voor een volledige interoperabiliteit.



Functionele cookies: Cookies die nodig zijn voor het gebruik van de website en voorkeurscookies. Ze bevatten geen persoonsgegevens. (Meer informatie)

Analytische cookies: Verzamelen van statistieken met betrekking tot het gedrag van internetgebruikers. (Meer informatie)

Marketingcookies: Om bezoekers op verschillende websites te volgen voor advertentiedoeleinden. (Meer informatie)