PB指定某行某列的颜色属性值uf_setcell_color

/*-----------------------------------------------------------------------------------
函数功能:指定某行某列的属性值(字体、背景颜色等)

	参数:
		 	dw					数据窗口名
			args_properties    	(text: 改变字体颜色;  background: 背景色) 
			args_type        	类型(value:指通过值确定行;  row:指通过行号直接确定)
		 	args_col[]       	列名或者列号
			args_info[]   		行号及对应颜色数组
		 	
		 	
		 
  返回值:无

  注: 1. 由于二维数组无法动态声明, 因此用一维数组代替, 通过程序处理。
         因此要求传入到info数组的数据必须是以下格式:
	  
	     {'行号1','颜色','行号2','颜色'}
	  
	  2. 目前针对字段中未设表达式的情况。
	  
	  
	  2004-05-14
	  1. 实现修改字段中已经设置表达式的情况。
	  
----------------------------------------------------------------------------------*/

//如果未传入值,则返回
IF UpperBound(args_col) <= 0 THEN 
	RETURN
END IF

Integer i, j
String ls_colname, ls_properties, ls_old_value
String ls_head, ls_mid, ls_tail, ls_condition
String ls_value, ls_color
//----------2004-05-14
String ls_sign
Boolean lb_sign
//------------------------


FOR i = 1 TO UpperBound( args_col )
	//取列号
	IF IsNumber( args_col[i] ) THEN
		ls_colname = "#" + String( args_col[i] )
	ELSE
		ls_colname = args_col[i]
	END IF
	
	//修改的属性(这里大家可以自己扩展属性)
	CHOOSE CASE args_properties
		CASE "text"
			ls_properties = "color"
			
		CASE "background"
			dw.modify( ls_colname + ".background.mode = '0' " )
			ls_properties = "background.color"
			
	END CHOOSE
	
	//去改列的表达式
	ls_old_value = dw.Describe( ls_colname + "." + ls_properties )
	
	//=========================================================2004-05-14修改
	//取出的值中若含有("),就说明有表达式,或者初始值,
	//而在重建表达式时,有这两个"在是不行的,所以要去除。
	IF Pos(ls_old_value, '"') <> 0 THEN
		ls_old_value = Right(ls_old_value, Len(ls_old_value) - Pos(ls_old_value, "~t"))
		ls_old_value = Left( ls_old_value, Len(ls_old_value) - Pos(ls_old_value, "~t") - 1 )  //去掉最后的引号
	END IF
	//=====================================================================
	
	//根据什么确定行
	CHOOSE CASE args_type
		CASE "value"
			ls_head = "'0~tcase(" + ls_colname +" "
			
		CASE "row"
			ls_head = "'0~tcase(getrow() "
	END CHOOSE
	
	
	FOR j = 1 TO UpperBound( args_info ) STEP 2
		ls_value = args_info[j]		//行号或者改单元格的值
		ls_color = args_info[j+1]	//取颜色
		
		ls_mid = ls_mid + " when " + ls_value + " then " + ls_color
	NEXT
	
	ls_tail = " else " + ls_old_value + ")'"	//结尾
	
	//组合成表达式中的条件
	ls_condition = ls_colname + "." + ls_properties + "="
	ls_condition = ls_condition + ls_head + ls_mid + ls_tail
//	messagebox("abc",ls_condition)
	//执行
	dw.Modify( ls_condition )
	
NEXT


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值