参与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程序设计开发常用方法、技巧总结