Variable macro substitution
The & macro function substitutes the contents of the specified variable into the command line. To use a macro in the middle of a word, it is necessary to end the variable name with a ‘.’. Any type of memory variable can be substituted as a macro.
subscript = 10 i10i = 5 ? i&subscript.i 5
& macro substitution is also supported in the Command Window, Console Workspace and Console Tab in the App Inspector from v4.1.
Expression macro substitution
The & macro function can also substitute the result of an expression into the command line. The expression must be enclosed in round brackets.
subscript = "1" i10i = 5 ? i&(subscript + "0")i 5 str1 = "hello" str2 = "world" echo "&str1 &str2" // output "hello world"
& macro substitution is also supported in the Command Window, Console Workspace and Console Tab in the App Inspector from v4.1.
Shell command output substitution
Lianja provides tight integration with the Linux command shell. The ` … ` command sequence (backticks) can be used to run external shell commands that are piped together and to substitute the output into a Lianja character string.
echo "The default directory is `pwd`" echo "There are `ls -l *.dbf | wc -l` tables in this directory"
https://www.lianja.com/doc/index.php/A_Lianja_Primer
In their simplest use just put { expression } anywhere you want a dynamic value to be substituted.
{customers.customerid}
Any expression can be substituted.
{sqllookup("southwind!employees","lastname","'{customers.empid}'","employeeid")}
When used in conjunction with {…} macros, Dialog Panels can display dynamic context sensitive content. This is the JavaScript code used to display a Google map for the customer currently being displayed in the form. It is called by clicking or touching on the “Customer Location” button in the footer menu:
Lianja.showDialogPanel("CUSTOMER LOCATION", "lib:/showdialog_map.rsp?address={customers.address} +{customers.city}+{customers.country}", 500);
Just as you can use {expression} macros in the Lianja Desktop Client you can also use these in your Web and Mobile Apps. The following JavaScript examples show you how to use macros. You use this this same notation in desktop Apps.
Lianja.evaluate("calculateCustomerBalance('{cust.name}’)", function(result) { Lianja.getElementByID("mypage.mysection.myfield").text = result; }, function(errormessage) { Lianja.showErrorMessage("Failed to calculate customer balance"); } ); // execution continues before the result is returned
Macros are evaluated from left to right:
Lianja.evaluate("calculateCustomerBalance('{customers.name}','{customers.id}’)", function(result) { Lianja.getElementByID("mypage.mysection.myfield").text = result; }, function(errormessage) { Lianja.showErrorMessage("Failed to calculate customer balance"); } ); // execution continues before the result is returned
Macros can be nested so that the inner macros are evaluated before the outer macros. This provides the ability to query information from the server and have that information substituted into another call to the server.
Lianja.evaluate("calculateCustomerBalance('{customers.name}'," + "{getCustomerID('{{customers.custid}}')}")), function(result) { Lianja.getElementByID("mypage.mysection.myfield").text = result; }, function(errormessage) { Lianja.showErrorMessage("Failed to calculate customer balance"); } ); // execution continues before the result is returned
This will result in the following macro substitutions being performed in this order.
{{customers.custid}} lets call this result3 {customers.name} let's call this result1 {getCustomerID("result3")} let's call this result2 Lianja.evaluate("calculateCustomerBalance('result1', "result2")
https://www.lianja.com/doc/index.php/Understanding_Macros
set emacros off text The & command is used to perform macro substitution of the contents of memory variables. endtext set emacros on
https://www.lianja.com/doc/index.php/SET_EMACROS
https://www.lianja.com/doc/index.php/SET_MACROS
Perform macro substitution
subscript = 10 i10i = 5 ? i&subscript.i 5
https://www.lianja.com/doc/index.php/%26
Macros
Variable macro substitution
The & macro function substitutes the contents of the specified variable into the command line. To use a macro in the middle of a word, it is necessary to end the variable name with a ‘.’. Any type of memory variable can be substituted as a macro.
subscript = 10 i10i = 5 ? i&subscript.i 5
& macro substitution is also supported in the Command Window, Console Workspace and Console Tab in the App Inspector from v4.1.
Expression macro substitution
The & macro function can also substitute the result of an expression into the command line. The expression must be enclosed in round brackets.
subscript = "1" i10i = 5 ? i&(subscript + "0")i 5 str1 = "hello" str2 = "world" echo "&str1 &str2" // output "hello world"
& macro substitution is also supported in the Command Window, Console Workspace and Console Tab in the App Inspector from v4.1.
Shell command output substitution
Lianja provides tight integration with the Linux command shell. The ` … ` command sequence (backticks) can be used to run external shell commands that are piped together and to substitute the output into a Lianja character string.
echo "The default directory is `pwd`" echo "There are `ls -l *.dbf | wc -l` tables in this directory"
https://www.lianja.com/doc/index.php/A_Recital_Primer