DİAScript Yazım Kılavuzu

💡 DİAScript Nedir? Python tabanlı, esnek ve güçlü betikleme dili. Formlar üzerinde özelleştirilmiş işlemler gerçekleştirmek ve süreçleri dinamik biçimde yönetmek için tasarlanmıştır. Gelişmiş kod editörü ile profesyonel geliştirme deneyimi sunar.

🚀 Akıllı Özellikler

  • ⚡ Otomatik kod tamamlama
  • 🎯 Nesne önerisi sistemi
  • 🔍 Gelişmiş arama (Ctrl+F)
  • 📝 Akıllı girinti

🎨 Görsel Özellikler

  • 🌈 Sözdizimi renklendirme
  • 🔤 Fonksiyon vurgulama
  • 🔢 Sayı formatlaması
  • 📋 Kod blok düzenleme

Form İlk Yüklenme

Formun onLoading özelliği, ekran ilk yüklendiğinde gerekli ayarların yapılmasını sağlayan, aynı zamanda süreç tasarım ekranından forma aktarılan değerlerin alınarak işlenmesine imkân tanıyan, form davranışını dinamik ve esnek bir şekilde yöneten kritik bir kontrol noktasıdır.

txt_Barkod.setFocus()
param = getFormVariable("param")
# eğer sorgu sonucu gelmişse
if param.get("stokResult"):
	param["stokkodu"] = param["stokResult"]["stokkodu"]
	param["aciklama"] = param["stokResult"]["aciklama"]

txt_StokKodu.setValue(param["stokkodu"])
txt_Aciklama.setValue(param["aciklama"])

💡 Açıklama

Yukarıdaki örnekte yer alan getFormVariable fonksiyonu süreç içerisinde gönderilen değişkenlerin alınmasını sağlamaktadır. stokResult değeri Sorgu Çalıştır aracından gelen Satır(Tek Kayıt) tipinde değişkenimizdir.


Buton Tıklama Olayı

Clicked özelliği, kullanıcı tıklamasıyla tetiklenen, ekranda gerçekleşecek aksiyonları yönetmeyi ve ilgili işlemlerin kontrollü bir şekilde yürütülmesini sağlayan, kullanıcı etkileşimini dinamik ve yönlendirilebilir kılan merkezi bir olay noktasıdır.

setFormVariable("formaction", "barkodokut")
close()

💡 Açıklama

setFormVariable fonksiyonu, forma veri gönderimini gerçekleştirmeye olanak tanır. Özellikle birden fazla butonun bulunduğu form tasarımlarında, tetiklemenin hangi butondan geldiğini ayırt edebilmek için ilgili butonun key bilgisi formAction metodu aracılığıyla sürece aktarılır. Bu sayede, form içerisindeki aksiyonlar kontrollü ve özelleştirilebilir bir şekilde yönetilebilir. Örneğin, bir butona tıklama sonrasında formun kapatılması gerektiğinde, bu işlem close() fonksiyonu kullanılarak kolayca gerçekleştirilebilir.


Metin Değişikliği

TextChanged özelliği, bir metin alanındaki yazının değişimini izleyen ve bu değişime bağlı olarak ilgili kontrollerin veya işlemlerin tetiklenmesini sağlayan, kullanıcı girişlerini dinamik ve anlık olarak yönetmeye imkân tanıyan bir olay noktasıdır.


Enter Tuşu Basımı

ReturnPressed özelliği, bir metin alanında kullanıcı Enter tuşuna bastığında tetiklenen, bu eyleme bağlı olarak ilgili işlemlerin başlatılmasını veya form davranışının yönlendirilmesini sağlayan, kullanıcı etkileşimlerini daha kontrollü ve akıcı yönetmeye imkân tanıyan merkezi bir olay noktasıdır.

setFormVariable("formaction", "barkodokut")
close()

💡 Açıklama

Click olayı ile gerçekleştirilen işlemler, kullanıcı etkileşimini artırmak amacıyla Enter tuşuna basıldığında da returnPressed olayı üzerinden aynı şekilde uygulanabilir. Böylece buton tıklamaları ile klavye etkileşimleri arasında tutarlılık sağlanarak form davranışı daha esnek ve kullanıcı dostu bir hâle getirilebilir.


Düzenleme Tamamlandı

EditingFinished özelliği, bir metin alanındaki düzenleme işlemi tamamlandığında ve kullanıcı alanı terk ettiğinde tetiklenen, bu eyleme bağlı olarak gerekli kontrollerin veya işlemlerin yürütülmesini sağlayan, form davranışını güvenli ve kontrollü bir şekilde yöneten merkezi bir olay noktasıdır.

sayi1 = int(float(tutar.getValue()))
sayi2 = int(float(indirim.getValue()))

fark = sayi1-sayi2
total.setValue(fark)

💡 Açıklama

Örneğin, iki farklı sayı alanına yapılan girişlerin takip edildiği bir senaryoda, ikinci alana değer girildiğinde bu iki alan arasındaki farkın hesaplanması gerekebilir. Bu durumda, alınan değerlerin farkı dinamik olarak işlenir ve elde edilen sonuç, yeni bir sayı alanına set edilerek forma yansıtılır. Böylece kullanıcı, girdiği verilerin anlık olarak işlenmiş hâlini görebilir ve süreç daha etkileşimli bir yapıya kavuşur.


Alana Odaklanma

FocusIn özelliği, bir form kontrolü veya metin alanı kullanıcı tarafından seçildiğinde veya odaklandığında tetiklenen, bu esnada gerekli kontrollerin yapılmasını veya özel davranışların başlatılmasını sağlayan, kullanıcı etkileşimini dinamik ve yönlendirilebilir bir şekilde yönetmeye imkân tanıyan bir olay noktasıdır.


Alandan Çıkış

FocusOut özelliği, bir form kontrolü veya metin alanı kullanıcı tarafından terk edildiğinde ya da odağı başka bir alana geçtiğinde tetiklenen, bu anda gerekli kontrollerin yapılmasına veya ek işlemlerin devreye girmesine imkân tanıyan, form davranışını düzenli ve kontrollü biçimde yöneten önemli bir olay noktasıdır.


Liste Seçimi

Selected özelliği, ekrandan seçim modu ile açılan bir listenin kapatılmasının ardından tetiklenen; seçilen değerlerin işlenmesine, ilgili kontrollerin yapılmasına veya form davranışının yönlendirilmesine imkân tanıyan, kullanıcı etkileşimini tamamlayıcı nitelikte bir olay noktasıdır.

diaLabel_1.setValue(obj.get('unvan'))

💡 Açıklama

Liste formatında açılan ekrandan yapılan seçimler, form içerisinde kullanılabilir hâle getirilmektedir. Yukarıdaki örnekte, lookup (ekrandan seçim) nesnesi üzerinden seçilen cari karta ait unvan bilgisinin alınarak form üzerindeki bir label alanına set edildiği görülmektedir. Bu sayede, kullanıcı seçimleri doğrudan forma yansıtılarak veri akışı daha dinamik ve etkileşimli bir şekilde yönetilmektedir.

📖 Detaylı Bilgi: Ekrandan Seçim Nesnesi için detaylı bilgiye https://doc.dia.com.tr/doku.php?id=gelistirici:diaform:lookup adresinden ulaşabilirsiniz.