注: 如果使用先前版本的 EGL 来创建基于 JavaServer Faces 的 Web 应用程序,则在工作台中执行下列操作:
- 单击帮助 > Rational 帮助
- 在帮助系统的搜索文本框中,至少输入以下文字的开头部分:迁移 Web 项目中的
JavaServer Faces 资源。
- 单击“执行”
- 单击迁移 Web 项目中的 JavaServer Faces 资源并遵循该主题中的指示
版本 6.0 增强了 EGL 语言的功能:
- 处理关系数据库的能力得到改进:
- 新增向导使您能够迅速完成以下任务:
- 直接从关系数据库表创建数据部件
- 创建一些 Web 应用程序,这些应用程序可从这类表中创建、读取、更新和删除表行
- 以下是新提供的系统函数:
- sysLib.loadTable 从文件装入信息并将其插入到关系数据库表中。
- sysLib.unloadTable 从关系数据库表卸装信息并将其插入到文件中。
- 如果要生成 Java™ 代码,可通过在游标中导航至下一行(总是满足条件)、导航至第一行、最后一行、上一行或当前行来访问
SQL 数据库行;或者通过在游标中指定绝对位置或相对位置来访问 SQL 数据库行。
- forEach 语句使您能够很轻松地在 SQL 结果集的各行间循环。
- freeSQL 语句释放与动态预编译 SQL 语句相关联的所有资源,关闭与该 SQL
语句相关联的任何打开游标。
- 处理字符串的能力得到改进:
- 可声明新类型的变量和结构项。
新增数字类型如下所示:
- FLOAT
- 表示 8 字节区域,该区域存储最多 16 位有效数字的双精度浮点数
- MONEY
- 表示货币金额,该金额存储为最多 32 位有效数字的定点小数位
- SMALLFLOAT
- 表示 4 字节区域,该区域最多存储 8 位有效数字的单精度浮点数
新增日期时间类型如下所示:
- DATE
- 将特定日历日期显示为 8 位单字节数字
- INTERVAL
- 表示时间跨度,以 1 到 21 个单字节数字表示,并且与“hhmmss”(表示小时、分钟和秒)之类的掩码相关联
- TIME
- 表示某个时刻,以 6 个单字节数字表示
- TIMESTAMP
- 表示某个时刻,以 1 到 20 个单字节数字表示,并且与“yyyyMMddhh”(表示年、月、日和小时)之类的掩码相关联
- 语法还提供了其它选项:
- 总是可以引用结构项数组的元素,如下所示,但从 iFix 更改的角度来看,最好避免使用此语法:
mySuperItem.mySubItem.mySubmostItem[4,3,1]
强烈建议使用以下语法:mySuperItem[4].mySubItem[3].mySubmostItem[1]
- 可在声明参数、use 语句条目、set 语句条目或变量时使用逗号隔开的标识列表,如以下示例所示:
myVariable01, myVariable02 myPart;
- 在数字表达式中,现在可以通过在值前面加上两个星号(**)来指定指数,所以 8 的立方就是 8**3
- 现在可以指定分别解析为日期、时间、时间戳记或时间间隔的表达式;而且日期算术允许您执行各种任务,如计算两个日期之间的分钟数
- 日期和时间处理可使用下列加法:
- DateTimeLib.currentTime 和 DateTimeLib.currentTimeStamp
是反映当前时间的系统变量
- 系统提供了新的有关日期(StrLib.formatDate)、时间(StrLib.formatTime)和时间戳记(sysLib.TimeStamp)的格式函数
- 其中每个函数允许您将一系列字符转换为类型为日期时间的项,以便可在日期时间表达式中使用该项:
- DateTimeLib.dateValue 返回日期
- DateTimeLib.timeValue 返回时间
- DateTimeLib.timeStampValue 返回与特定掩码(如“yyyyMMdd”)相关联的时间戳记
- DateTimeLib.intervalValue 返回与特定掩码(如“yyyyMMdd”)相关联的时间间隔
- DateTimeLib.extendDateTimeValue 接受日期、时间或时间戳记并将其扩展为与特定掩码(如“yyyyMMddmmss”)相关联的项
- 可使用下列新的一般语句:
- for 语句包括一个语句块,当测试求值为 true 时会多次循环运行该语句块。循环开始时会执行该测试并指示计数器的值是否在指定范围内。
- continue 语句将控制权传送至本身包含 continue
语句的 for、forEach 或
while 语句的结束位置。包含语句会继续执行还是结束取决于包含语句开始时引导的逻辑测试。
- 可以同步方式(通过发出函数 sysLib.callCmd)或异步方式(通过发出函数
sysLib.startCmd)运行系统命令。
- 可使用两个新的函数,它们允许您访问循环中的命令行自变量
- sysLib.callCmdLineArgCount 返回自变量的数目
- sysLib.callCmdLineArg 返回位于自变量列表中的指定位置的自变量
- 现在可指定 case 语句,其中每个子句都与一个不同的逻辑表达式相关联。如果使用这一新语法,EGL
运行时将执行与第一个求值为 true 的表达式相关联的语句:
case when (myVar01 == myVar02)
conclusion = "okay";
when (myVar01 == myVar03)
conclusion = "need to investigate";
otherwise
conclusion = "not okay";
end
- 可以控制函数参数是仅用于输入、仅用于输出还是同时用于两者;而且您可以通过接受缺省设置(即不受任何限制的“同时用于两者”)来避免进行选择。
- 在下列情况下,现在可以指定比单一项或常量更复杂的日期时间、文本或数字表达式:
- 通过 return 语句指定提供给操作系统的值时
- 指定在函数调用或程序调用中传递的自变量时;但是,生成时必须知道接收参数的特征
- 现在可以在退出程序时指定复杂数字表达式
开发环境也得到了改进:
- 两个新的功能部件使您能够快速访问部件,即使代码变得很复杂也是如此:
- “部件引用”视图允许您显示程序、库或 PageHandler 引用的 EGL
部件的分层列表;并且可从该列表中访问任何被引用部件
- EGL 搜索机制允许您指定搜索条件以访问工作空间或一部分项目中的一组部件或变量
- 最后,因为广泛使用了 Web 透视图,所以已经不再使用 EGL Web 透视图了。
相关概念
EGL 至 EGL 迁移
有关 EGL 的其它信息的来源
EGL 6.0 iFix 中的新增内容