成功源于专注
« »
2010/07/26工作

43 Views

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 RECORD

DEFINE 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进行计算

最多留言日志

日志信息 »

该日志于2010-07-26 14:42由 bingobin 发表在工作分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过RSS 2.0订阅这个日志的所有评论。

没有评论

发表评论 »

返回顶部