【PB】指定某行某列的tooltip属性值uf_setcell_tooltip

来源:互联网 发布:淘宝客手机网站搭建 编辑:程序博客网 时间:2024/06/02 03:28
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  

原创粉丝点击