base.Application 提供接口得到程序参数信息
方法:
类方法
getArgumentCount() RETURNING INTEGER 返回传给程序参数的个数
getArgument(position INTEGER) RETURNING STRING 返回传给程序指定position位置值参数的值,position从1开始计数
getProgramName() RETURNING STRING 返回程序名
getProgramDir() RETURNING STRING 返回程序文本所在位置
getFglDir() RETURNING STRING 返回系统运行时环境路径,即FGLDIR
getResourceEnter(name STRING) RETURNING STRING 返回FGLPROFILE指定name名称的参数的值
getStackTrace() RETURNING STRING 返回当前程序堆栈信息
使用步骤:
不需要先创建对象,直接调用该类的方法
示例:
view plaincopy to clipboardprint?
#base.Application.4gl
MAIN
DEFINE l_index INTEGER
#WHENEVER ERROR CALL 后面接的函数不能带括号
WHENEVER ERROR CALL my_handler
#取得FGLDIR的所在路径,系统环境变量$FGLDIR (linux命令:echo $FGLDIR)
DISPLAY "FglDir:",base.Application.getFglDir()
#取得$FGLPROFILE中的配置项:ex 关于数据库驱动文件的配置项dbi.default.driver的值
DISPLAY "FGLPROFILE dbi.default.driver:",base.Application.getResourceEntry("dbi.default.driver")
#取得当前执行程序所在路径
DISPLAY "ProgramDir:",base.Application.getProgramDir()
#取得当前执行程序文件名(不含后缀)
DISPLAY "ProgramName:",base.Application.getProgramName()
#取得当前执行程序的参数个数
DISPLAY "ArgumentCount:",base.Application.getArgumentCount()
FOR l_index=1 TO base.Application.getArgumentCount() STEP + 1
#取每一个参数值
DISPLAY "arg",l_index USING "##",":",base.Application.getArgument(l_index)
END FOR
END MAIN
FUNCTION my_handler()
DISPLAY "base.Application.getStackTrace():"
DISPLAY base.Application.getStackTrace()
END FUNCTION
#base.Application.4gl
MAIN
DEFINE l_index INTEGER
#WHENEVER ERROR CALL 后面接的函数不能带括号
WHENEVER ERROR CALL my_handler
#取得FGLDIR的所在路径,系统环境变量$FGLDIR (linux命令:echo $FGLDIR)
DISPLAY "FglDir:",base.Application.getFglDir()
#取得$FGLPROFILE中的配置项:ex 关于数据库驱动文件的配置项dbi.default.driver的值
DISPLAY "FGLPROFILE dbi.default.driver:",base.Application.getResourceEntry("dbi.default.driver")
#取得当前执行程序所在路径
DISPLAY "ProgramDir:",base.Application.getProgramDir()
#取得当前执行程序文件名(不含后缀)
DISPLAY "ProgramName:",base.Application.getProgramName()
#取得当前执行程序的参数个数
DISPLAY "ArgumentCount:",base.Application.getArgumentCount()
FOR l_index=1 TO base.Application.getArgumentCount() STEP + 1
#取每一个参数值
DISPLAY "arg",l_index USING "##",":",base.Application.getArgument(l_index)
END FOR
END MAIN
FUNCTION my_handler()
DISPLAY "base.Application.getStackTrace():"
DISPLAY base.Application.getStackTrace()
END FUNCTION
#结果:
<topprod:/u1/usr/lee/4gl/42m> fglrun 4gl_base.Application.42m lee yihui
FglDir:/u1/genero/fgl
FGLPROFILE dbi.default.driver:dbmoraB2x
ProgramDir:/u1/usr/lee/4gl/42m/
ProgramName:4gl_base.Application
ArgumentCount: 2
arg 1:lee
arg 2:yihui