2- General Commands

Variable Operations Command (Set)

OperationUsageDescriptionExampleVersion

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(@lastLot,@lot)

1.0

Assigning multiple values to the variable

Set(variable,

JSON)

It 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(@stock,{"stk_code":1,"stk_name":"@materialname","stk_id":1})

Usage: @stock.stk_code

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

Usage: @companies.0

Set(@list,{"Lines" : [{"name": "Ali", "surname" : "Demir"}, {"name": "Ali",

"surname" : "Demir"}]});

Usage: @list.Linelar.0.name

1.0

Text

combining

Set(variable,

text1+

text2)

It is used to combine two texts. Texts should be written between double quotes. A fixed text or variable can be written.

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

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

Arithmetic

Operations

Set(variable,

number1+-/*

Supported operations: Addition (+ ), Subtraction ( - ), Multiplication (*), Division (/), Mode(%)

If 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(@result,@number1 - @number2)

Set(@result,@number % 5)

1.0

Style Operations

Set(@Style.

variable,

JSON)

This creates a style for the Text, ShowMessage, PopupView, TableView, MenuItem 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/trtr/dotnet/api/xamarin.forms.color?view=xamarin-forms

  • effect : Bold/Underline/Blink (Bold-Underline-Blink options can be used by separating them with a hyphen sign ( - ))
  • border : Border (For Telnet only. If this option is defined, at least 3 lines of space are used on the screen.)
    • None: No border
    • Single : Single line
    • Double: Double line
    • Dashed: Dashed line
    • Thick: Thick pattern
  • size : Text size (Only for Android) (Values that can be used: 1-Tiny, 2-Small, 3-Normal, 4-Large) If this feature is not used, the default value is considered as 2.

Default style values:

@Style.default.text (Default text style) : {"color" : "White-Black"}

@Style.default.border (Default frame style) : {"border" : "Single"}

@Style.default.title (Default title style, for commands that use a title) : {"color" : "White-Black"}

@Style.default.button1 (Default 1st left button style, for ShowMessage) : {"color" : "Black-White"}

@Style.default.button2 (Default 2nd left button style, for ShowMessage) : {"color" : "Black-White"}

@Style.default.button1 (Default 3rd left button style, for ShowMessage) : {"color" : "Black-White"}

@Style.default.menu (Default menu option style) : : {"color" : "White-Black"}

@Style.default.menuhover (Default selected menu option style) : {"color" : "Black-White"}

@Style.default.ColumnHeader (Default table column headers style) : : {"color" : "White-Black"}

These 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.Error, {"color" : "Black-White", "effect" : "Bold-Blink"})

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

Usage: Text(1,13, @MESSAGE2,{"style":"@Style.Error"})



Set(@Style.title, {"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(@list.rows,{"mode":"card","title":"Customer List"," fields":["Code|Code|10|L","Title|Title|20|L","City|City|10|L"], "style":"@Style.popup"},@selection

1.0

1.2 for Android


Text and Date Commands

Command Name

Usage

Description

ExampleVersion

Left

Left(text, number of characters, result variable)

Assigns the specified number of characters to the result variable starting from the left of the given text.

Left(@barcode,5,@materialcode)

1.0

Right

Right(text, number of characters, result variable)

Assigns the specified number of characters to the result variable starting from the right of the given text.

Right(@barcode,5,@materialcode)

1.0

Mid

Mid(text, start, length, result variable)

Assigns the specified number of characters to the result variable starting from the initial character of the given text.

Mid(@barcode,5,4, @materialcode)

1.0

Pos

Pos(searched value, json array or text, result variable)

Assigns the position of the searched value in a text or JSON array to the result variable.

If searching is performed in the text, it shows the character position, if searching is performed in the JSON array, it shows which elements of the array it is. In the JSON object, the array name is expected to be "param".

If the searched value is not found, "-1" returns as the result, if the operation is incorrect, the result is "ERR".

Pos("001","P001",

@result)

Result: 2

Pos("K03",{"param":

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

@result)

Result:3

1.0

TrimLeft

TrimLeft(text,length, result variable)

Deletes the specified length from the left of the given text.

TrimLeft(@barcode,5,@materialcode)

1.0

PadRight

PadRight(text, length, character, result variable)

Adds the requested character in the specified length to the end of the given text.

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

@result)

Result: K0100000

1.0

Split

Split(text, bracket, result variable)

Divides the given text into parts by using the specified characters as brackets. Places the values in the breakdowns of the given result variable.

Split(@barcode, "-",

@codes)

Usage: @codes.1

1.0

SplitForm at

SplitFormat(text,format, result variable)

Divides the text into variables according to the given format. When defining the format, the numbers 1-9 represent the child elements of the variable to be generated. It transfers the parts marked as 1 to the 1st child element.

- character refers to sections that will not be included in the result.

* character is used at the beginning or at the end. If it is used, the remainder of the format length is transferred to the 10th lower element. If it is used at the beginning, the part of the text in the specified format on the right is processed. The remaining is transferred to the 10th child element.

SplitFormat

("NS140271.98",

"--111111-22",

@result)

@result.1 = 140271

@result.2 = 98

SplitFormat

("123456999",

"111222*",@result)

@result.1 = 123

@result.2 = 456

@result.10 = 999

1.0
SplitRegex

 SplitRegex(text, regex format, result variable)

Divides the given text into result variables according to the requested Regular Expression.

The used Regular Expression must be defined correctly.

Each parenthesis used in the Regular Expression outputs a child element of the variable.

SplitRegex("SNO-AAA-

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

(\d+)",@result)

@result.1 = AAA

@result.2 = 001

https://regex101.com

/r/klWTkq/2

1.0

Variable.

IsNumber

variable.IsNumber

Specifies whether the given variable is a number. If it is a number, it returns 0; if not, it returns -1.

If(@code.IsNumber="0",

Goto(Detail),Goto

(Error))

1.0

Variable.

IsDate

variable.IsDate

Specifies whether the given variable is a date. If it is in date format, it returns 0; if it is not, -1.

If(@code.IsDate="0",

Goto(Detail),Goto

(Error))

1.0

Variable.

IsAlpha

variable.IsAlpha

Specifies whether the given variable (consisting of letters and numbers) is an alphanumeric value. If the format is appropriate it returns 0; if not, -1.

If(@code.IsAlpha="0",

Goto(Detail),Goto

(Error))

1.0

Variable.

Base64

variable.Base64

Converts the value of the given variable to Base64.

Text(1,1,

@materialcode.

Base64)

1.2

Today

Today(date format, result variable)

Assigns the current date to the result variable in accordance with the given format. This document can be used for date formats that can be used.

Today("dd.MM.yyyy", 

@today)

1.0

Now

Now(date format, result variable)

Assigns the current date and time information to the result variable in accordance with the given format. This document can be used for date formats that can be used.

Now("hh:mm",@now)

1.0

FormatDate

FormatDate(day,month,year,format,result variable)

Creates a date in the specified format with the given day/month/year values. If the appropriate values for the date are not given, the -1 value returns.

FormatDate(1,1,2000,"

yyyy-MM-dd",@date)

1.0

FormatDateTime

FormatDateTime(day, month, year,hour, minute, second,format,result variable)

Creates a date in the specified format with the given day/month/year/minute/second values. If the appropriate values for the date are not given, the -1 value returns.

FormatDateTime 

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

yyyy-MM-dd hh:mm",

@date)

1.0


Run Commands 

Command Name

Usage

Description

Example

Version

BeginForm /EndForm

BeginForm(Form name) EndForm()

It is used to define a new form(section) in the script. Turkish characters are not used in the form name.

BeginForm(Entry)

Text(1,1,"Welcome")

EndForm()

1.0

GoForm

GoForm(Form name)

Directs the operation of the script to the specified form. The next flow should be described in the target form.

GoForm(OrderAcceptance)

1.0

CallForm 

ReturnForm

CallForm(Form name)

ReturnForm()

It redirects the script to the specified form, and when it encounters the ReturnForm() line in the form, it returns to the last line in the calling form.

CallForm(control)

Text(1,1,@controlresult)

BeginForm(control)

Set(@controlresult, 1+1)

ReturnForm()

EndForm()

1.0

SetReturnLine

ReturnLine

SetReturnLine()

ReturnLine()

It is used to change the operation of the script in a form. The line where the SetReturnLine() command is given is marked, and after redirecting the operation to another location in the form, it returns to the marked line when it encounters the ReturnLine() command.

SetReturnLine()

if(@controlresult="",Goto(control),Goto

(cont.))

...

control:

Set(@controlresult, 1+1)

ReturnLine()

1.0

KeyFunction

KeyFunction(button name, command)

It is used to assign commands to the keys on the keyboard.

As a key parameter, the function keys or the ESC, TAB, DEL keys can be written between double quotes.

(For example: "F1", "TAB","ESC","DEL")

As a command parameter, all simple STC commands (without parameters or with one parameter) can be used.

(For example: Goto(tag), ClrScr(), Beep(), GoForm(form), CallForm(form))
The function of the assigned keys remains valid throughout the form.

KeyFunction("ESC",GoForm(OrderAcceptance))

1.0

GotoGoto(tag name)It is used to redirect the operation in a form to the specified tag.if(@value="1",Goto(control),Goto(cont.))1.0

CaseGoto

CaseGoto(variable name,JSON)

Navigates to the specified tag by the value of the given variable. The value of the variable and the info of the target tag are defined in JSON format.

CaseGoto(@result,{"0":"LotEntry","1":" 1.0 QuantityEntry"})

1.0

If/Else/EndIf

If(condition, command, command)

If(condition, command)

If(condition)

Else()

EndIf()

It maintains the running by the specified condition. The condition section contains the AND/OR operators and supports > < >= <= != signs.

It can be used as follows:

1- When used in a single line, both the condition and the commands to be executed are specified.

An STC command that does not contain parameters or contains a single parameter can be written in the command sections. The GOTO command is used to go to tags.

2- When used with Else and EndIf, the operations to be performed can be written between the related code blocks.

The nested If blocks can be created.

The type, which works on a single line with a single command parameter (if, command) was added in version 1.2.

If(@sliptype=1,Clrscr(),Goto(Error)) 1.0 If(@result > 5 AND @result < 10,Goto(Sec), Goto(Delete))

If(@sliptype=1,Goto(Error)) // from v1.2 

If(@result=1)

Text(1,1,"Error")

Else()

Text(1,1,"OK")

EndIf()

1.0

For/Next

For(variable name, start,

end, increase)

Next()

It allows operation with a loop.

The specified variable automatically receives values according to the specified increase during the cycle. When the loop ends, the variable is deleted.

If the For command is defined in a script, all commands by the Next() command are repeated the specified number of times.

The nested FOR loops can be created.

For(@i,1,10)                                   

Text(1,@i,@[email protected]_name)

Next()

1.0

ResetVariables

ResetVariables()

ResetVariables(JSON)

Resets variables in the memory. It can reset all memory variables or just the requested variables, the requested variables can be excluded.

This command does not reset the variables that should be valid throughout the session. (For example: @@Style)

The following keys can be used for parameters in JSON format:

name: Especially, the name of the variable to reset

except: Variables to exclude

For both keys, both a single value and an array can be given.

ResetVariables() // Resets all variables.

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

Resets a single variable.

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

"@AR/APquery"]}) // Resets the specified variables.

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

"@depo"] }) //Resets the variables except the specified variables.

LogVariables()

1.0

LogVariables

LogVariables()

The terminal writes all the variables of the user session in the server memory to the log table/file in JSON format. Which user session the variables belong to is also included in the log.

LogVariables()1.0

Print

Print(report name,printer sequence number,number of copies, parameters)

Prints the defined report files via the printer.

Report name : The name of the user-defined report

Printer sequence number: This is the sequence number of the printer in the Printer Definitions in SYS. If 0 is written, the user-defined printer is selected. 

Number of copies: Number of copies of the report

Parameters: The part where the values of the parameters used in the report are sent. it is written in JSON format.

Print("Slip_Report",0,1, {"Slip_id": @fisid,"document_no" : "@documentno"})

1.0

Sql

Sql(text query, result

variable)

Sql({"report": "query report

name", "param1" :"value1" },

result variable)

Runs the text or report queries specified in the database. It writes the returning values to the result variable. 

It can be used as follows:

1- Text queries: The query text is written between double quotes.

2- User-defined reports: The report to be executed in JSON format and the parameters sent to the report are defined.

The result variable has the following info:

rowCount: the number of records returned from the query

rows: list of records returned from the query. In this list, row values starting from 1 can be accessed.

Sql("SELECT COUNT(*) as NUMBER from

WorkOrderLine With(NOLOCK) where

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

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

@LotNo"},@result)

If(@result.rowCount = 0)

Goto(Error)

Else()

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

EndIf()

1.0

Login

Login(user name, password)

It is used to log in to the application. It should only be used on Telnet handheld terminals and when necessary. If the "user authorization" feature is turned on in the terminal parameters, it will not perform an operation.

Login("ali", "1")1.0
LogoutLogout()It is used to close the user session that is open in the application.Logout()1.0
Http

Http(metot, url, headerJSON

bodyJSON, @result)

It allows a REST API call in the script.

method: GET, POST, PUT values.

url: Info of the API address to be connected. It can start with http or https. If the operation to be executed involves the use of "url query string", the related parameter values are given in the url.

headerJson : The information for the header information of the http request is entered in JSON format. It can be used for information such as basic authentication or JWT token.

bodyJSON: The information to be sent as the value of the http request is entered in JSON format.

result: The information returned as a result of the request is written to this variable.

When the result of the command is 200, the result value is written as 0, in other cases, it is -1. The Error information given as the Message value is written.

Set(@userinfo, "@username:@password")

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

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

base64"})

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

@id"})

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

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

//Query string

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

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

1.0