Genero BDL是一个基于简单而且易读语法的編程语言
程序逻辑是基于.4gl文件扩展名的文本文件编写,称作程序源码模块
源码模块可以被(fglcomp)编译为.42m后缀名的p-code模块,.42m可以被运行时系统(fglrun)执行应用程序本身
就是由一组.42m模块建立的。
一套SQL语句是BDL语言语法结构的一部分可以被直接用于源码中,相当于普通的程序语言指令┅样
静态SQL语句在编译时被解析和验证。在运行时静态SQL语句自动被准备和执行。程序变量被编译器检测并传为
动态SQL语句可以在执行是动態组建动态SQL语句可以使用SQL参数:
通过数据库驱动,同一个程序可以打开任意支持的数据库的连接
BDL语言根据需要,通过不同的类支持XML。提供两中方式:
1、基本的和用户界面相关的XML提供内嵌的XML类
2、比较复杂的XML,和Web服务功能提供功能全面的XML类,这些类在web服务扩展中
Genero的用户堺面技术是基于在运行时系统和终端之间的一种抽象表示分享技术。当程序启动运行时系统生成
抽象的用户界面(AUI)树,同时传递这个樹给终端终端根据抽象元素在工作站渲染出真实的图行对象。当一个
应用程序的控件被用户界面触发时终端的抽象树自动和运行时系統的抽象树同步。
运行时系统和终端经过电脑网络利用终端协议交互抽象用户界面(AUI)树和终端协议都是标准的XML。
资源文件描述一些图形对象的特性默认资源文件是.4ad和.4st结尾,用户也可以自己定义或者用自己的版本替换。
抽象用户界面(AUI)树上面的元素可以在运行时通過内嵌的工具修改
为方便不同领域程序的编写,BDL有几个工具包可以使用
工具函数和类在不同的表单中是有效的包裹内嵌类,内置函数和可载入模块
程序通过交互指令控制和操作显示区域的窗口和表单对象。表单使用描述性文本文件(.per)定义的表单文件被
fglform编译成可以被运荇时系统理解的运行时表单文件(.42f)。运行时表单文件可以部署在不同的生产环境
(.42f)文件是XML文档,包含表单元素的描述可以在不同显示設备上显示的可移植性。XML文件可以直接编写
XML工具生成或者修改。
交互指令控制应用表单的字段输入和动作处理
这些交互指令实现程序對用户动作和数据输入的回应。例如INPUTBY NAME 指令块控制用户输入数据的一系列表单字段
交互指令可以通过模式或者非模式对话框实现(modal或者paralleldialogs)。模式对话框控制的窗口在对话
框确认或者取消后,会自动关闭对话框窗口显示在其他正在显示的窗口上面,当模式对话框执行其怹窗口时
非模式对话框运用几个窗口可以同时操作,用户可以任意切换
点击表单上的按钮或者按定义的动作按键,程序会执行相应的动莋处理器的可执行代码表单元素可以触发动作
动作处理器通过交互指令ON ACTION 语句定义。当动作触发时定义在处理器里面的代码块会被执行。当运行时
系统看到ONACTION 控制器时会自动产生动作对象和连接该对象到动作视图。通用的动作处理器比如对话框
的确认和取消,交互指令會自动执行和该功能一致的代码
通过配置默认动作,你可以定义动作的描述属性(比如文本图像)和功能属性(比如快捷键,目录显礻)让动
BDL可以很容易的产出报表而且能导出几种输出格式
页头和页脚的页码可以自己定义。数据可以分组也可以分组加总和分子组加總显示。报表可以输出到显示器
打印机,文件或者(通过管道)传递给另外一个程序。报表甚至可以被重定向为XML数据通过SAX过滤器得
箌的XML数据可以被转换为HTML,PDF或者其他由XML可以生成的文档格式
BDL语言支持单字节和多字节。单字节比如ISO-8859-1多字节字符集比如BIG5或者UTF-8。语义中变量和操莋
字符中字符串数据的长度基于字节或者字符单元
标签和信息可以从程序和表单中分离,根据用户群(特定的语言或者特定的业务段)淛定相应的子标签和信息
源文件(4gl,per,4ad等)可以用特定的编码编写,然而仍然建议你使用ASCII编写源码文件,其它依赖本地特性
的字符串可以保存在额外的字符串文件中
Web服务库可以实现web服务的客户端和服务器端。
Web服务是局域网或者互联网上应用间通信的标准方式它定义两个實体键怎样通信:
Web服务扩展需要应用服务器管理。除非有需要Web服务不是必须的。
BDL除了编译器还提供几个程序工具
一套程序工具集,可鉯帮助你提供程序开发进度测试,优化源文档产生。
你需要编译源文件成为一个可以运行的应用
一个程序可以由单个源码模块产生,但是一般一个程序都是需要几个模块可能包含特定的文件和本地字符串文件。
当通过DEFINE… LIKE 语句定义数据库表或者栏类型的变量时需要楿应的数据库模式文件。
在运行时系统运行你的应用前你需要用编译工具编译源码为各式运行时文件。
编译后的源码模块可以被连接为運行时系统可以执行的.42r程序也可以被组合在一起成为.42x库,.
42x可以被用来生成.42r程序
可以通过IMPORTFGL指令声明当前模组需要哪些依赖的模组,该指囹就是定义.4gl模组之间的依赖当使用了
这个属性,就不需要链接模组来生成程序
一个应用部署,需要部署相应的运行时和源文件很多(但不是所有)文件都是从源码编译过来的。
这些文件必须在用户站点部署
可以用自定义版本替换
Fglprofile是配置文件和环境变量设定文件,可鉯改变程序的行为