最新消息:本站持续更新中,请注意添加收藏夹。搜索关键词时,多换一个同义词。比如要搜索界面,可以尝试页面,画面,PER档等词汇。善于搜索,将大大提高你的查找效率。

4GL+T100程序设计开发常用方法、技巧总结

后端代码 bron1984 4095浏览

参与T100开发前,先熟悉T100常见的几个基本命名:

利用命令 r.r  azzi900 新建一个程序编号;
利用命令 r.r  adzi800 建立一张开发需求单;
利用命令 r.r  azzi910 维护作业编号;
利用命令 r.r  azzi850 维护程序运行权限;
利用命令r.r  adzi140或者r.t数据表设计器(建立表格、模块选择CIT)
新建表格:

r.t打开表格设计器,新建一个表格,选择相应的开发需求单和模组,对表格添加字段并且设置相应属性;
设置相应的主外键关系,外键设置时需要注意对应的位置关系;
一般表格设计需要拖入grpB(基础资料档),里面包含异动资讯的相关字段;
表格新建完成后需要执行异动,异动之后才会成为真正的表格;
异动之后需要选择DBA的前三项(产出资料表刚要、清单、结构与规格设定)
新增程序的开发流程:

在azzi900 新建一个程序编号;(输入程序编号即可)
在adzi800 建立一张开发需求单;(输入在azzi900新建的作业编号,需求,新建人。在作业开发添加项次1和作业编号,其余为tiptop)
回到T100设计器,选择“下载规格”,查找到刚建立的程序编号,并使用对应的开发需求单,签出规格及代码;(画面及代码)
回到T100设计器,选择“常用工具”->“画面产生器”,录入程序编号,选择样板类型;
到字段设置中,选择数据来源表,并选择需要的栏位到右边;
生成画面;
回到T100设计器,下载画面规格,并按需求调整,上传画面规格;
回到T100设计器,选择下载程序,然后下载代码到本地;
按需求调整代码,并上传;
打开azzi910,维护作业编号(输入作业编号即可);
打开azzi850,维护程序的运行权限,在“职能角色编号”输入admin搜索出所有作业编号,然后在基本数据中双击添加自己的编号 ;
根据以上步骤进行操作以后,一个新建程序基本已经完成了,接下来讲讲常用的操作:

开窗:

先在画面中将控件属性设置为允许开窗(右键对应字段开启)
在T100设计器中,打开“开窗设计器”并设计好窗体信息,写好sql语句;(此步骤可以参考其它开窗设计器来做)
在construct函数和input函数下的ON ACTION controlp INFIELD xxxxxxx字段中添加开窗逻辑:
construct函数:(程序在查询的时候会调用此开窗逻辑)

INITIALIZE g_qryparam.* TO NULL
LET g_qryparam.state = 'c'			#'c'代表此窗体为复选框
LET g_qryparam.reqry = FALSE
CALL q_imaf001()                            #调用设计好的窗体
DISPLAY g_qryparam.return1 TO psamuc002  	#将窗体的回传值显示在画面对应的字段栏位中
NEXT FIELD psamuc002                     	#鼠标定位至对应的字段栏位中

input函数:(程序在新增的时候会调用此开窗逻辑)

INITIALIZE g_qryparam.* TO NULL
LET g_qryparam.state = 'i'					#'i'代表此窗体为单选框
LET g_qryparam.reqry = FALSE
CALL q_imaf001()						#调用设计好的窗体
LET g_psamuc_d[l_ac].psamuc002 = g_qryparam.return1         #将开窗的回传值保存
DISPLAY g_psamuc_d[l_ac].psamuc002 TO psamuc002             #将回传值显示到画面上
NEXT FIELD psamuc002                          		#鼠标定位至某一栏位

程序设计中,需要对某一字段添加错误信息提示:

INITIALIZE g_errparam TO NULL 
LET g_errparam.extend = "警告:"       #错误信息的前缀
LET g_errparam.code = 'aap-00113'      #错误信息代码,在常用工具->错误讯息维护作业中添加
LET g_errparam.popup = FALSE           #错误信息是否需要弹框(false不用,true则有)
CALL cl_err()
NEXT FIELD CURRENT  

R作业进行打印时的操作顺序和步骤:

1.生成画面后,进azzi901生成报表元件,后面改名_g01;
2.签出报表元件;
3.进入adzp188进行报表元件设计:添加资料表,添加字段,改变群组;
4.设置参数:参数说明:where condition 参数编号:tm.wc;对单头单身排版;
5.生成样板和元件(未来只需要改变元件);
6.下载xxxxxx_g01,修改xxxxxx_g01_sel_prep 的g_where参数,如:

#add-point:sel_prep g_order name="sel_prep.g_order"
LET g_where = " WHERE itchucent = itciucent AND itchucdocno = itciucdocno",
              " AND itciuc001 = itcguc001",
              " AND ",tm.wc CLIPPED

7.在主程序里面的process中增加一下代码:

IF cl_null(g_master.wc) THEN
    CALL l_arg.clear()
    LET l_token = base.StringTokenizer.create(ls_js,",")
    LET l_cnt = 1
    WHILE l_token.hasMoreTokens()
         LET ls_next = l_token.nextToken()
         LET l_arg[l_cnt] = ls_next
         LET l_cnt = l_cnt + 1
     END WHILE
     CALL l_arg.deleteElement(l_cnt)
     LET  g_master.wc = l_arg[01]
ELSE
    LET g_master.wc = g_master.wc,"#AND#apcaent#=#",g_enterprise
END IF
CALL citr112_g01(g_master.wc)

8.上传,并下载GR样板;
9.用Genero Studio打开样板里面的第一个4rp文件;
10.档案→纸张设定,调整间距;
11.在R里面作业call改元件;
12.adzp188可以设置打印出来的排序,一般为单号排序,可以增加项次排序。
程序过单:

在adzi800中找到自己的开发需求单,在构建清单中有自己程序和画面的签出状态;
打开adzi888,根据adzi800中的需求单,根据该需求单,新增一条程序注册数据,在数据清单中依次将操作过的作业、条件输入;(如果是一个新增程序,则需要将作业azzi900、azzi910、azzi902,azzi903等都需要写入,新增的表格则将表格写入adzi150;如果有ACC应用分类码,则将azzi650写入,并将分类码写在对应的Key值上,如果新增了SCC码,则将azzi600写入,并将对于的码值写入Key值中)
在完成程序的构建清单和资料清单填写后,在adzi800当前需求单的状态下,整单操作、导出设计及设置数据将文件保存到本地目录中;
连接VPN,只有连接了VPN才能将程序过单到目的服务器中;
XShell中连接需要过单的目的服务器;
在目的服务器中,打开adzi800,整单操作、导入设计及设置数据;
导入过程完成解压操作即可,加压完成,此作业顺利将过单。
T100开发常用固定变量:

g_enterprise 目前的企業代碼,將限制使用者所能閱讀的資料內容
g_prog 目前執行的作業編號,用於變換畫面顯示資料與產生系統資訊,不可變更
g_code 目前執行的程式代碼(4gl)名稱,不可變更
g_user 目前使用者代碼,將紀錄使用者的操作歷程與權限控制,不可變更
g_qryparam 動態開窗查詢函式資料傳遞變數,使用開窗功能時須先給予相關變數
g_dlang 目前使用者所選取的資料多語言語系代碼,可透過工具進行語系設定
g_site 目前的營運據點名稱,可透過切換讀取不同據點的資料
g_errparam 錯誤代碼傳遞變數,透過此變數可控制錯誤代碼的顯示內容與模式
g_bgjob 該支程式是否以背景模式執行
g_today 今日
T100开发常用变量命名规则:

企业   xxxxent
门店   xxxxsite
人员   xxxxid
部门   xxxxdp
法人   xxxxcomp
项次   xxxxseq
项序   xxxxseq1
状态码 xxxxstus
帐别   xxxxld
单号   xxxxdocno
T100开发常用作业:

artt300    imba_t    artm300 物料基础信息 imaa_t
ainq100 库存查询作业
apmt801  pmba_t    apmm801 交易对象基础信息 pmaa_t
aooi100 门店或者组织 ooef_t
agli010 法人和帐别 glaa_t
apmt500 采购
adbt500 销售
T100目录:

topprd:正式区
toptst:测试区
topstd:标准区
toppth:验证区
常用Shell操作命令:

r.c:编译程序,需在4gl路径之下执行,产生的42m会自动搬至该目录下;
r.cs:为小程序测试用,产生的42m仍在4gl目录下;
r.l:打包可执行档或共享程序档(42r、42x) ;
r.l:xxx ALL 修改子程序/元件,或调整r.q设定后;建议手动执行此指令,将相关呼叫的主程序一并扫出并重新Link;
r.f:编译程序画面;
r.p:预览程序画面;
r.r:运行作业(可以进行模糊查询:1.根据程序编号进行模糊查询(如:r.r axrp);2.根据程序中文说明进行模糊查询(如:r.r 重评价))
r.rd:执行作业后,若SQL错误则会留下 log档;
r.d:Debug工具;
r.dg:Debug工具 原厂DEBUG功能(r.d出错时使用;测试传参时使用);
r.s:产生档案 SCHEMA 的工具;
rebuild:系统重建编译;
常用T100固定函数调用:

cl_set_combo_scc(栏位名称,系统分类码) 下拉框选项,在azzi600里面进行设置
cl_set_combo_scc_part(栏位名称,系统分类码,系统分类码值)  azzi600里面的单身
cl_set_comp_visible(栏位名称,TRUE/FALSE) 判断栏位是否显示
cl_set_toolbaritem_visible(“open_apmt500_01”,TRUE) 是否打开子程序
cl_get_para(g_enterprise,g_site,参数编号) 判断据点参数 “参数编号”在azzi993里面设置
cl_set_comp_att_text(‘pmdldocno’,错误信息) 错误信息
cl_set_act_visible(“accept,cancel”, FALSE) 功能隐藏
———————
版权声明:本文为CSDN博主「zhangyongweis blog」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ZhangYongWei1955/article/details/83543109

转载请注明:赫非域 » 4GL+T100程序设计开发常用方法、技巧总结