Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
EGL (programming language)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Code examples == === Program === An EGL Program part is a generatable logic part with one entry point. Each Program part contains a main() function, which represents the logic that runs at program start up. A program can include other functions and can access functions that are outside of the program. The function main() can invoke those other functions. Program functions are composed of a set of EGL statements, variables, and constants. <syntaxhighlight lang="pascal" line highlight="5"> Program HelloWorld const GREETING string = "Hello, "; function main() myName string = "John"; sayHello(myName); end function sayHello(name String in) SysLib.writeStdOut(GREETING + name + "!"); end end </syntaxhighlight> === Record === An EGL Record part defines a set of data elements. In this example, a record with the name '''''CustomerRecord''''' is defined with 6 fields. <syntaxhighlight lang="pascal"> Record CustomerRecord type BasicRecord customerNumber INT; customerName STRING; customerAddr1 STRING; customerAddr2 STRING; customerAddr3 STRING; customerBalance MONEY; end </syntaxhighlight> EGL has a specialized type of record called '''''SQLRecord''''' that is used to exchange data with a relational database. <syntaxhighlight lang="text"> record Employee type sqlRecord { tableNames =[["Employee"]], keyItems =[EMPNO]} EMPNUMBER string{ column = "EMPNO", maxLen = 6}; FIRSTNME string{ sqlVariableLen = yes, maxLen = 12}; MIDINIT string{ isSqlNullable = yes, maxLen = 1}; LASTNAME string{ sqlVariableLen = yes, maxLen = 15}; DEPT string{ column = "WORKDEPT", isSqlNullable = yes, maxLen = 3}; PHONENO string{ isSqlNullable = yes, maxLen = 4}; HIREDATE date{ isSqlNullable = yes}; end </syntaxhighlight> * In this example, the record '''''Employee''''' is bound to a table (or view) named '''''Employee'''''. === Service === An EGL Service part contains public functions meant to be accessed from other applications or systems. In this example, a service with two functions is defined. <syntaxhighlight lang="pascal" line highlight="1,5,11"> package com.mycompany.services; service EmployeeService function getEmployees() returns(Employee[]) records Employee[0]; // define an empty array of records get records; // retrieve records from the database return (records); // return the records end function addEmployee(emp Employee in) returns (boolean) try add remp; return (true); onException (ex AnyException) return (false); end end end </syntaxhighlight> * In EGL, code is organized in packages (like [[Java (programming language)]]) * The first function, ''getEmployees'', returns an array of records populated from the records in a database. * The second function, ''addEmployee'' adds a new record to the database and returns a true or false depending on whether the record was added successfully. === RUIHandler === The main component of a Rich UI application is a Rich UI handler part. These parts are generated into JavaScript. <syntaxhighlight lang="javascript" line highlight="8"> package com.mycompany.ui; import com.mycompany.services.Employee; import com.mycompany.services.EmployeeService; import dojo.widgets.DojoGrid; import dojo.widgets.DojoGridColumn; handler EmployeeView type RUIhandler { initialUI = [ grid ], onConstructionFunction = start, cssFile = "main.css" } grid DojoGrid { behaviors = [ ], headerBehaviors = [ ], columns = [ new DojoGridColumn { displayName = "First Name", name = "FIRSTNAME" }, new DojoGridColumn { displayName = "Last Name", name = "LASTNAME" }, new DojoGridColumn { displayName = "Salary", name = "SALARY" } ] }; function start() svc EmployeeService { }; call svc.getEmployees () returning to displayEmployees; end function displayEmployees(retResult Employee [ ] in) grid.data = retResult as any [ ]; end end </syntaxhighlight>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)