当前位置: 首页 > 工具软件 > tiptop > 使用案例 >

TIPTOP 实现T100程序模糊查询功能

臧威
2023-12-01

使用T100,在menu界面和Ctrl+G功能时,可以只输入部分字符或中文就可以将匹配的程序全部列出来供选择而TOP GP暂时还不支持这个功能,用惯了T100再回来用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()这个函数的时候加入这一段,也可实现模糊查询功能
 类似资料: