注册 登录
编程论坛 VFP论坛

关于表格的指定行列输入数据

zhr822 发布于 2020-10-12 23:38, 1289 次点击
现在初学VFP,向前辈请教一个问题:
我建了一个表单,上面有一个表格,表格如下图
只有本站会员才能查看附件,请 登录



1.我想写一个语句,表达的意思是:当这一列是“正”时,字符显示红色,当这一列是“反”时,字符显示蓝色,该如何写?

2.列表框里添加新数据源可以用AddListItem(数据,n行数,n列数),我在表单里建立一个空表格,要在指定行、指定列添加数据用什么方法呢?
5 回复
#2
吹水佬2020-10-13 15:08
回复 楼主 zhr822
1、在GRID的init事件中设置Column的DynamicForeColor属性
程序代码:
   
PROCEDURE Grid1.Init
    FOR EACH oColumn IN this.Columns
        oColumn.DynamicForeColor = [IIF(ALLTRIM(]+oColumn.ControlSource+[)=="正",0xFF,0xFF0000)]
    ENDFOR


2、GRID没有AddListItem方法,可以操作GRID数据源的表记录(行)和字段(列)
#3
zhr8222020-10-13 18:36
回复 2楼 吹水佬
1.老师,感谢你的回复。你的代码解决了我的问题,另外我这个表格的标头从数据源表头传递来的字段名称【1】,【2】……我想把它删掉,变成空白。
只有本站会员才能查看附件,请 登录

我试着在你这个语句中间加上thisform.grid1.Columns.header1.caption = " ",程序显示不能识别Columns,要怎么写才正确?

2.您说,GRID没有AddListItem方法,可以操作GRID数据源的表记录(行)和字段(列)。
我数据源是一张表,我想做一个表单,动态显示每一次比赛的结果,也就是说比赛的第一局结果显示“反”在表的第一列上,停顿数秒后转到第二列显示“正”,停顿数秒后仍在第二列显示“正”……直到出现“反”另起一列。
我以前在表单的对象time里操作数据,表单每秒显示一个“正”或”反“的数据,画面是动态的,列表框AddListItem就像一个坐标一样,我取一个数据,想把数据放在哪都行。现在搞不好了,GRID数据源是一张固定的表,你的意思是让我不断的改变数据源的表来实现,是吗?
#4
吹水佬2020-10-13 19:21
以下是引用zhr822在2020-10-13 18:36:40的发言:

1.老师,感谢你的回复。你的代码解决了我的问题,另外我这个表格的标头从数据源表头传递来的字段名称【1】,【2】……我想把它删掉,变成空白。

我试着在你这个语句中间加上thisform.grid1.Columns.header1.caption = " ",程序显示不能识别Columns,要怎么写才正确?

试试加多一句
程序代码:

PROCEDURE Grid1.Init
    FOR EACH oColumn IN this.Columns
        oColumn.DynamicForeColor = [IIF(ALLTRIM(]+oColumn.ControlSource+[)=="正",0xFF,0xFF0000)]
        oColumn.header1.caption = ""
    ENDFOR

#5
吹水佬2020-10-13 19:34
以下是引用zhr822在2020-10-13 18:36:40的发言:
GRID数据源是一张固定的表,你的意思是让我不断的改变数据源的表来实现,是吗?

GRID的数据表的行号是表的记录号,那一列是那个字段
加多一行是增加一条记录,加多一列是增加一个字段(一般是固定不变)

#6
zhr8222020-10-13 20:10
回复 5楼 吹水佬
好的,我来消化一下,谢谢
1