Değişkenlerin Değerini Alma
Aşağıdaki tabloda değişken tiplerine göre değişkenlerin o anki değerlerinin nasıl alınması gerektiği gösterilmiştir.
Değişken Tipi | Değer Alma Formülü |
Metin/Büyük Metin | metin.Value |
Sayısal | sayi.Value.Value |
Onay | onay.Value.Value |
Açılır liste | Convert.ToString(liste.Value) |
Tarih | tarih.Value.Value |
Açılır Pencere | Pencere.Content.Items[0][Pencere_Columns.NAME].ToString() |
SQL Sorgularında Değişkenlerin Kullanımı
SQL İşleminde veya değişkenlerin kaynak seçimlerinde de formül editörü kullanılmaktadır. Aşağıda SQL sorgularında değişkenlerin değerlerinin nasıl alınacağını gösteren tablolar bulunmaktadır.
Değişken Tipi | SQL Sorgusunda Kullanımı |
Metin/Büyük Metin | metin.Value.toSql() |
Sayısal | sayi.Value.Value.toSql() |
Onay | onay.Value.Value.toSql() |
Açılır liste | liste.Value.toSql() |
Tarih (SQL alanının tipi DateTime ise) | tarih.Value.Value.toSqlDateTime() |
Tarih (SQL alanının tipi DateTimeOffset ise) | tarih.Value.Value.toSql() |
Açılır Pencere | Pencere.Content.Items[0][Pencere_Columns.NAME].toSql() |
Değişkenlere Değer Atama
Formül editörü içerisinde varolan değişkenler ad bilgileri ile kullanılır. Bir değişkene değer atamak için değişkenin Value özelliği kullanılmalıdır.
Değişken Tipi | Değer Atama Formülü |
Metin/Büyük Metin | metin.Value |
Sayısal | sayi.Value |
Onay | onay.Value |
Açılır liste | liste.Value |
Tarih | tarih.Value |
Örnek 1
metin.Value="deneme";
sayi.Value=35;
liste.Value="aa";
onay.Value=true;
tarih.Value=DateTimeOffset.UtcNow;
Örnek 2
1’den sayi1 değişkenine girilen sayıya kadar olan sayıların toplamını sayi2 değişkenine atama
int toplam=0;
for(int i=1;i<sayi1.Value.Value;i++)
{
toplam=toplam+i;
}
sayi2.Value=toplam;
Örnek 3
Saat değişkenine anın saat, dakika ve saniye bilgisini atama
int saat = DateTime.Now.Hour;
int dakika = DateTime.Now.Minute;
int saniye = DateTime.Now.Second;
Saat.Value= LFlowUtils.GetTime(saat,dakika,saniye);
Tablo Değişkeni Rosyln Editor Kullanımı
1) Tabloda tüm satırlardaki sayısal bir kolonun (Örneğin, Tutar kolonu) toplamının alınması için Sum fonksiyonu kullanılabilir.
toplam.Value =tablo.Sum(OrnekTablo_Columns.tutar);
2) Tablodaki istenilen bir kolonun Min, Max değerlerinin alınması için Min/Max fonksiyonları kullanılabilir.
minDeger.Value=Convert.ToInt32(tablo.Min(OrnekTablo_Columns.tutar));
maxDeger.Value=Convert.ToInt32(tablo.Max(OrnekTablo_Columns.tutar));
3) Tablo içeriğinin boş olup olmadığının kontrolü için aşağıdaki formül kullanılabilir.
if(OrnekTablo.Content!=null && OrnekTablo.Content.Rows!=null && OrnekTablo.Content.Rows.Count>0)
4) Tablodaki toplam satır sayısının alınması için aşağıdaki gibi bir formül kullanılabilir.
ToplamSatirSayisi.Value=OrnekTablo.Content.Items.Count;
5) Tablo satırlarını silmek için aşağıdaki formül kullanılabilir.
OrnekTablo .Content.Items.Clear();
6) Tabloda herhangi bir kolonun dolu olup olmadığının kontrolü için asağıdaki formül kullanılabilir.
OrnekTablo.GetValue(OrnekTablo_Columns.Teklif1, true,satırnumarası,"CODE").Assigned()
7) Tablodaki herhangi bir kolonun değerini almak için aşağıdaki formlü kullanılabilir.
Eğer değeri alınmak istenen kolon 'Açılır Pencere' tipinde ise;
Convert.ToString(OrnekTablo.GetValue(OrnekTablo_Columns.Teklif1, true,satırnumarası,"Açılır pencere kolon adı"));
Açılır Pencere dışındaki kolon tiplerinde ise;
Convert.ToString(TalepSatirlar.GetValue(OrnekTablo_Columns.Aciklama, true,satırnumarası));
8) Tablonun kolonları arasında hesaplama yaparak sonucu bir başka kolona yazdırmak için; Hesaplamanın yapılmasının istendiği kolona aşağıdaki örneğe benzer şekilde kod yazılarak tutar ve adet çarpımı total alanına yazılır.
double tutar = Convert.ToDouble(OrnekTablo.GetValue(OrnekTablo_Columns.Tutar));
double adet = Convert.ToDouble(OrnekTablo.GetValue(OrnekTablo_Columns.Adet));
double result = tutar * adet;
OrnekTablo.SetValue(OrnekTablo_Columns.Total, result);
9) Tablodaki herhangi bir kolonunun refresh edilmesi için aşağıdaki komut kullanılabilir.
OrnekTablo.RefreshWithColumn(Context,OrnekTablo_Columns.Metin);
10)Tablonun satırları arasında dolaşmak için while aktivitesi kullanılabilir. Aşağıda bu işlem için gereken adımlar bulunmaktadır. Aktivitenin detaylı kullanım örneği için tıklayınız.
While aktivitesinin koşul bölümünde aşağıdaki komut yazılmalıdır.
OrnekTablo.Content.CheckIsLast();
While içerisinde Flowchart aktivitesi konularak çeşitli işlemler yapılabilir. Flowchart içerisinde ise, Kodlama aktivitesi kullanılarak aşağıdaki formüller ile tablonun o satırının istenilen kolonuna erişilebilir.
OrnekKolonDegeri.Value= Convert.ToString(OrnekTablo.Content.CounterRow[OrnekTablo_Columns.Kod]);
Bir sonraki tablo satırına geçilmesi için, istenilen işlemler yapıldıktan sonra tekrar bir Kodlama aktivitesi eklenerek aşağıdaki formül yazılabilir.
OrnekTablo.IncreaseCounter();
11)Tablonun satırlarını kod ile doldurmak için aşağıdaki formül kullanılabilir.
Dictionary<string, object> satir = new Dictionary<string, object>();
satir.Add(OrnekTablo_Columns.CariKod,"atanacak değer");
OrnekTablo.Content.AddRow(satir);
Tablo kolonu açılır pencere ise;
System.Collections.Generic.Dictionary<string, object> acilirpenceredeger= new System.Collections.Generic.Dictionary<string, object>();
acilirpenceredeger.Add("CODE", code);
acilirpenceredeger.Add("NAME", name);
//açılır pencere değişken değerini açılır pencere değişkenine ekle
NPopupVariableValue popUpVal = new NPopupVariableValue();
popUpVal.Items.Add(acilirpencere);
//tabloya satır değişkenine ekleme bölümü
System.Collections.Generic.Dictionary<string, object> Satir= new System.Collections.Generic.Dictionary<string, object>();
Satir.Add(OrnekTablo_Columns.acilirpencere,popUpVal);
//tabloya satır değişkenini tabloya ekle
UretilecekUrunler.Content.Items.Add(dictTableRow);
12) Tablonun herhangi bir kolonunun özelliğine(salt okunur, görünür) müdahale etmek için aşağıdaki formül yapısı kullanılabilir. Bu formüller tüm rosyln bölümleri üzerinde yazılabilmektedir. Örneğin; formu yüklerken veya bir değişkenin değer değiştiğinde eventinde vs.
Tablo kolonunun görünürlük ayarı için;
Tablo.GetColumn(Tablo_Columns.GizlenecekKolon).Visibility=false;
Tablo kolonunu müdahaleye kapatmak için;
Tablo.GetColumn(Tablo_Columns.SaltOkunurOlacakKolon).ReadOnly=true;
Açılır Pencere (Pop-up) Değişkeni Rosyln Editor Kullanımı
1) Açılır pencere değişkenini kod ile doldurmak için aşağıdaki formül kullanılabilir.
System.Collections.Generic.Dictionary<string, object> OrnekAcilirPencereDegeri = new System.Collections.Generic.Dictionary<string, object>();
OrnekAcilirPencereDegeri.Add("ID",1);
OrnekAcilirPencereDegeri.Add("AD", "Deneme Değer");
OrnekAcilirPencere.Content.Items.Add(OrnekAcilirPencereDegeri);
2) Açılır pencere değişkeninin içeriğini silmek için aşağıdaki formül kullanılabilir.
OrnekAcilirPencere.Content.Items.Clear();
3) Form içerisinde kullanılan açılır pencereden çoklu seçim yapıldığında seçilen verilere aşağıdaki örnekteki gibi ulaşılabilir.
string SeciliDegerler="";
if(OrnekAcilirPencere.Content!=null)
{
for(int i=0;i<OrnekAcilirPencere.Content.Items.Count;i++)
SeciliDegerler += OrnekAcilirPencere.Content.Items[i][OrnekAcilirPencere_Columns.AD].ToString() + " ";
}
4) Tablo içerisinde kullanılan açılır pencereden çoklu seçim yapıldığında seçilen verilere aşağıdaki örnekteki gibi ulaşılabilir.
string SeciliDegerler="";
for(int i=0;i<tablo.GetValue(tablo_Columns.OrnekAcilirPencere).CPopUpValue().Items.Count;i++)
{
SeciliDegerler+=Convert.ToString(tablo.GetValue(tablo_Columns.OrnekAcilirPencere).CPopUpValue().Items[i]["NAME"])+",";
}
UBL Değişkeni Rosyln Editor Kullanımı
Ubl değişkeni için kullanabileceğiniz metotlar aşağıda listelenmiştir. Bu metotlar kullanılarak ubl değişkenine xml veri atanıp, atanan içerikteki değerlere parse metotları yardımıyla erişilebilmektedir.
Akış tasarım aktivitelerinden; UBL Eşleştirme aktivitesi yardımıyla da UBL değişkenindeki değerler; form üzerindeki diğer değişkenlerle eşleştirilebilmektedir. bknz: UBL Eşleştirme Aktivitesi
- string GetXml() : Xml veriyi döndürür
- void Clear() : İçerik değerini temizler.
- void SetXml(string xmlData): Xml(Ubl formatında) ataması yapar.
- void SetXmlFromZipData(string base64ZipData) : base64 formatında dönüştürülmüş bir zip dosyası içerisindeki xml dosya atması yapar.
- object ParseAsObject(string propertyPath): property path olarak verilen değeri nesne içerisindeki değerine object olarak döndürür.
- double ParseAsDouble(string propertyPath, double defaultValue = 0): property path olarak verilen değeri nesne içerisindeki değerine double olarak döndürür.
- double ParseAsInt(string propertyPath, int defaultValue = 0): property path olarak verilen değeri nesne içerisindeki değerine integer olarak döndürür.
- string ParseAsString(string propertyPath, string defaultValue = ""): property path olarak verilen değeri nesne içerisindeki değerine string olarak döndürür.
- DateTime ParseAsDateTime(string propertyPath): property path olarak verilen değeri nesne içerisindeki değerine datetime olarak döndürür.
- IList<object> ParseAsList(string propertyPath): property path olarak verilen değeri nesne içerisindeki değerine IList olarak döndürür.
- IList<UblType> ParseAsList<UblType>(string propertyPath): property path olarak verilen değeri nesne içerisindeki değerine IList olarak döndürür.
- InvoiceType GetInvoiceData(): Xml veriyi fatura tipine dönüştürür.
e-İrsaliye akışında kullanılmak üzere oluşturulan UBL değişkeni için rosyln editör üzerinden nesne tabanlı veri alma işlemi de gerçekleştirilebilmektedir.
- GetWayBillData() : UBL değişkeninde tutulan değeri DespatchAdviceType tipinde irsaliye nesnesine dönüştürür.