3 Şubat 2009 Salı

Centura - Bir table kolonunun null olup olmadığını nasıl test ederim?

If NOT SalIsNull( colsDocClass )

Centura - İmleç bir editbox a gitsin istiyorum. Nasıl yaparım?

--setfocus
Call SalSetFocus ( dfsBenimEditBox )

Centura - Editbox a nasıl değer atarım ?

--editbox a yada item a deger atamak
Set dfsUzmTalepNo = 'bi değer'

--editbox ta bulunan değeri değişkene almak
Set sBirStringDegisken = dfsUzmTalepNo

Centura - Herhangibir nesneyi enable disable nasıl ederim?

--bir item ı enable,disable etmek, örnekteki item editbox
Call SalDisableWindow( dfsUzmTalepNo )
Call SalEnableWindow( dfsUzmTalepNo )

API ile oluşturulan viewlerdeki "comment" ler hakkında

Örnek Comment 'ler
..............................
COMMENT ON COLUMN &VIEW..TALEPNO
IS 'FLAGS=A-IU-^DATATYPE=STRING^PROMPT=TalepNo^';
COMMENT ON COLUMN &VIEW..ISEMRINO
IS 'FLAGS=A-IU-^DATATYPE=STRING^PROMPT=IsemriNo^';
COMMENT ON COLUMN &VIEW..COTYPE
IS 'FLAGS=A-IU-^DATATYPE=STRING^PROMPT=COType^';
..............................

FLAG
****************
Field lerin çalışma zamanındaki davranışları etkiler.
Örneğin LOV(List of Value) flag ı "L" ise F8 ile listeden
seçilmeye çalışıldığında bu alan görüntülenir. "-" ise
görüntülenmez.

FLAGS=

Flag diziliminde sıralama önemlidir.
Örneğin alanı 3. karakter olmalı ve
değeri "-" veya "I" olmalıdır. Her durumda toplam
karakter sayısı 5 olmak zorundadır. Bu kurallara
uymayan girişler ihmal edilir.



Primary yani unique bir key i ifade eder
Flag için olası değerler
P = Parent key
K = Key
A = Attribute


M = Zorunlu
- = Zorunlu Değil


I = Insert e izin verilir
- = Insert e izin verilmez


U = Update e izin verilir
N = Eğer NULL ise Update e izin verilir
- = Update e izin verilmez


L = LOV da görünür
- = LOV da görünmez

Flaglari gereği gibi set ettikten sonra debug consolu
açılarak sırasıyala once Database Library Cache
sonrada Client Cache refresh edilmelidir. Değişiklikler
bu işlemler ardından aktif olur.

Instance Variables/Örnek Değişkenleri

cDataField ata sınıfından türetilmiş bir nesnenin
içerisindeki değeri bir değişkene aktarmak için

Set sBirDegisken = dfBenimcDatafield

satırına benzer bir satır yazılabilir. Ancak
bu yöntem cComboBox, cRecSelExtComboBox, cListBox
ata sınıflarından türetilmiş olan nesnelerin
gözüken(seçili) değerleri okunmaya çalışıldığında
tip uyuşmazlığı hatasına yol açacaktır.

! Tip uyuşmazlığı hatası alınır.
Set sBirDegisken = cmbBenimCombo

! İşlem sonucu başarılıdır.
Set sBirDegisken = cmbBenimCombo.i_sMyValue

Burada kullanılan "i_sMyValue" özelliği
bir instance variable' dır.IFS framework
içerisindeki bazı classlar çeşitli instance
variable lara sahiptir.

Diğer instance variable' lar ve tanımlı
oldukları class listesi aşağıdadır.


Variable Name Defined in class Description
************* ****************** **************************
i_sMyValue cComboBox,
cRecSelExtComboBox,
cListBox Nesnenin içerdiği değer
i_nMyValue cPictureDataItem Nesnenin içerdiği değer
i_hWndSelf cSessionManager Nesneye ait Window handle
i_hWndParent cSessionManager Nesneye ait logical parent Window handle
i_hWndFrame cSessionManager Nesneyi içeren table window veya
dialog box için Window handle

i_sFileName, cPictureDataItem Resim ile ilgili detaylar
i_sFilePath,
i_sDisplayText,
i_bExternalStorage

Centura - Değişken Tanımlama Örnekleri

Number: nCount

Date/Time: dtBirthday

Boolean: bReturn

String: strName

Long String: strLong

Window Handle: hWndHelp

Sql Handle: hSql

Değişken etki alanı/Variable Evaluation
*******************************************
Centura, önce lokal olarak tanımlanmış değişken olup
olmadığını kontrol eder. Eğer bulamazsa daha üst
kademelerde bulmaya çalışacaktır. Arama aşağıdaki
sırada gerçekleşir.

1. Geçerli window a ait Window Variables bölümü veya
Local Variables bölümü.

2. Geçerli window un içinde oluğu window a ait
Window Variables bölümü; onunda içinde olduğu başka bir
window var ise ... böyle devam eder.

3. Application seviyesindeki global değişken
tanımlama bölümü.