注册 登录
编程论坛 VFP论坛

vfp如何实现进度条

jksoft 发布于 2021-06-12 22:00, 2031 次点击
我想实现销售订单进度显示,比如:有几十条订单,我想通过一个表显示没一个订单的工序,如果第一工序完成,就用蓝色显示。如何实现?我用了grid控件,不能控制单元格的颜色。着急,请大师指点
7 回复
#2
gs25367856782021-06-13 08:42
你最好要发图片看,你的思想是啥,说真的,一时也不清楚你是什么意思。
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2021-6-13 08:47编辑过]

#3
sdta2021-06-13 10:34
梅子论坛有示例,自己搜索吧
#4
吹水佬2021-06-13 11:07
只有本站会员才能查看附件,请 登录

程序代码:
** test.prg
CREATE CURSOR tt (工序 I, 进度 C(10))
FOR i=1 TO 100
    INSERT INTO tt VALUES (i%4,"")
ENDFOR
GO TOP
of = CREATEOBJECT("form1")
of.show(1)
RETURN

DEFINE CLASS form1 as Form
    ADD OBJECT grid1 as _grid
ENDDEFINE

DEFINE CLASS _grid as Grid
    visible = .T.
    columncount = 2
    PROCEDURE init
        this.column1.width = 50
        this.column1.ControlSource = "tt.工序"
        this.column1.header1.caption = "工序"
        this.column1.DynamicBackColor = "ICASE(tt.工序==1,0xFF9090,tt.工序==2,0x90FF90,tt.工序==3,0x9090FF,0xFFFFFF)"
        this.column2.width = 100
        this.column2.ControlSource = ""
        this.column2.sparse = .F.
        this.column2.removeobject("Text1")
        this.column2.addobject("cb1", "ColorBar")
        this.column2.header1.caption = "进度"
    ENDPROC
ENDDEFINE

DEFINE CLASS ColorBar as Container
    visible = .T.
    backstyle = 0
    borderwidth = 0
    ADD OBJECT label1 as label WITH alignment=2,forecolor=0
    PROCEDURE BackStyle_ACCESS
        this.label1.width     = tt.工序*30
        this.label1.backcolor = ICASE(tt.工序==1,0xFF9090,tt.工序==2,0x90FF90,tt.工序==3,0x9090FF,0xFFFFFF)
        this.label1.caption   = TRANSFORM(INT(100*tt.工序/3))+"%"
        RETURN this.BackStyle
    ENDPROC
ENDDEFINE
#5
schtg2021-06-14 05:59
@吹版,谢谢!
#6
jksoft2021-06-16 14:19
感谢大家回复
#7
jiazhefish2021-06-18 17:26
感谢分享,大佬威武
#8
hellofanghui2021-06-25 20:44
老师真厉害!
1