01./*-----------------------------------------------------------------------------------
02.函数功能:指定某行某列的tooltip属性值
03.
04. 参数:
05. dw 数据窗口名
06. args_col[] 列名或者列号
07. args_info[] 行号及对应提示信息数组
08.
09. 返回值:无
10.
11.
12. 注: 1. 由于二维数组无法动态声明, 因此用一维数组代替, 通过程序处理。
13. 因此要求传入到info数组的数据必须是以下格式:
14.
15. {'行号1','提示内容','行号2','提示内容'}
16.
17. 2. 目前针对字段中未设表达式的情况
18.
19.----------------------------------------------------------------------------------*/
20.//参考:"~tcase(getrow() when 1 then ~"hello~" else case(getrow() when 3 then ~"ggg~" else ~"~"))"
21.//如果未传入值,则返回
22.IF UpperBound(args_col) <= 0 THEN
23. RETURN
24.END IF
25.
26.Integer i, j
27.String ls_colname, ls_properties, ls_old_value = ""
28.String ls_head, ls_mid, ls_tail, ls_condition
29.String ls_value, ls_color
30.//------------------------
31.String ls_sign
32.Boolean lb_sign
33.//------------------------
34.
35.FOR i = 1 TO UpperBound( args_col )
36. //取列号
37. IF IsNumber( args_col[i] ) THEN
38. ls_colname = "#" + String( args_col[i] )
39. ELSE
40. ls_colname = args_col[i]
41. END IF
42.
43. //修改的属性(这里大家可以自己扩展属性)
44.// CHOOSE CASE args_properties
45.// CASE "text"
46.// ls_properties = "color"
47.//
48.// CASE "background"
49.// dw.modify( ls_colname + ".background.mode = '0' " )
50.// ls_properties = "background.color"
51.//
52.// END CHOOSE
53. dw.modify( ls_colname + ".tooltip.enabled = true " )
54. dw.modify( ls_colname + ".tooltip.isbubble = '1' " )
55.// if len(ls_old_value) = 0 then
56.// dw.modify( ls_colname + ".tooltip.tip = '' " )
57.// end if
58. ls_properties = "tooltip.tip"
59.
60. //去改列的表达式
61. ls_old_value = dw.Describe( ls_colname + "." + ls_properties )
62. if ls_old_value = '?' then
63. ls_old_value = ''
64. end if
65. //=========================================================2004-05-14修改
66. //取出的值中若含有("),就说明有表达式,或者初始值,
67. //而在重建表达式时,有这两个"在是不行的,所以要去除。
68. IF Pos(ls_old_value, '"') <> 0 THEN
69. ls_old_value = Right(ls_old_value, Len(ls_old_value) - Pos(ls_old_value, "~t"))
70. ls_old_value = Left( ls_old_value, Len(ls_old_value) - Pos(ls_old_value, "~t") - 1 ) //去掉最后的引号
71. END IF
72. //=====================================================================
73.// messagebox("2",ls_old_value)
74. //根据什么确定行
75.// CHOOSE CASE args_type
76.// CASE "value"
77.// ls_head = "'0~tcase(" + ls_colname +" "
78.//
79.// CASE "row"
80.// ls_head = "'0~tcase(getrow() "
81.// END CHOOSE
82. ls_head = "'~tcase(getrow() "
83.
84. FOR j = 1 TO UpperBound( args_info ) STEP 2
85. ls_value = args_info[j] //行号或者改单元格的值
86. ls_color = args_info[j+1] //取提示语
87.
88. ls_mid = ls_mid + ' when ' + ls_value + ' then "' + ls_color +'"'
89. NEXT
90. if len(ls_old_value) = 0 then
91. ls_tail = ' else "' + ls_old_value + '"'+")'" //结尾
92. else
93. ls_tail = " else " + ls_old_value + ")'" //结尾
94. end if
95. //组合成表达式中的条件
96. ls_condition = ls_colname + "." + ls_properties + "="
97. ls_condition = ls_condition + ls_head + ls_mid + ls_tail
98.// messagebox("abc",ls_condition)
99. //执行
100. dw.Modify( ls_condition )
101.
102.NEXT
【PB】指定某行某列的tooltip属性值uf_setcell_tooltip
最新推荐文章于 2020-05-05 16:39:21 发布