标题:请老师能不能帮我解决这个问题
只看楼主
gzzytxy
Rank: 2
等 级:论坛游民
帖 子:77
专家分:16
注 册:2010-1-26
结帖率:69.7%
已结贴  问题点数:10 回复次数:12 
请老师能不能帮我解决这个问题

图1

图2
说明:图1 是用EXCEL的截图 图2 是VFP9中的GRID的截图 现在我想在VFP9中的GRID中显示EXCEL中的哪种背景颜色 有字的就显示 没有的不显示
求代码 谢谢 我的QQ29636150
搜索更多相关主题的帖子: EXCEL 
2012-12-13 14:41
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:2 
设置整列或整行的背景色容易解决,设置单个单元格的背景色有点难度。记得好象在梅子论坛中有这方面的帖子,建议楼主先搜索一下。

活到老,学到老! http://www. E-mail:hu-jj@
2012-12-13 17:13
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:2 
在表格中用SETALL方法试下

坚守VFP最后的阵地
2012-12-13 18:34
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:2 
是的 设置单个单元格的背景色有点难度。
2012-12-13 18:49
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:0 
选中单元格的颜色设置
THIS.SETALL("selectedbackcolor",RGB(0,0,0),"textbox")
2012-12-13 18:52
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
得分:2 
此事易尔,在表单的Init事件中加入如下代码即可:

FOR I=1 TO FCOUNT("C1")  &&假设表文件名为“C1.DBF”
   字段名=FIELD(I)  &&按列提取出字段
   WITH This.Grid1
      .Columns(I).DynamicBackColor="IIF(!EMPTY(&字段名),RGB(128,255,128),RGB(255,255,255))"  &&只要字段不为空就对背景着色
   ENDWITH
NEXT


收到的鲜花
  • 月沐庭轩2012-12-13 20:02 送鲜花  5朵   附言:我很赞同
2012-12-13 19:56
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
得分:2 
6楼的方法值得欣赏和学习!因为,如果把整表的字段全部放在表格上,这样做是可行的。很好用。
但有时候会出现特殊情况:比如:grd 列数量小于表的列数,并且排序次序并不和表列完全一致时,
可能不会出现预期效果,或出错等。因此,在你的基础上,做了个小扩展,扩大了一点通用范围:
不再依赖原表,只与 grd 结构有关.比如:
 
with thisform.grid1
     FOR I=1 TO .columncount
     cmm=".column"+alltrim(str(i))+".controlsource"
     ct=&cmm
     .Columns(I).DynamicBackColor="IIF(!empty(&ct),RGB(128,255,128),RGB(255,255,255))"
     next
 endwith (仅供参考,不当之处敬请指正)

2012-12-13 23:42
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
得分:0 
以下是引用qingfameng在2012-12-13 23:42:10的发言:

6楼的方法值得欣赏和学习!因为,如果把整表的字段全部放在表格上,这样做是可行的。很好用。
但有时候会出现特殊情况:比如:grd 列数量小于表的列数,并且排序次序并不和表列完全一致时,
可能不会出现预期效果,或出错等。因此,在你的基础上,做了个小扩展,扩大了一点通用范围:
不再依赖原表,只与 grd 结构有关.比如:
 
with thisform.grid1
     FOR I=1 TO .columncount
     cmm=".column"+alltrim(str(i))+".controlsource"
     ct=&cmm
     .Columns(I).DynamicBackColor="IIF(!empty(&ct),RGB(128,255,128),RGB(255,255,255))"
     next
 endwith (仅供参考,不当之处敬请指正)

我正想补充呢,被你占先了。
2012-12-14 07:59
gzzytxy
Rank: 2
等 级:论坛游民
帖 子:77
专家分:16
注 册:2010-1-26
得分:0 
7 8楼 我在表单INIT事件中用怎么是一闪而过
2012-12-14 09:39
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
得分:0 
以下是引用gzzytxy在2012-12-14 09:39:14的发言:

7 8楼 我在表单INIT事件中用怎么是一闪而过
你是不是把这个表单单独编成EXE,脱离FoxPro在用啦?如果在VFP环境中的话,绝对不可能一闪而过的。
2012-12-14 10:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-391075-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.331230 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved