21.07.2019

Axapta Karakter Kısıtlaması


Merhabalar,
Bu makalemizde bir alana klavyeden girilen karakterlerin sayı olup olmadığını kontrol eden bir kod yazacağız. Bu konu her axapta geliştiricilerinin karşılaşacağı bir konudur. Örnek olarak telefon numarası alanı, vergi numarası ve ya TC kimlik numarası alanları olabilir. Biz burada TC Kimlik numarası üzerinden ilerleyeceğiz. Bildiğiniz gibi TC Kimlik numarası 11 hanedir ve sadece sayılardan oluşur. Burada örneğimiz için EmplTable ı kullanacağız. EmplTable tablosunda EmplIdentNumber alanı bizim Türkiye Cumhuriyeti Kimlik numarasını yazdığımız alan olacak. Bu alanın kontrolü için de yapmamız gereken EmplTable ın validate metoduna alttaki kodu yazmamız yeterli olacaktır.


public boolean validate()
{
    boolean     ret;
    str             char;
    str             pos;
    int             i, j,k;
    container    BadChar = ['0', '1','2','3','4','5','6','7','8','9'];
    ;
    ret = super();
    if(EmplTable. EmplIdentNumber)
    {
         for(i = 0 ; i <= strlen(EmplTable. EmplIdentNumber); i++)
         {
               k = 0;
               char = substr(EmplTable. EmplIdentNumber, i, 1);
               for (j = 0; j <= conlen(BadChar); j++)
               {
                    pos = conpeek(BadChar,j);
                    if(char == pos)
                    {
                        k = 1;
                    }
                }
                if(k != 1)
                {
                     throw error('TC Kimlik Numarası Alanına Yalnızca Rakam Girilebilir.');
                }
          }
          if(strlen(EmplTable. EmplIdentNumber) != 11)
          {
                 throw error('TC Kimlik No 11 hanedir.');
          }
     }
     return ret;
}


Yorumları Göster!