注册 登录
编程论坛 VFP论坛

GRID颜色问题!

hytizj023 发布于 2023-03-23 10:17, 1385 次点击
只有本站会员才能查看附件,请 登录

我想实现,当开奖号为对子的时候,字段零到九,相应的数字变成红色,请教怎么实现
如图:155,把字段五,当中的⑤变成红色
      232,把字段二,当中的②变成红色,以此类推
是针对行,不是列

程序代码:

FOR i=1 TO FCOUNT()
    zd=FIELD(i)
    og.columns(i).header1.alignment=2
    IF BETWEEN(i,11,FCOUNT())
        og.columns(i).header1.caption=RIGHT(FIELD(i),1)
    ENDIF
    DO CASE
        CASE BETWEEN(i,2,4) OR INLIST(i,9)
            og.columns(i).DynamicBackColor="Icase(lx=1,RGB(255,0,0),lX=2,RGB(255,35,255),lX=3,RGB(20,128,255),lX=4,RGB(20,128,20),lX=5,RGB(255,128,20),RGB(255,255,255))"
        CASE BETWEEN(I,11,20) OR BETWEEN(I,31,40) OR BETWEEN(I,51,60)
            og.columns(i).DynamicBackColor="IIF(BETWEEN(&zd,'0','9'),RGB(255,0,0),RGB(255,255,255))"        
            og.columns(i).DynamicForeColor="IIF(BETWEEN(&zd,'0','9'),RGB(255,255,255),RGB(192,192,192))"        
            og.columns(i).DynamicAlignment="IIF(BETWEEN(&zd,'0','9'),2,3)"
            og.columns(i).DynamicFontSize="IIF(BETWEEN(&zd,'0','9'),12,9)"
            og.columns(i).DynamicFontBold="IIF(BETWEEN(&zd,'0','9'),.T.,.F.)"
        CASE BETWEEN(I,21,30) OR BETWEEN(I,41,50)
            og.columns(i).DynamicBackColor="IIF(BETWEEN(&zd,'0','9'),RGB(0,0,255),RGB(255,255,255))"        
            og.columns(i).DynamicForeColor="IIF(BETWEEN(&zd,'0','9'),RGB(255,255,255),RGB(192,192,192))"        
            og.columns(i).DynamicAlignment="IIF(BETWEEN(&zd,'0','9'),2,3)"
            og.columns(i).DynamicFontSize="IIF(BETWEEN(&zd,'0','9'),12,9)"
            og.columns(i).DynamicFontBold="IIF(BETWEEN(&zd,'0','9'),.T.,.F.)"
    ENDCASE
ENDFOR

由于基础不是太好,上面这段代码,看的不是太懂,请教各位大神,帮我解决一下
14 回复
#2
吹水佬2023-03-23 10:53
五彩缤纷,有点眼花。
增加一个列颜色属性字段,column的DynamicBackColor按“颜色属性”设定就OK。
#3
hytizj0232023-03-23 11:11
以下是引用吹水佬在2023-3-23 10:53:23的发言:

五彩缤纷,有点眼花。
增加一个列颜色属性字段,column的DynamicBackColor按“颜色属性”设定就OK。

好像明白了,我先试一下
#4
hytizj0232023-03-23 12:32
SELECT 本地数据
zjl=RECCOUNT()
FOR i=1 TO zjl
GO i
SCATTER TO b
c1=b(1)
c2=b(6)
a=left(c2,1)&&取左边第一位获取百位
shi=LEFT(c2,2)&&取前两位
b=RIGHT(shi,1)&&取右边第一位获取十位
c=RIGHT(c2,1)&&个位
IF a=b
IF a='0'
thisform.pageframe1.page1.pageframe1.page1.grid1.columns(i).DynamicforeColor="RGB(255,0,0)"&&开奖号码
ENDIF
ENDIF
ENDFOR

报错columns不是一个对象
#5
吹水佬2023-03-23 12:47
这个 i 对应的是表记录数,column是表格列。
#6
sdta2023-03-23 12:58
试试OCCURS()
#7
sdta2023-03-23 13:05
前景色可能实现不了,只有实现背景色。
#8
吹水佬2023-03-23 14:08
参考示例
只有本站会员才能查看附件,请 登录

程序代码:

CREATE CURSOR tt (fc I, bc I)
INSERT INTO tt VALUES (0xff0000, 0x00ff00)
INSERT INTO tt VALUES (0x00ff00, 0x0000ff)
INSERT INTO tt VALUES (0x0000ff, 0xff0000)
GO TOP
_screen.AddObject("grid1","grid")
FOR EACH col IN _screen.grid1.columns
    col.DynamicForeColor="tt.fc"
    col.DynamicBackColor="tt.bc"      
ENDFOR
_screen.grid1.Visible = .t.
MESSAGEBOX("关闭")
CLOSE TABLES ALL
CLEAR ALL
#9
hytizj0232023-03-23 15:07
以下是引用sdta在2023-3-23 12:58:01的发言:

试试OCCURS()

thisform.pageframe1.page1.pageframe1.page1.grid1.columns(8).DynamicforeColor="RGB(255,0,0)"
现在的问题是,我不知道怎么改颜色,不是对比数据
上面这个代码,把整个列都改了颜色,我只是改对子,不是对子我不改颜色
#10
sdta2023-03-23 15:39
我明白,你要判断出号码是组三或豹子才改变号码(重复的号码)的颜色。
#11
hytizj0232023-03-23 15:43
以下是引用sdta在2023-3-23 15:39:09的发言:

我明白,你要判断出号码是组三或豹子才改变号码(重复的号码)的颜色。

对,yes
吹版的代码没看懂,能不能帮我解决一下
#12
sdta2023-03-23 15:44
你在本论坛发的第一个帖子7楼的截图看了吗,是不是那个效果
#13
sdta2023-03-23 15:49
    og.COLUMNS(i).DynamicForeColor='ICASE(OCCURS(&zd,号码)=3,RGB(255,0,0),OCCURS(&zd,号码)=2,RGB(192,128,255),OCCURS(&zd,号码)=1,RGB(0,0,0),RGB(192,192,192))'

送给有缘人
#14
hytizj0232023-03-23 17:31
以下是引用sdta在2023-3-23 15:49:36的发言:

    og.COLUMNS(i).DynamicForeColor='ICASE(OCCURS(&zd,号码)=3,RGB(255,0,0),OCCURS(&zd,号码)=2,RGB(192,128,255),OCCURS(&zd,号码)=1,RGB(0,0,0),RGB(192,192,192))'

送给有缘人



SELECT 本地数据
GO 58
SCATTER TO b
c2=b(6)&&开奖号


    thisform.pageframe1.page1.pageframe1.page1.grid1.COLUMN7.DynamicForeColor='ICASE(OCCURS(&c2,0)=3,RGB(255,0,0),OCCURS(&c2,0)=2,RGB(192,128,255),OCCURS(&c2,0)=1,RGB(0,0,0),RGB(192,192,192))        '
    thisform.pageframe1.page1.pageframe1.page1.grid1.Refresh
    GO 59
    thisform.pageframe1.page1.pageframe1.page1.grid1.Refresh
    没动静
    58号记录是800
    每个都要判断,我只是先测试0,而已

只有本站会员才能查看附件,请 登录

数据库类型和字段
    还是我occurs函数没弄对
#15
sdta2023-03-23 17:47
楼主还是体弱啊,看下帮助文件OCCURS()的用法。没看过VFP有楼上的结构啊
1