Versions Compared

Key

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

2- Genel Komutlar
Değişken işlemleri Komutu  General Commands

Variable Operations Command (Set)

Set(@barkod
İşlemOperationKullanım ŞekliUsageAçıklamaDescriptionÖrnek KullanımExampleEklendiği Sürüm

Değişkene

değer

atama

Set(değişken,

değer)

Bir değişkene değer atamak için kullanılır. Parametre olarak sabit bir değer ya da başka bir değişken verilebilir.

Version

Assigning multiple values to the variable

Set(variable,

value)

It is used to assign a value to a variable. A fixed value or another variable can be given as a parameter.

Set(@barcode, "B0001")

Set(@sonLot,@lot)

1.0

Değişkene

çoklu

değer

atama

Set(değişkenAssigning multiple values to the variable

Set(variable,

JSON)

Bir değişkenin alt kırılımında birden çok değer tutmak için kullanılır. Atanacak değer bölümü { } karakterleri arasında ve

geçerli JSON formatında yazılır.

JSON formatı dizileri de destekler. Dizi verildiği durumda, değişken değerleri birer satır gibi indeksli olarak kaydedilir.

Eğer dizi elemanları için bir nesne tanımlanmamışsa index numarası kullanılır.

JSON içinde sabit metin ya da değişken kullanılabilirIt is used to keep multiple values in the breakdown of a variable. The value to be assigned is written between the { } characters

and in a valid JSON format.

The arrays in JSON format are supported. If an array is given, the variable values are indexed as one row each.

If an object is not defined for array elements, the index number is used.

A fixed text or variable can be used in JSON.

Set(@stok,{"stk_kodu":1,"stk_adiname":"@malzemeadi@materialname","stk_id":1})

KullanımUsage: @stok.stk_kodu

Set(@firmalar@companies,{["A firmasıcompany", "B firmasıcompany", "C firmasıcompany"]})

KullanımUsage: @firmalar@companies.0

Set(@liste,{"satirlarLinelar" : [{"adiname": "Ali", "soyadisoyname" : "Demir"}, {"adiname": "Ali",

"soyadisoyname" : "Demir"}]});

KullanımUsage: @liste.satirlarLinelar.0.adiname

1.0

MetinText

birleştirmecombining

Set(değişkenvariable,

metin1 text1+

metin2text2)

İki metni birleştirmek için kullanılır. Metinler çift tırnak içinde yazılmalıdır. Sabit metin ya da değişken yazılabilirIt is used to combine two texts. Texts should be written between double quotes. A fixed text or variable can be written.

Set(@adsoyad, "Ali " + "Kaya")

Set(@barkod@barcode, "P"+"@kod@code")
1.0

AritmetikArithmetic

İşlemlerOperations

Set(değişkenvariable,

sayı1 number1+-/*

Desteklenen işlemlerSupported operations: Toplama Addition (+ ), Çıkarma Subtraction ( - ), Çarpma Multiplication ( - *), Bölme Division (/), ModMode(%)

İşlemlerde değişken kullanılacaksa, değişkenin sayı değeri olduğu varsayılır.

İşlemin sonucu hatalıysa, sonuç değişkeninin değeri "ERR" olur

Set(@sonucIf a variable is to be used in operations, it is assumed that the variable is a number value.

If the result of the operation is incorrect, the value of the result variable is "ERR".

Set(@result,45 + 9)

Set(@sonuc@result,@sayi1 - @sayi2)

Set(@sonuc@result,@sayi % 5)

1.0
Stil İşlemleri

Style Operations

Set(@Style.

değişkenvariable,

JSON)

El terminali ekranında bilgi göstermekte kullanılan This creates a style for the Text, ShowMessage, PopupView, TableView, MenuItem komutları için bir stil oluşturmayı sağlar. Stiller @Style nesnesi altında bir değişken olarak tanımlanır.

Kullanılabilecek stil türleri :

  • color : Metin rengi - Arkaplan rengi (Telnet renk adlarıyla, çizgi işaretiyle ( - ) ayırarak)

Android için kullanılabilecek renk listesi: commands used to display information on the handheld terminal screen. Styles are defined as a variable under the @Style object.

Types of styles that can be used :

  • color : Text color - Background color (separated by line mark ( - ) with Telnet color names)

List of colors available for Android: https://docs.microsoft.com/tr-trtrtr/dotnet/api/xamarin.forms.color?view=xamarin-forms

  • effect effect : KalınBold/Altı çiziliUnderline/Yanıp sönen Blink (Bold-Underline-Blink birden çok seçenek çizgi işaretiyle options can be used by separating them with a hyphen sign ( - ) işaretiyle ayırarak kullanılabilir)
  • border border : Kenarlık Border (Sadece For Telnet için. Bu seçeneğin tanımlanması halinde, ekranda en az 3 satırlık yer kullanılıronly. If this option is defined, at least 3 lines of space are used on the screen.)
    • None:
    Kenarlık yok
    • No border
    • Single :
    Tek çizgi
    • Single line
    • Double:
    Çift çizgi
    • Double line
    • Dashed:
    Aralıklı çizgi
    • Dashed line
    • Thick:
    Kalın desensize : Metin boyutu (Sadece Android için) (Kullanılabilecek değerler
    • Thick pattern
  • Size : Text size (Only for Android) (Values that can be used: 1-MinikTiny, 2-KüçükSmall, 3-Normal, 4-Büyük) Bu özellik kullanılmazsa varsayılan değer 2 olarak kabul edilir.
Varsayılan stil değerleri
  • Large) If this feature is not used, the default value is considered as 2.

Default style values:

@Style.default.text (Varsayılan metin stiliDefault text style) : {"color" : "White-Black"}

@Style.default.border (Varsayılan çerçeve stiliDefault frame style) : {"border" : "Single"}

@Style.default.title (Varsayılan başlık stili, başlık kullanan komutlar içinDefault title style, for commands that use a title) : {"color" : "White-Black"}

@Style.default.button1 (Varsayılan soldan 1. düğme stili, ShowMessage içinDefault 1st left button style, for ShowMessage) : {"color" : "Black-White"}

@Style.default.button2 (Varsayılan soldan 2. düğme stili, ShowMessage içinDefault 2nd left button style, for ShowMessage) : {"color" : "Black-White"}

@Style.default.button3 (Varsayılan soldan 3. düğme stili, ShowMessage için button1 (Default 3rd left button style, for ShowMessage) : {"color" : "Black-White"}

@Style.default.menu (Varsayılan menü seçeneği stili Default menu option style) : : {"color" : "White-Black"}

@Style.default.menuhover (Varsayılan seçili menü seçeneği stili Default selected menu option style) : {"color" : "Black-White"}

@Style.default.columnHeader (Varsayılan tablo sütun başlıkları stili ColumnHeader (Default table column headers style) : : {"color" : "White-Black"}

Bu değerler oturum açıldığında üstteki değerlerle atanır, kullanıcı tarafından değiştirilebilir.

TableView/PopupView komutunun içinde gösterilen her bir alan için stil tanımlanabilir. @Style değişkenine eklenen fields alanı bu iş için kullanılır. PopupView/TableView tanımı sırasında, gösterilecek her bir alan için fields elemanı altında, alan indeks sayısına göre bir stil tanımlanabilirThese values are assigned with the values above when logged in, they can be changed by the user.

A style can be defined for each field shown in the TableView/PopupView command. The fields field added to the @Style variable is used for this job. In the PopupView/TableView definition, a style can be defined according to the number of field indexes under the fields element for each field to be displayed.

Set(@Style.hataError, {"color" : "Black-White", "effect" : "Bold-Blink"})

Set(@Style.default.text, {"color" : "White-Red"})

KullanımUsage: Text(1,13, @MESAJ2,{"style":"@Style.hataError"})



Set(@Style.baslik, {"color" : "Red-Black","effect" : "Bold-Blink", "size":"4"}) // Android



Set(@Style.popup.fields.1, {"color" : "Green", "effect" : "Bold", "size":"2"})


Set(@Style.popup.fields.2, {"color" : "Red", "effect" : "Bold", "size":"1"})


PopupView(@liste.rows,{"mode":"card","title":"Müşteri Listesi"," fields":["Code|Kodu|10|L","Title|Ünvanı|20|L","City|Şehir|10|L"], "style":"@Style.popup"},@secim

1.0

Android için 1.2

...

Komut Adı

...

Kullanım Şekli

...

Açıklama

...


Text and Date Commands

Command Name

Usage

Description

ExampleVersion

Left

Left(metin, karakter sayısı, sonuç değişkeni)

Verilen metnin solundan itibaren belirtilen sayıda karakteri sonuç değişkenine atar.

Left(@barkod@barcode,5,@malzemekodu)

1.0

Right

Right(metin, karakter sayısı, sonuç değişkeni)

Verilen metnin sağından itibaren belirtilen sayıda karakteri sonuç değişkenine atar.

Right(@barkod@barcode,5,@malzemekodu)

1.0

Mid

Mid(metin, başlangıç, uzunluk, sonuç değişkeni)

Verilen metnin başlangıç karakterinden itibaren belirtilen sayıda karakteri sonuç değişkenine atar.

Mid(@barkod@barcode,5,4, @malzemekodu)

1.0

Pos

Pos(aranan değer, json array ya da metin, sonuç değişkeni)

Bir metnin ya da JSON dizisinin içinde aranan değerin bulunduğu pozisyonu sonuç değişkenine atar.

Metin içinde arama yapılıyorsa karakter konumunu, JSON dizisinde arama yapılıyorsa, dizinin kaçıncı elemanı olduğunu gösterir. JSON nesnesinde dizi adının "param" olması beklenir.

Aranan değer bulunamazsa "-1", işlem hatalıysa Errorlıysa "ERR" sonucu döner.

Pos("001","P001",

@sonuc@result)

SonuçResult: 2

Pos("K03",{"param":

["K01","K02","K03"]},

@sonuc@result)

SonuçResult:3

1.0

TrimLeft

TrimLeft(metin,uzunluk, sonuç değişkeni)

Verilen metnin solundan itibaren belirtilen uzunluk kadarını siler.

TrimLeft(@barkod@barcode,5,@malzemekodu)

1.0

PadRight

PadRight(metin,uzunluk, karakter, sonuç değişkeni)

Verilen metnin sonuna, istenen karakterden belirtilen uzunlukta ekler.

PadRight("K01",5,"0",

@sonuc@result)

SonuçResult: K0100000

1.0

Split

Split(metin, ayraç karakteri,sonuç değişkeni)

Verilen metni, belirtilen karakterleri ayraç olarak olarak kullanarak parçalara böler. Verilen sonuç değişkeninin alt kırılımlarındaki değerlere yerleştirir.

Split(@barkod@barcode, "-",

@kodlar@codes)

KullanımUsage: @kodlar@codes.1

1.0

SplitForm at

SplitFormat(metin,biçim, sonuç değişkeni)

Metni verilen biçime göre değişkenlere böler. Biçim tanımlanırken 1-9 arası sayılar, oluşacak değişkenin alt elemanlarını temsil eder. Yani, 1 olarak işaretlenmiş kısımları sonuç değişkeninin 1. alt elemanına atar.

- karakteri sonuca dahil edilmeyecek bölümleri ifade eder.

*karakteri başta ya da sonda kullanılır. Sonda kullanıldıysa, biçim uzunluğundan kalan kısım 10. alt elemana atılır. Başta kullanıldıysa, metnin sağdan belirtilen biçim kadar kısmı işlenir, öncesi 10. alt elemana atılır.

SplitFormat

("NS140271.98",

"--111111-22",

@sonuc@result)

@sonuc@result.1 = 140271

@sonuc@result.2 = 98

SplitFormat

("123456999",

"111222*",@sonuc@result)

@sonuc@result.1 = 123

@sonuc@result.2 = 456

@sonuc@result.10 = 999

1.0
SplitRegex SplitRegex(metin, regex biçimi, sonuç değişkeni)

Verilen metni, istenen Regular Expression ifadesine göre sonuç değişkenlerine böler.

Kullanılan Regular Expression ifadesi doğru tanımlanmalıdır.

Regular Expression ifadesinde kullanılan her parantez, değişkenin alt elemanı olarak çıktı verir.

SplitRegex("SNO-AAA-

001","SNO-([A-Z]{3})[-.]

(\d+)",@sonuc@result)

@sonuc@result.1 = AAA

@sonuc@result.2 = 001

https://regex101.com

/r/klWTkq/2

1.0

Değişken.

IsNumber

değişken.IsNumber

Verilen değişkenin sayı olup olmadığını belirler. Sayı ise 0 değilse -1 değerini döner

If(@kod@code.IsNumber="0",

Goto(Detay),Goto

(HataError))

1.0

Değişken.

IsDate

değişken.IsDate

Verilen değişkenin tarih date biçiminde olup olmadığını belirler. Tarih date biçiminde ise 0 değilse -1 değerini döner.

If(@kod@code.IsDate="0",

Goto(Detay),Goto

(HataError))

1.0

Değişken.

IsAlpha

değişken.IsAlpha

Verilen değişkenin (harflerden ve sayılardan oluşan) alfanumerik bir değer olup olmadığını belirler. Biçimi uygun ise 0 değilse -1 değerini döner

If(@kod@code.IsAlpha="0",

Goto(Detay),Goto

(HataError))

1.0

Değişken.

Base64

değişken.Base64

Verilen değişkenin değerini Base64 olarak dönüştürür.

Text(1,1,

@malzemekodu.

Base64)

1.2

Today

Today(tarih date biçimi, sonuç değişkeni)

Günün tarihini dateni verilen biçime uygun olarak sonuç değişkenine atar. Kullanılabilecek tarih date biçimleri için şu dokümana başvurulabilir.

Today("dd.MM.yyyy", 

@bugun)

1.0

Now

Now(tarih date biçimi, sonuç değişkeni)

Şu anki tarih date ve saat bilgisini infosini verilen biçime uygun olarak sonuç değişkenine atar. Kullanılabilecek tarih biçimleri date biçimleri için şu dokümana başvurulabilir.

Now("hh:mm",@suan@now)

1.0

FormatDate

FormatDate(gün,ay,yıl,biçim,sonuç değişkeni)

Verilen gün/ay/yıl değerleri ile belirtilen biçimde tarih date oluşturur. Eğer tarih date için uygun değerler verilmemişse geriye -1 değeri döner.

FormatDate(1,1,2000,"

yyyy-MM-dd",@tarih@date)

1.0

FormatDateTime

FormatDateTime(gün,ay,yıl,saat, dakika, saniye,biçim,sonuç değişkeni)

Verilen gün/ay/yıl/saat/dakika/saniye değerleri ile belirtilen biçimde tarih date oluşturur. Eğer tarih date için uygun değerler verilmemişse geriye -1 değeri döner.

FormatDateTime 

(1,1,2000,12,12,0,"

yyyy-MM-dd hh:mm",

@tarih@date)

1.0


İşleyiş Komutları
 

Komut Adı

Kullanım Şekli

Açıklama

Örnek Kullanım

Eklendiği Sürüm

BeginForm /EndForm

BeginForm(Form adı) EndForm()

Script içinde yeni bir form(bölüm) tanımı yapmak için kullanılır. Form adında Türkçe karakterler kullanılmaz.

BeginForm(Giris)

Text(1,1,"Hoşgeldiniz")

EndForm()

1.0

GoForm

GoForm(Form adı)

Scriptin işleyişini belirtilen forma yönlendirir. Sonraki akış gidilen formun içinde tarif edilmelidir.

GoForm(SiparisKabul)

1.0

CallForm 

ReturnForm

CallForm(Form adı)

ReturnForm()

Scriptin işleyişini belirtilen forma yönlendirir ve gidilen formda ReturnForm() satırını gördüğünde, çağıran formda kalınan satıra geri döner.

CallForm(Kontrol)

Text(1,1,@kontrolsonucu)

BeginForm(Kontrol)

Set(@kontrolsonucu, 1+1)

ReturnForm()

EndForm()

1.0

SetReturnLine

ReturnLine

SetReturnLine()

ReturnLine()

Bir formun içinde scriptin işleyişini değiştirmek için kullanılır. SetReturnLine() komutunun verildiği satır işaretlenir, form içinde başka bir yere işlem yönlendirildikten sonra ReturnLine() komutunu gördüğünde işaretlenmiş satıra döner.

SetReturnLine()

if(@kontrolsonucu="",Goto(kontrol),Goto

(devam))

...

kontrol:

Set(@kontrolsonucu, 1+1)

ReturnLine()

1.0

KeyFunction

KeyFunction(tuş adı, komut)

Klavyedeki tuşlara komut atama yapmak için kullanılır.

Tuş parametresi olarak, fonksiyon tuşları ya da ESC,TAB,DEL tuşları çift tırnak içinde yazılabilir.

(Ör. "F1", "TAB","ESC","DEL")

Komut parametresi olarak, basit STC komutlarının tamamı (parametresiz ya da tek parametreli)
kullanılabilir. (Ör. Goto(etiket), ClrScr(), Beep(), GoForm(form), CallForm(form))
Atanmış olan tuşların işlevi form boyunca geçerli kalır.

KeyFunction("ESC",GoForm(SiparisKabul))

1.0

GotoGoto(etiket adı)Bir form içinde işleyişi belirtilen etikete yönlendirmek için kullanılır.if(@deger="1",Goto(kontrol),Goto(devam))1.0

CaseGoto

CaseGoto(değişken adı,JSON)

Verilen değişkenin değerine bağlı olarak belirtilen etikete gidilmesini sağlar. Değişkenin değeri ve gidilecek etiketin bilgileri info JSON biçiminde tanımlanır.

CaseGoto(@sonuc@result,{"0":"LotGiris","1":" 1.0 MiktarGiris"})

1.0

If/Else/EndIf

If(koşul, komut, komut)

If(koşul, komut)

If(koşul)

Else()

EndIf()

Belirtilen koşula bağlı olarak işleyişi yönlendirir. Koşul bölümü AND/OR operatörlerini ve > < >= <= != işaretlerini destekler.

İki şekilde kullanılır:

1- Tek satırda kullanıldığında, hem koşul hem de işletilecek komutlar belirtilir.

Komut bölümlerinde parametre içermeyen ya da tek parametre içeren herhangi bir STC komutu yazılabilir. Etiketlere gitme özelliği GOTO komutuyla yapılır.

2- Else ve EndIf ile birlikte kullanıldığında yapılacak işlemler ilgili kod blokları arasına yazılabilir.

İç içe If blokları oluşturulabilir.

Tek satırda, tek komut parametresiyle çalışan şekli (if,komut) 1.2 sürümüyle eklenmiştir.

If(@fisturu=1,Clrscr(),Goto(HataError)) 1.0 If(@sonuc @result > 5 AND @sonuc @result < 10,Goto(Sec), Goto(Sil))

If(@fisturu=1,Goto(HataError)) // v1.2 den itibaren

If(@sonuc@result=1)

Text(1,1,"HATAError")

Else()

Text(1,1,"TAMAM")

EndIf()

1.0

For/Next

For(değişken adı, başlangıç,

bitiş, artış)

Next()

Döngü ile işlem yapılmasını sağlar.

Verilen değişken, döngü sırasında belirtilen artışa göre otomatik olarak değer alır. Döngü bittiğinde, değişken silinir.

Eğer bir scriptte For komutu tanımlandıysa, Next() komutuna kadar bütün komutlar belirtilen sayıda tekrarlanır.

İç içe FOR döngüleri oluşturulabilir.

For(@i,1,10)                                   

Text(1,@i,@sonuc@result[email protected]_adiname)

Next()

1.0

ResetVariables

ResetVariables()

ResetVariables(JSON)

Hafızadaki değişkenleri temizler. Tüm hafıza değişkenlerini ya da sadece istenen değişkenleri

boşaltabilir, istenen değişkenler hariç tutulabilir.

Bu komut, oturum boyunca geçerli olması gereken değişkenleri boşaltmaz. (Ör: @@Style)

JSON biçimindeki parametrelerde aşağıdaki anahtarlar kullanılabilir:

name : Özellikle temizlenmek istenen değişkenin adı

except : Hariç tutulacak değişkenler

Her iki anahtar için de, hem tek değer hem de bir dizi verilebilir.

ResetVariables() // tüm değişkenleri boşaltır

ResetVariables({"name": "@CurrentItem"}) //

tek bir değişkeni boşaltır

ResetVariables({"name": ["@CurrentItem",

"@carisorgu@AR/APquery"]}) // sadece belli değişkenleri

boşaltır

ResetVariables({ "except" : ["@carisorgu@AR/APquery",

"@depo"] }) //belli değişkenler dışındakileri

boşaltır

LogVariables()

1.0

LogVariables

LogVariables()

Terminal sunucu hafızasındaki kullanıcı oturumuna ait tüm değişkenleri log tablosuna/dosyasına json biçiminde yazar. Değişkenlerin hangi kullanıcı oturumuna ait olduğu da logda yer alır.

LogVariables()1.0

Print

Print(rapor adı,yazıcı sıra no,kopya sayısı, parametreler)

Tanımlanmış rapor dosyalarının yazıcıdan yazdırılmasını sağlar.

Rapor adı : Kullanıcı tanımlı raporun adı

Yazıcı sıra no: SYS'de Yazıcı Tanımlarında yazıcıya ait sıra numarasıdır. 0 yazılırsa kullanıcıya tanımlı yazıcı seçilir.

Kopya sayısı: Raporun kopya sayısı

parametreler: Rapor içinde kullanılan parametrelere değerlerinin gönderildiği kısım. json formatında yazılır.

Print("Fis_Rapor",0,1, {"fis_id": @fisid,"belgedocument_no" : "@belgeno@documentno"})

1.0

Sql

Sql(metin olarak sorguquery,sonuç

değişkeni)

Sql({"report": "sorgu query raporu

adı", "param1" :"değer1" },

sonuç değişkeni)

Veritabanında belirtilen metin ya da rapor sorgusunu querysunu çalıştırır. Dönen değerleri sonuç

değişkenine yazar.

İki şekilde kullanılabilir:


1- Metin sorgular querylar : Sorgu query metni çift tırnak içinde yazılır.


2- Kullanıcı tanımlı raporlar : JSON biçiminde çalıştırılacak rapor ve rapora gönderilecek

parametreler tanımlanır.

Sonuç değişkeninde aşağıdaki bilgiler info bulunur:

rowCount : Sorgudan querydan dönen kayıt sayısı

rows: Sorgudan querydan dönen kayıtların listesi. Bu listede, 1 den başlayarak satır değerlerine ulaşılabilir.

Sql("SELECT COUNT(*) as SAYI from

WorkOrderLine With(NOLOCK) where

SlipId=@@WorkOrder.Id",@SatirSayisi@LineNumber)

Sql({"report":"LotKontrolLotControl","TrackingNumber":"

@LotNo"},@sonuc@result)

If(@sonuc@result.rowCount = 0)

Goto(HataError)

Else()

Text(1,1,"@sonuc@result.rows.1.Name")

EndIf()

1.0

Login

Login(kullanıcı adı, şifre)

Uygulamaya giriş yapmak için kullanılır. Sadece Telnet el terminallerinde ve gerekli olduğu durumlarda kullanılmalıdır. Terminal parametrelerinde "kullanıcı yetkilendirmesi" özelliği açıksa, bir işlem yapmaz.

Login("ali", "1")1.0
LogoutLogout() Uygulamada açık olan kullanıcı oturumunu kapatmak için kullanılır.Logout()1.0
Http

Http(metot, url, headerJSON

bodyJSON, @sonuc@result)

Script içinden REST API çağrısı yapılmasını sağlar.

metot : GET, POST, PUT değerlerini alır.

url: Bağlanılacak API adresinin bilgisiinfosi. http ya da https ile başlayabilir. Çalıştırılacak işlem "url query string" kullanımını içeriyorsa, ilgili parametre değerleri url içinde verilir.

headerJson : Yapılacak http isteğinin başlık bilgisi infosi olarak gitmesi istenen bilgiler info JSON biçiminde girilir. Basic authentication ya da JWT token gibi bilgiler info için kullanılabilir.

bodyJSON: Http isteğine değer olarak gönderilecek bilgiler info JSON biçiminde girilir.

sonuc: Yapılan isteğin sonucunda dönen bilgiler info bu değişkene yazılır.

Komutun sonucunda 200 cevabı geldiğinde result değeri olarak 0, diğer durumlarda -1 değeri yazılır. Message değeri olarak verilen hata bilgisi Error infosi yazılır.

Set(@kullanicibilgi@userinfo, "@kullaniciadi@username:@sifre@password")

Set(@header, {"Content-Type":"application

/json", "Authorization":"Basic @kullanicibilgi@userinfo.

base64"})

Set(@body, {"firmno":"@firma@company", "sessionId":"

@id"})

Http("POST","http://server.com/api/v1

/token", @header,@body,@sonuc@result)

//Query string

Http("GET","http://server.com/api/v1/Items?

code=@kod@code", @header,,@sonuc@result)

1.0