应用程序类型:可执行类型和模块程序;
可执行程序,用于创建通常意义上的报表,整个程序由REPORT关键字语句进行引导,可以包含自定义的屏幕,可以直接执行,还可以通过SUBMIT语句或者分配报表事件事务代码来运行,可以包含所有类型的处理块,但不能在其中定义功能模块(可以进行调用),运行时,根据用户交互和程序本身的设计,可能出现所有的运行时事件,包括选择屏幕事件、列表输出事件等;
模块池,程序在创建时由系统自动生成PROGRAM关键字语句进行引导,一般包含程序自身定义的屏幕和对话模块,必须通过事务代码运行(不能设定为后台工作模式),可以包含除报表事件和功能模块所有类型的处理块,运行时,根据用户交互和程序本身的设计,可能出现除了报表事件之外的所有运行时事件;
通常将应用程序分为报表程序和对话程序;
功能组,由FUNCTION-POOL语句引导,包含一个或多个功能模块,也可以包含自己的屏幕,但一般不能直接运行,功能模块是模块化的代码段,也不能直接运行,需要在普通程序中调用,功能组需要在功能模块创建器中进行创建和维护,并且是唯一可以包含功能模块的程序;
类库,有CLASS-POOL语句引导,是系统对象的定义部分,不包括自身的屏幕,也不能直接执行,可以包含一个全局类和多个局部类,类库在工具Class Builder进行创建,其中包含的唯一处理块就是类方法,类库在程序使用全局类时被装载;
接口库,由INTERFACE-POOL语句引导,用于定义对象的接口,可以被任意全局类和局部类实现,不能个直接运行,在工具Class Builder进行创建;
类型组,由TYPE-POOL语句引导,在数据字典中定义,不包含屏幕和处理块,用于定义全局数据类型,声明类型组后就可以使用其中定义的类型;
包含程序,不需要语句进行引导,也不需要包含完整的处理模块(即无需独立编译,因为包含程序只是代码复用),可直接插入其他程序中,成为程序的一部分,通过INCLUDE语句被多个程序引用,但不存在参数接口;