18824582472
论坛版主
论坛版主
  • 发帖数76
  • QQ
  • 金币2654两
  • 威望2563点
  • 钻石0枚
  • 注册日期2017-08-17
  • 最后登录2024-04-18
  • 社区居民
  • 忠实会员
阅读:13811回复:7

[资源分享]TGP GP 实现T100程序模糊查询功能

楼主#
更多 发布于:2017-11-06 15:23
使用T100,在menu界面和Ctrl+G功能时,可以只输入部分字符或中文就可以将匹配的程序全部列出来供选择而TOP GP暂时还不支持这个功能
贴代码
#-------------------------
#实现程序模糊查询功能
#-------------------------
FUNCTION udmtree_getcmdrun(ps_cmd_line)
DEFINE ps_cmd_line  LIKE type_file.chr1000
DEFINE l_cnt        LIKE type_file.num5
DEFINE ls_were      LIKE type_file.chr1000
DEFINE l_sql        STRING
LET l_cnt = 0
SELECT count(gaz01)  INTO l_cnt FROM gaz_file,zz_file
WHERE zz01 = gaz01 AND gaz02 = '2' AND zz011 <> 'MENU'   AND  gaz01 =ps_cmd_line


IF cl_null(l_cnt) THEN LET l_cnt = 0  END IF  #
IF l_cnt >0 THEN
RETURN ps_cmd_line
ELSE




LET l_sql   =" SELECT count(gaz01)  FROM gaz_file,zz_file  ",
" WHERE zz01 = gaz01 AND gaz02 = '",g_lang,"' AND zz011 <> 'MENU'  ",
" AND  (gaz01 LIKE '%",ps_cmd_line,"%' OR gaz03 LIKE '%",ps_cmd_line,"%') "


PREPARE q002_cus102 FROM l_sql
EXECUTE q002_cus102 INTO l_cnt


IF cl_null(l_cnt) THEN LET l_cnt = 0  END IF  #
IF l_cnt = 0 THEN
RETURN ps_cmd_line
END IF


END IF






CALL cl_init_qry_var()
LET g_qryparam.form  = "q_gaz"
LET g_qryparam.state = "i"
LET g_qryparam.CONSTRUCT = 'N'
LET g_qryparam.arg1  = g_lang
LET g_qryparam.where = " gaz01 LIKE '%",ps_cmd_line,"%' OR gaz03 LIKE '%",ps_cmd_line,"%' "
CALL cl_create_qry() RETURNING g_qryparam.multiret


IF NOT cl_null(g_qryparam.multiret)  THEN
LET ps_cmd_line = g_qryparam.multiret
END IF


RETURN ps_cmd_line
END FUNCTION




使用方式:
在程序调用cl_cmdrun((ls_cmd_line) 之前,调用上面这个函数即可
#  by caozq
CALL udmtree_getcmdrun(ls_cmd_line) RETURNING ls_cmd_line
#  by caozq


同理,在Ctrol+G 调用cl_cmdask()这个函数的时候加入这一段,也可实现模糊查询功能
喜欢4 评分0

最新喜欢:

kmswenkmswen StephenStephe... cxa0713cxa071... PerryPerry
游客

返回顶部