Makrolar

Makrolar sunucu üzerinde çalıştırılan, geliştiriciler tarafından belirlenen kod parçalarıdır. 

Raporlarda, java Script dosyalarında, Tüm html içeriklerde Harita CSS içeriklerde makrolar kullanılabilir. Kullanılan yere göre sözdiziminde bazı basitleştirmeler yapılmış olmakla beraber genel kullanım şekli bu dokümandaki gibidir.

Makro dili C# olarak ayarlanmıştır. API üzerinden ulaşılan nesneye ait tüm metodlar kullanılabilir.

Makrolar [=...] şeklinde tanımlanır.  

Harita CSS ve bazı özel alanlarda köşeli parantez kullanılmaz. Bilgi ilgili dokümanlarda yer almaktadır.

Köşeli parantez veya JSON içinde reserve karakterler \] şeklinde yazılmalıdır.

 

[=4*4] [=new Random().Next(0,500)] [=Math.Round(0.47) [=DateTime.Now] [="test".ToUpper()]

Makro ifadesi içerisinde kullanılabilecek context (c) ve Data (d)  isimli iki nesne yer alır. 

Bazı makrolar bir değer üretirken, bazıları görünürlük kontrolü yapar. Makro içinde c# nesneleri ve GEODI/MOBIDI’ye özel nesneler kullanılabilir. Burada iki nesne, d ve c, nesne önemlidir.

Data (d) Nesnesi

Makronun kullanıldığı yere göre tipi değişiklik gösterir. Makro kullanılan yerde data nesnesinin veri tipi bilinmelidir. Developer dokümanları ve Readme.txt dosyalarında tipler yazmaktadır.  GEODI raporlarında Data nesnesi GeodiEntry'dir.  

<div> <label> Dosya Adı : </label> [=d.OutputGeodiContent.DisplayName] </div>

Context (c) Nesnesi

Makro kullanılan her yerde kullanılabilir. EvaluatorContext nesnesidir. Yardımcı yöntemler ve Harita çizimi için ölçek, çizilmekte olan geometri bilgileri içerir. Ölçek ve çizilmekte olan geometri bilgileri harita css dışında tanımsızdır.

[=c.ToString(DateTime.Now,"en-US","dd MMM yyyy")]

 

context içeriiğinde sınırlı sayıda yardımcı yöntem bulunmaktadır. context["HelperName"]  yöntemi ile daha fazla yardımcı metoda erişilebilir. Tüm yardımcı sınıfların listesine buradan ulaşabilirsiniz.


 

ConditionMacro

Kullanıldığı yerde görünürlük kuralını belirler. Sonucu True/False olan bir ifade gereklidir. Paneller, Raporlar, Akıllı Değerler ve diğer pek çok GEODI/MOBIDI bileşeninde kullanabilirsiniz.

 

Aktif proje GenericSettings nesnesinde bir değeri kontrol edebilirsiniz.

 

Kullanıcının ACC.Discovery grubuna dahil değilse görünmez.

HasPermission methodu DECE.SYSTEMMANAGER' yetkili kullanıcılar için daima true döner.