Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

1.    Tablo Değişkeni İçinde Kolon Seviyesinde İşlem Yapabilme

Image Removed

  • Popup’dan seçilen stok bilgisinin diğer kolona atanması

               kalem.SetValue(kalem_Columns.Ad,kalem.GetValue(kalem_Columns.Kod).CPopUpValue("STOK_ADI"));

  • Popup’dan seçilen stok bilgisinin farklı bir sql kaynağı olan bir kolonu refresh etmesi

           Kod alanının Formül’ünde;

           kalem.RefreshWithColumn(Context,kalem_Columns.Tutar);

           Tutar alanının sql’inde ;

  • object kod = kalem.GetValue(kalem_Columns.Kod);
    string sql = "SELECT TOP 1 * FROM TBLSTSABIT";
    if (kod != null)
        sql = "SELECT * FROM TBLSTSABIT WHERE STOK_KODU = " + kod.CPopUpValue("STOK_KODU").toSql();

2.    Açılır Liste Değişkeni için İl – İlçe Seçim Örneği

        il ve ilce isimli “Açılır Liste” tipinde iki değişken yaratılır.

  1. İl açılır listesinin kaynağı:

          "SELECT SEHIRKODU,SEHIRADI FROM SEHIRSABIT “;

      2. İl açılır listesinin formülü:

          ilce.Refresh();

      3. İlçe açılır listesinin kaynağı:

          "SELECT ILCEKODU,ILCEADI FROM ILCESABIT WHERE SEHIRKODU  = " + il.Value.toSql();

3.   Tablo Değişkeni için Özel Fonksiyonların Kullanımı

...

Panel

Table of Contents

Tip
iconfalse

Form tasarımında kullanılan tüm değişkenlerin özellikleri için tıklayınız.

Panel
borderStyledashed

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()

Panel
borderStyledashed

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()

Panel
borderStyledashed

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);

Panel
borderStyledashed

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

...

   Tablo.GetValue("degeriAlınacakOlanKolonAdi")

   Örneğin, Tablo.GetValue("id")

...

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);

4.   Popup (Açılır Pencere) Değişkenine Değer Ataması Yapılması

...

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<stringobject> satir = new Dictionary<stringobject>();
           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;

Panel
borderStyledashed

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); 

5.   SQL İşlemlerinde Değişken Değerlerini Kullanma

...

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() + "

...

  • "update SATINALMA SET PROJE_KODU =" + PopUp.Content.Items[0][PopUp_Columns.STOK_ADI].toSql() + " , " + " TARIH =  " + Tarih.Value.Value.toSqlDateTime() + " WHERE SIRANO = " + AdSoyad.Value.toSql();
  • "DELETE SATINALMA WHERE PROJE_KODU = " + PopUp.Content.Items[0][PopUp_Columns.STOK_ADI].toSql() ;

6.   REST İşlemlerinde Değişkenlerin Değerlerini Kullanma

    > Giriş parametreleri: Değişkenlerin değeri gönderilmelidir.

       Örnek: DeğişkenAdi.Value

          Items tipinde olanlar için: Tablo.GetValue(Tablo_Columns.Kod) gibi

    • kalem. GetValue(kalem_Columns.Ad)

     > Çıkış parametreleri: Değişkenlerin isimleri gönderilmelidir.

        Örnek: Ad

          Items tipinde olanlar için: Tablo_Columns.Kod gibi

    • kalem_Columns.Ad

              

7.   While Aktivitesi ile Tablo Satırları Arasında Dolaşma    

       While aktivitesinin Condition alanına aşağıdaki formül yazılarak tablonun satırlarını dolaşarak istenilen işlem yapılabilir.

Image Removed

   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.

Image Removed

   Bir sonraki tablo satırına geçilmesi için ise, istenilen işlemler yapıldıktan sonra tekrar bir Kodlama aktivitesi eklenerek aşağıdaki formül yazılmalıdır.

Image Removed

  ";
}

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"])+",";
}

Panel
borderStyledashed

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.

Info

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.
Tip
iconfalse

UBL değişkeni için oluşturulan metotların kullanıldığı örnek akış tasarımı (UblOrnek.nxm), tasarım içerisinde ihtiyaç duyulan xml içerik (UblSample .xml) ve pdf (UblSample.pdf) bulunmaktadır.

Akış, xml ve pdf dosyaları C:\Temp klasörüne kopyaladıktan sonra çalıştırılmalıdı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.
Tip
iconfalse

GetWayBillData metodunun kullanıldığı örnek akış tasarımı (UBLFaturaIRS.nxm) ve tasarım içerisinde ihtiyaç duyulan xml içerik (EWayBillSample.xml) bulunmaktadır.

Akış, xml C:\Temp klasörüne kopyaladıktan sonra çalıştırılmalıdır.

Panel
borderStyledashed

Resim Değişkeni Rosyln Editör Kullanımı

Info

Tablodaki ve forma koyulan resim değişkeni veri kaynağı üzerinden de dinamik olarak doldurulabilmektedir. Örnek için tıklayınız.


1) Resim değişkeni içerisindeki data base64string olarak alınabilir.

string base64Data = ResimDegiskeni.GetImageAsBase64();

2) Resim değişkeni içerisindeki data byte[] olarak alınabilir.

byte[] dataImage =ResimDegiskeni.GetImageAsByteArray();

3) Resim değişkenine base64string formatındaki değeri atamak için kullanılır.

SetImage(string imageBase64Data, string ImageName, bool changeSize) 

imagename: uzantı içerecek şekilde gönderilmelidir.

changesize: resmin gerçek boyutu form üzerinde gösterilmek istenirse true; form tasarımındaki değişken boyutunda gösterilmek istenirse false gönderilmelidir.

YeniResimDegiskeni.SetImage(base64Data,"Resim.png",false);

4) Resim değişkenine byte[] formatındaki değeri atamak için kullanılır.

SetValue(byte[] data, string ImageName) 

imagename: uzantı içerecek şekilde gönderilmelidir.

YeniResimDegiskeni.SetValue(dataImage,"Resim.png");

5) Tablo kolonundaki resim değişkenine değer atamak için kullanılır. Herhangi bir kolonun değer değiştiğinde yazılabilir. 

TabloAdı.SetValue(Tablo kolonu, base64 türünde veri, tablonun aktif satır bilgisi)

Byte[] data;  herhangi bir yerden getirilebilir.
string base64Data = Convert.ToBase64String(data, 0, data.Length);

Tablo.SetValue(TabloInlineRoslyn_Columns.Resim ,base64Data,Tablo.ActiveRowid);

Panel
borderStyledashed

HTML Editör Değişkeni Rosyln Editör Kullanımı

1) Word belgesini HTML Editör değişkeninde göstermek için aşağıdaki metotlar kullanılır.

htmleditor.SetDocx(string base64)

htmleditor.SetDocx(byte[] docx)

2) HTML Editör değişkenine girilen veya set edilen veriyi docx formatına dönüştürmek için kullanılır.

htmleditor.ExportAsDocs()

3) Byte[] tipinde bir word belgesini html string e dönüştürmek için kullanılır.

string html= LFlowUtils .ConvertDocxToHtml(byte[] docx) 

4) String olarak verilen html içeriği byte [] tipinde bir word belgesine dönüştürmek için kullanılır.

byte[] docx=LFlowUtils .ConvertHtmlToDocx(string html) 

5) String olarak verilen html içeriği byte [] tipinde bir pdf belgesine dönüştürmek için kullanılır.

byte[] pdf= LFlowUtils .ConvertHtmlToPdf(string html)

6) HTML Editör üzerindeki özelliklere form yüklendiğinde müdahale edebilmek için kullanılır.

htmlEditor.Tools="bold,italic,underline,undo,redo,strikethrough,unlink,tableWizard,createLink";

7) HTML Editör içeriğinin render edilerek html olarak gösterilmesi için kullanılır.

htmlEditor.IsShowHtmltrue;