Het schrappen van een informatiebestandfiche blokkeren als er acties aan verbonden zijn

0000002108     -      31-12-2024

Dit voorbeeld toont hoe u het schrappen van een informatiebestandfiche blokkeert als er acties aan verbonden zijn. Het voorbeeld geldt voor het 4e informatiebestand (SigDest) en kan makkelijk worden aangepast aan alle informatiebestanden van Mercator. Het implementeert de interface MercatorUi.ICustomizers.ISigCreated.

Er wordt gebruikgemaakt van het event BeforeRecordDelete van MercatorUi.Sig.Sig, waarmee het mogelijk is om tussen te komen voorafgaand aan het proces voor het schrappen van een record.

De code ziet er als volgt uit:

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using System.Windows.Forms;
using MercatorExtensions;

namespace SigDest
{
    public class Customizer : MercatorUi.ICustomizers.ISigCreated
    {

        public void SigCreated(MercatorUi.Sig.Sig sig)
        {
            sig.BeforeRecordDelete += Sig_BeforeRecordDelete;
        }

        void Sig_BeforeRecordDelete(object sender, MercatorUi.Sig.Sig.BeforeRecordDeleteEventArgs e)
        {
            string reqSql = "declare @ret bit \r\n"
                          + "if exists(select * from ACTIONS (NOLOCK) where (module='DEST') and (id_sig=@id)) \r\n"
                          + "    set @ret=1 \r\n"
                          + "else \r\n"
                          + "    set @ret=0 \r\n"
                          + "select @ret as ret";
            DataSet ds = Api.Zselect(Globals.RepData, reqSql, new MercatorSqlParam("@id", e.Record["d_id"], SqlDbType.Char));
            if (ds == null) // Er is een SQL-fout vastgesteld.
            {
                e.Cancel = true;
            }
            else if (ds.Tables[0].Rows[0].Value<bool>("ret"))
            {
                Dialogs.Stop("U kunt deze fiche niet schrappen, want er zijn acties aan verbonden!");
                e.Cancel = true;
            }
        }
    }
}

 

 



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)