一、p_qry动态查询程序介绍
在TIPTOP GP系统中,有两种查询程序:
1、hard-code
此类查询程序是由人工完成。
存在源代码档,目录是qry/4gl下。
任何查询都可以用此类方式完成。
程序编写比较繁琐,对于初学者不易掌握。
2、p_qry动态查询程序
此类查询程序是由系统完成。
没有源代码档,系统直接调用配置后完成。
有一定的局限性。
无需编程,容易掌握。
3、字段说明:p_qry
1.动态查询程序名称代码(.form)
2.查询视窗标题
3.本函式为Hard-Code函式:用于占位,防止两种查询程序名称冲突
4.是否忽略单身营运中心设置:一旦勾选,查询仅限于用户所在db
5.本查询程序单身资料不上锁,可更改:勾选后才能更改设置资料
6.客制查询程序:若为客制程序,则须勾选。
1.Input时的Where条件:录入状态下,开窗查询的条件。
2.Construct时的Where条件:查询状态下,开窗查询的条件。
3.需JOIN的TABLE:查询时所涉及到的非查询字段的表。
4.资料会重复,需要DISTINCT属性:增加distinct属性,去除重复资料。
1.资料数据库代码:设定查询资料所在数据库
2.资料表代码: 设定查询资料表
3.字段代码: 设定查询字段
4.字段宽度: 设定窗体中该栏位的宽度
5.本栏回传: 设定是否回传该字段的值
6.字段类型: 设定窗体中该栏位的画面栏位类型
7.本栏需Outer: 设定该字段是否需要outer
8.串查程序代码: 可在窗体中增加相关资料的查询功能
4、参数须透过g_qryparam全局变量传递。
- .form 查询程序代码
- .state 状态 input/construct (i/c)
- .construct 是否作Construct (Y/N)
- .where 其他Where条件
- .pagecount 每页最大浏览笔数
- .default1~5 开窗栏位的预设值
- .arg1~9 查询资料的条件替换值
- .multiret_index 多选资料所要回传的栏位索引值
- .multiret 多选资料的回传值暂存器
- .ordercons ORDER BY的顺序
5、何时采用hard-code,何时采用p_qry
1)sql比较简单则采用p_qry
sql非常复杂则采用hard-code
2)default值超过5个时,只能采用hard-code
3)arg传入值超过9个时,只能采用hard-code
6、construct和input比较【返回值多个】
7、程序中加where条件
WHEN INFIELD(cua281)
CALL cl_init_qry_var()
LET g_qryparam.form ="q_tpu"
LET g_qryparam.default1 = g_cua.cua281
LET g_qryparam.where = " tpu01 = '",g_cua.cua28,"'"
CALL cl_create_qry() RETURNING g_cua.cua281
DISPLAY BY NAME g_cua.cua281
NEXT FIELD cua281
8、传入值: