Pages

ButtonScript

ButtonScript kontrolü, sayfa düzenleyici kullanılarak HMI sayfasının herhangi bir yerine yerleştirilebilen özelleştirilebilir bir widget'tır. Adından da anlaşılacağı üzere, bu kontrol farklı yaşam döngüsü olaylarına yanıt olarak scriptleri çalıştırmak için tasarlanmıştır ve mantığı doğrudan arayüzden tetiklemek için esnek bir yol sunar.

Özellikler

Etiket

Bu, düğmede görüntülenen metni tanımlar. Kullanıcıya yönelik bir başlık olarak hizmet verir ve düğmenin amacını veya eylemini açıklayabilir.

Görüntü Konumu

URL kullanarak düğme için arka plan resmi belirtir. Bu, standart etiketin ötesinde görsel özelleştirme sağlar ve arayüz tasarımını geliştirir.

Senaryo Yükleniyor

Bu betik, ButtonScript kontrolü ekrana yüklendiğinde otomatik olarak çalışır. Değerleri başlatmak veya kullanıcı etkileşiminden önce koşulları hazırlamak için faydalıdır.

Senaryo

Bu, düğmeye tıklandığında çalıştırılan ana eylem betisidir. Değişkenleri kontrol etmek, işlemleri tetiklemek veya HMI'nın diğer bölümlerini etkilemek için önceden tanımlanmış bir veya daha fazla komut içerebilir.

Senaryo Kapanışta

Bu betik, ButtonScript kontrolü görünümden kaldırıldığında (örneğin, sayfa geçişi sırasında) çalıştırılır. Temizleme, değişkenlerden abonelikten çıkma veya değerleri sıfırlamak için kullanılabilir.

ButtonScript Komut Referansı

Her komut, buttonscript kontrolünün Script, Script on Load veya Script on Close özelliklerinde kullanılabilir.

Mevcut Komutlar

Komuta Tanım
elementById('id') Verilen ID'ye sahip bir widget'a dahili nesne referansı döndürür
set(value) Verilen değeri verilen öğeye ayarlar (şu anda sadece outputbasici destekler).
append(value) Bir outputbasic öğesinin mevcut metin içeriğine bir dizi ekler.
appendRangeCheck(value, maxRef, minRef) Bir değeri yalnızca tanımlanmış bir min-max aralığında kalırsa bir eleman ekler. Referanslar kimlikler veya literal sayılar olabilir.
checkRange(minRef, maxRef, targetId) Öğe değeri min-max aralığının dışındaysa, hedef düğmesini devre dışı bırakır.
truncate(numChars) outputbasic elemanından son N karakteri kısaltır.
getValue() Değeri bir outputbasic elemanından alır.
setWs(value, connectionId, path) WebSocket üzerinden arka uça bir değer gönderir (küresel veya açık bağlantı ve yol kullanır).
setWsOnPosition(value, mapName, connectionId, path) Değeri tüm pozisyonlara gönderir, eğer indeks 0'daysa yerel sayfa indeksi kullanılır.
evalValue('javascript') Mevcut değeri this.value kullanarak hat içi JavaScript kodunu çalıştırır.
changeSign() Bir elemandaki sayısal değeri -1 ile çarpar.
closePopup() Mevcut açılır pencerenin kapanmasını tetikler.
getCurrentPageIndex() Yönlendirici URL'sine göre güncel sayfa indeksini döndürür.
goToPage(true, pageId, index, forceProceed) Uygulamada başka bir rotaya yönlendirilir (/home/pageId).
navigateToPageIndex(pageIndex, mapName, pageId, forceProceed) Index ve mapName ile gezinir (goToPageden daha dinamiktir).
submitContainer() Mevcut widget konteynerinin gönderimini tetikler.
submitAll() Tüm widget'lar için form gönderimini tetikler.
sleep(ms, forceProcess) ms milisaniyeler boyunca script yürütmesini durdurur (isteğe bağlı olarak true döndürebilir).
factor(value, multiplier) Değeri verilen sayıyla çarpar.

Önemli Not: komut satırı her zaman noktalı virgülle bitmelidir;

✅ Örnekler

Örnek 1: Ekleyici Değer ve Kontrol Aralığı

elementById(display_element) .append(8) .checkRange(display_min, display_max, display_submit);

Örnek 2: Kısaltma Değeri ve Kontrol Aralığı

elementById(display_element) .truncate(1) .checkRange(display_min, display_max, display_submit);

Örnek 3: WS Bağlantısı'nda değeri ayarlamak ve açılır pencereyi kapatmak

İlk satırda "display_element" içinde gösterilen değer (eleman özelliklerindeki outputbasic kümesinin kimliği) alacak. Sonra bağlantı bağlamasına ayarlanıyor.
İkinci satır açılır pencereyi kapatır.
elementById(display_element).getValue().setWs(); closePopup();

elementById(display_element).getValue().setWs(); closePopup();
elementById(display_element) .truncate(1) .checkRange(display_min, display_max, display_submit);
elementById(display_element) .append(8) .checkRange(display_min, display_max, display_submit);
factor(value, multiplier)
true
ms
sleep(ms, forceProcess)
submitAll()
submitContainer()
goToPage
navigateToPageIndex(pageIndex, mapName, pageId, forceProceed)
/home/pageId
goToPage(true, pageId, index, forceProceed)
getCurrentPageIndex()
closePopup()
changeSign()
this.value
evalValue('javascript')
setWsOnPosition(value, mapName, connectionId, path)
setWs(value, connectionId, path)
outputbasic
getValue()
outputbasic
truncate(numChars)
checkRange(minRef, maxRef, targetId)
appendRangeCheck(value, maxRef, minRef)
outputbasic
append(value)
outputbasic
set(value)
elementById('id')