Makale Özeti

AXAPTA’DA VERİ TİPLERİ VE TANIMLAMALARI

Makale

AXAPTA – 8

AXAPTA’DA VERİ TİPLERİ VE TANIMLAMALARI

Axapta üzerindeki tablolarda tanımlayabileceğimiz veri tipileri:

     String: Salt metin içerecek sahalar için veri tipi.

     Integer: Tam sayılar içerecek sahalar için veri tipi.

     Real: Ondalıklı sayılar içere ek sahalar için veri tipi.

     Date: Tarih bilgisi içerecek sahalar için veri tipi.

     Time: Saat bilgisi içerecek sahalar için veri tipi.

     Enum: Enum bilgisi içerecek sahalar için veri tipi.

     Container: Container bilgisi içerecek sahalar için veri tipi.

     Array: Dizi halinde tutulacak veriler için.

String tipinde bir saha açıldığında, bu saha üzerindeyken niteliklerinden gerekli tanımları yapabiliriz.

Name: Sahanın adı.

Label: Sahanın görüntüleme işlemlerinde çıkacak tanımı.

HelpText: Sahanın üzerindeyken çıkacak açıklama bilgisi.

Mandatory: Sahanın tekrarsız olup – olmayacağı ayarlanır.

AllowEdit: Sahanın manuel güncellebilir olup – olmayacağı tanımı.

ExtendedDataType: Sahanın bir ExtendDataType’dan türetilip – türetilmeyeceği bilgisi.

StringSize: Sahanın genişliği.

Adjustment: Görüntülemede, saha içindeki bilgilerinin sağa – sola dayalı durması gibi tanımların yapılması.

Visible: Sahanın içerik görüntülemede görünüp – görünmeyeceği.

Diğer veri tiplerinde açılan sahalarda, string tipindeki bir saha ile benzer niteliklere sahiptir.

Formlar üzerinde bu tiplerde yeni bir kontrol tanımlandığında verilebilecek özellikler;

String için:

AutoDeclaration: Bu alanı Yes olarak belirtirsek, kontrole verilmiş olan isimle birlikte, form içinde tanımlanan tüm metotlarda bu kontrole dinamik olarak ulaşabiliriz.

Visible: Tablo üzerindeki bir sahada bu özellik Yes olarak tanımlanmış olsa bile, form üzerinde bu saha bu özellik sayesinde gösterilmeyebilir.

AllowEdit: Kontrole form üzerinde bilgi girişi engellenebilir.

Left – Top – Width – Heigth : Kontrolün görüntüsel koordinatları tanımlanabilir.

Enabled: Kontrol içeriği görünür ancak müdahele edilemez.

Text: Varsayılan olaran kontrole atanacak bilgi.

Alignment: Saha bilgilerinin görüntüsel olarak nasıl duracağı belirlenebilir.

MultiLine: Sahaya birden fazla satır olarak bilgi girişi yapılabilmesi sağlanır.

Font – Font Size – Bold – Italic – Underline : Kontrolün font bilgileri tanımlanabilir.

Label: Label ile başlayan tüm nitelikler ile, kontrole bir başlık ataması yapılabilir. Bu atanan başlığın görüntüsel ve işlevsel tanımları belirlenebilir.

DataSource: Formda tanımlanmış data source’lardan biri ile ilişkisi varsa burada tanımlanabilir.

DataField: DataSource özelliğinde verilmiş kaynağın hangi sahası ile ilişki kurulacaksa bu bilgi tanımlanır.

Real için:

String tipi için bahsedilen temel özellikleri içerdiği gibi diğer özellikleri:

ShowZero: Kontrolün içerdiği bilgi sıfır ise, sıfır değeri görünmez. Kontrolün için boş olarak görünür.

      RealValue: Varsayılan olarak kontrol içindeki real değer ne olacaksa bu bilgi tanımlanır.

DecimalSeperator: Sayısal bilginin içerdiği decimal değerinin nasıl görüntüleneceği tanımı buradan yapılabilir.

NoOfDecimals: Sayısal bilginin içerdiği decimal değerinin görüntülenip – görüntülenmeyeceği bilgisi buradan tanımlanabilir.

Raporlar üzerindeki veri tipleri benzer özelliklere sahip olduğu gibi, raporlar görüntüsel anlamda daha fazla isteğe gerek duyacağından, görüntüsel anlamda değişiklik yapabileceğimiz özelliklere sahiptir.

Enum Veri Tipi:

Enum veri tipi, çokdan seçmeli veri girişi yapılabilecek sahalar için kullanılır. Enum veri tipleri için “BaseEnum” tipinde Extend Data Type tanımlanır.

Aslında Enum veri tipindeki sahanın Sql Server üzerindeki tanımlarına baktığımız zaman, BaseEnum’da tanımladığımız elementlerin index numarasının tutulduğunu görürüz. Biz Axapta içerisinden baktığımızda bu sahanın içeriği verdiğimiz label olarak görünür. Ancak Sql Server üzerinde integer tipindedir ve sayısal bilgileri görünür. İsterseniz bu sahayı integer olarak tanımlayıp aynı amacı sağlayabilirsiniz ancak bu çözüm okunabilirliği ve anlaşılabilirliği arttırır.

Tanımladığınız Enum veri tipinin elementinin sıra numarası 0’dan başlar ve sıralı bir şekilde devam eder.

Eğer isterseniz tanımladığınız Enum veri tipini NoYes Enum’ını ExtendDataType olarak tanımlayarak, sadece No veya Yes değerini almasını sağlayabilirsiniz. No veya Yes dediğimiz, 1 veya 0 olabilir anlamına gelmektedir. No değeri içeride 0 olarak tutulur, Yes değeri ise 1 olarak tutulur.

Her bir Enum tipinin altında 251 (0­­- 250) adet element tanımlayabilirsiniz.

Arrays:

Axapta içerisinde diziler klasik dizi ile benzer mantıkda çalışmaktadır. Diziler dinamik veya sabit uzunlukda tanımlanabilir.

Diziler tüm veritipleri ile tanımlanabilir. Ayrıca tabloları ve sınıflarıda dizi olarak tanımlayabiliriz.

Containers:

X++, container olarak isimlendirdiği genel bir veri tipine sahiptir. Container olarak tanımlanan değişken, farklı birçok veri tipindeki bilgiyi saklayabilir.

Container, dinamiktir ve limiti yoktur. Container olarak tutabileceğimiz veri tipleri;

     boolean, integer, real, date, string, container, arrays, tables, ve extended data types, obje içindeki değişkenler, tablo içindeki sahalar. Ancak, objeler container içinde saklanamaz.

Tek bir saha alacak şekilde tanımlanabileceği gibi, dinamik dizi olarak da tanımlanabilir.

Örnek olarak bir tanımlama;

     container _MyContainer = [5,”deneme”,9.5]

Birden fazla bilgi tutulacak ise, bu bilgiler virgül ile birbirinden ayrılır.

Container içinden bilgi çekerken, bilginin atandığı değişkene container’dan alınan bilginin tipi otomatik olarak çevrilir. Bu çevrim için yapılması gereken;

     real _SayisalDeger             = 0;

str  _SaltMetinDeger          = “”;

container _MyContainer      = [“9.5”,9.5];

SayisalDeger                     = conpeek(c,1);

_SaltMetinDeger                = conpeek(c,2);

Sonuç olarak, container içindeki sayısal olarak bulunan 9.5 değeri _SaltMetinDeger değişkenin içine salt metin olarak otomatik çevrilmiş şekilde aktarılacaktır.

_SayisalDeger değişkeninin içine de, “9.5” salt metin olan değeri, 9.5 sayısal değere otomatik çevrilerek aktarılacaktır.

Tables:

Axapta içerisinde tablolar da değişken olarak tanımlanabilir ve üzerinde işlem yapılabilir. Tablo üzerinde kayıt ekleme, kayıt silme, kayıt güncelleme ve listeleme gibi işlemler gerçekleştirmek istersek, bu tabloyu değişken olarak tanımlamak zorundayız.

Tabloların tanımlanma biçimi;

     TabloAdi _TabloIcinVerilecekDegiskenIsmi;

Tablonun belirtildiği değişkenden sonra noktaya bastığımızda, tabloya ait sahaları ve metotları görebiliriz.

Örnek kullanım;

SalesTable         _SalesTable;

SalesId              _SalesId;

;

_SalesId = _SalesTable.SalesId;

Burada, satış siparişleri tablosundaki (SalesTable) sipariş numarası bilgisini _SalesId değişkeninin içine atadık.

NOT: Metotlar içinde değişkenlerin tanımı sadece en başa tanımlanabilir ve değişkenlerin tanımları bittikden sonra ; ile bir ayraç konur.

Değişken Çevrimleri

Bahsettiğimiz bu değişkenlerin birbirleri arasında çevrimleri söz konusudur. Bu fonksiyonları tanıyalım;

         Boolean:

Başka bir tipe çevrilemez.

         Integer :

Int2Str: Bu fonksiyon ile tam sayı değeri salt metine çevrilebilir.

         Real    :

Num2Str: Bu fonksiyon ile ondalıklı sayısal değer salt metine çevrilebilir.

         Date   :

Date2Str: Bu fonksiyon ile, tarih değeri salt metine çevrilebilir.

Date2Int: Bu fonksiyon ile tarih değeri tam sayı değerine çevrilebilir.

         String   :

Str2Int: Bu fonksiyon ile salt metin değeri tam sayı değerine çevrilebilir. Str2Num: Bu fonksiyon ile salt metin değeri ondalıklı sayısal değere çevrilebilir.

Str2Date: Bu fonksiyon ile salt metin değeri tarih değerine çevrilebilir.

         Enum   :

Enum2Str: Bu fonksiyon ile, enum değeri salt metin değere çevrilebilir.

         Container: Başka bir tipe çevrilemez.

          

Yeliz Korkmaz, MVP

yelizkorkmaz@tnn.net