首页 TOPGP 正文
  • 本文约2308字,阅读需12分钟
  • 68
  • 0
举报该广告
BDL-FGL_BASE基本语法(base.Application)

BDL-FGL_BASE基本语法(base.Application)

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 

 


📱 扫码关注公众号

公众号二维码

扫描二维码关注我们,获取更多精彩内容
实时更新 · 干货满满

收藏

扫描二维码,在手机上阅读
评论
更换验证码
友情链接