T100开发实战:开窗设计与全局变量优化的高效实践
在ERP系统开发中,开窗功能和参数传递是每个T100开发者必须掌握的高频核心技能。想象一下这样的场景:当用户点击单据编号字段时,系统需要弹出参照窗口,并根据当前组织自动筛选符合条件的单据列表。这个看似简单的交互背后,涉及开窗设计器配置、参数动态传递、测试验证等一系列技术要点。更关键的是,这些参数往往会在多个功能模块中重复使用——这正是我们需要将局部变量升级为全局变量的典型场景。
1. 开窗功能的设计与实现全流程
开窗功能是T100系统中实现数据参照的核心交互方式。一个完整的开窗实现需要经历参数准备、设计器配置、代码实现和测试验证四个阶段。
1.1 开窗参数准备与设计器配置
在adzi210开窗设计器中,每个开窗识别码都对应特定的参数要求。以常见的单据编号开窗为例,通常需要传递两个关键参数:
- 参照表编号:在aooi100单据别建立流程中定义
- 程序编号:当前程序的全局变量g_prog
sql复制-- 获取当前据点的单据别参照表号示例
SELECT ooef004 INTO g_ooef004
FROM ooef_t
WHERE ooefent = g_enterprise
AND ooef001 = g_site
提示:使用adzi210设计器时,务必通过"开窗测试工具"验证参数组合是否有效,这是排查配置问题的第一道防线
1.2 开窗事件的核心代码实现
开窗功能的代码通常写在ON ACTION controlp事件中。以下是带错误处理的完整实现示例:
4gl复制ON ACTION controlp INFIELD xmzyucdocno
# 检查必要参数是否就绪
IF cl_null(g_ooef004) THEN
INITIALIZE g_errparam TO NULL
LET g_errparam.code = "coo-00668"
CALL cl_err()
RETURN
END IF
# 设置开窗参数
LET g_qryparam.arg1 = g_ooef004 # 参照表编号
LET g_qryparam.arg2 = g_pr
