Genero BDL学习 – 原创
摸过Java / C / C++ / php / vb / javascript / autoit / jsp/ C#
现在我要学习一种新的语言-Genero BDL,祝我好运吧
Genero BDL程序组成
在Genero BDL语言框架中,仍是将程序逻辑、与画面框架分别不同的控件目,因此采用分别编写的方式。一般通称一支一支的小程序(4GL)为Module,称画面结构(PER)为Form,组合后可独立运行的作业为Program。
BDL独立的Program,组成可区分为Module和Form。
Program可以由许多的Module和Form组成。Module使用拓展名为[4GL],Form使用拓展名为[PER],因此用4GL与PER来代表Module与FORM
单一的4GL由一个或者一个以上的Function与Report组成。
一个完整的Program中,必需指定一个特定的Function作为运行入口,此特定的Function即为[Main]。
BDL程序编译、连接与运行
当程序(4GL)及画面(PER)编写完成后,还需要经过编译(Compile)、连结(Link)。
BDL独立的Program,组成可区分为Module和Form。
程序的原始文件名为4gl,编译后会变成扩展名为42m的文件。画面的原文件扩展名为per,编译后会变成扩展名为42f文件。
若作业仅靠一支4GL原始文件程序即可完成编写时,则可以略过(Link)的程序,直接运行。
link后的程序生成为42x的文件,画面文件不需要连接。
不管是42m还是42r都可以通过这种方式直接运行作业,唯一需要注意的是,就是此运行作业公能包含单一的Main函数。
作业运行前,需要先开启用户端的Genero桌面客户端程序软件(GDC),以令fglrun可以与客户端进行沟通。
BDL变量定义与运算
1.变量的字义
在程序中所需要使用的变量(variables),该变量必需要先经过定义,即声明此为量的变量名与变量的数据类型。(变量的定义必须定义在Main,Function或Globals或Report Function之后,如果变量的声明前出现了其它的操作,则为报错,这类似于C语言中的变量定义方法,写完函数名后就要定义完函数中所要用到的所有的变量)
直接定义
DEFINE employee_no CHAR(10)
直接利用数据库字段声明变量(较为欣赏的方式)
DEFINE employee_no LIKE employee.employee_no
说明: 1.使用对应的数据库字段进行变量的声明时,需在声明之前使用(DATABASE database_name)来指定要参照的数据库
说明: 2.编写程序时尽量使用第二种方式
2.变量类型
目前BDL存在以下几种变量的类型
字符类型
CHAR(固定字符)
VARCHAR(非固定字符)
STRING(动态定义大小的字符串空间)
日期类型
DATE(日期类型)
DATETIME(日期时间)
数值类型
INTEGER(4BYTE整数)
SMALLINT(2BYTE整数)
FLOAT(4BYTE浮点数)
SMALLFLOAT(2BYTE浮点数)
DECIMAL(p,s)
MONEY(同DECIMAL,但会在其前面加上$符号)
大量数据类型
BYTE(大量的二进制图片)
TEXT(文本数据)
(BDL对数据的类型要求不是很严格,会自动进行数据的转换。)
3.变量的的集合
变量集合即不合类型的数据的集合。
直接定义
DEFINE rc RECORD
val1 VARCHAR(10),
val2 VARCHAR(20),
time DATE
END RECORD
直接利用数据库字段声明变量(较为欣赏的方式)
DEFINE rc RECORD
val1 LIKE ima_file.ima01,
val2 LIKE ima_file.ima02,
val3 LIKE ima_file.ima03
END RECORDDEFINE rc RECORD LIKE ima_file.*
4.变量的赋值
单个的变量的赋值使用LET指令
MAIN
LET a = 1
LET b = ‘abc’
END MAIN
直接利用数据库字段声明变量(较为欣赏的方式)
DEFINE employee_no LIKE employee.employee_no
初始化一组变数的方法
直接利用数据库字段声明变量(较为欣赏的方式)
INITIALIZE rc.* LIKE img_file.*
INITIALIZE rc.ima01 LIKE img_file.01
INITIALIZE rc TO NULL
5.预定义的变量
有些是系统自定义的变量,可以直接使用
INT_FLAG,很用的一个变量,使用前要初始化为FALSE,当其变为零时,表明用户按下了CANCEL键,用来对用户的选择进行判定
STATUS是对上一句执行的SQL语言进行判定,如果错误的话,为1,否则为零
6.预定义的常量
有些是系统自定义的常量,可以直接使用
NULL,即表示NULL
TRUE,缺省为1
FALSE,缺省为0
NOT FOUND,为数据库查询时无返回结果,缺省为100,不能当成100进行计算
没有评论 ▼