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