以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  这样的填充效果如何实现?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=177570)

--  作者:hbfnmxb
--  发布时间:2022/5/27 7:46:00
--  这样的填充效果如何实现?
有姓名列,但这里即有年级,又有班级,现在想把它按年级、班级分开,这种填充如何实现?还有一列,成绩列,即有年级成绩,又有班级成绩,同样按年级班级分开,如何填充?
图片点击可在新窗口打开查看此主题相关图片如下:01.png
图片点击可在新窗口打开查看
这是需要填充前的样子,下面的图,是填充后想实现的效果,老师,这个代码如何来写!
图片点击可在新窗口打开查看此主题相关图片如下:02.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2022/5/27 8:36:00
--  
写代码逐行导:http://www.foxtable.com/webhelp/topics/2334.htm


--  作者:hbfnmxb
--  发布时间:2022/5/27 9:14:00
--  
老师,不是EXCEL表中的,是内部表中的数据。
--  作者:有点蓝
--  发布时间:2022/5/27 9:30:00
--  
逻辑一样的呀。遍历所有行,判断姓名列有“年级”2个字的,赋值给年级列。判断有“班”字的,并且长度大于等于5,就赋值给班级,以此类推....
--  作者:hongsejiyi
--  发布时间:2022/5/27 10:01:00
--  
参考代码:
Dim t As Table = Tables("表A")
Dim nj, bj, xm, cj, njcj, bjcj As String 
For Each r As Row In t.Rows
    xm = r("姓名") 
    cj = r("成绩")
    If xm.IndexOf("年级") <> -1 Then \'判断年级
        nj = xm
        bj = ""
        njcj = cj
        bjcj = ""
    ElseIf xm.IndexOf("班") <> -1 Then \'判断班级
        bj = xm
        bjcj = cj 
        
    Else \'普通人员 \'普通人员数据不改变 
        
    End If 
    r("年级") = nj
    r("班级") = bj
    r("年级成绩") = njcj
    r("班级成绩") = bjcj
Next 

运行结果:

此主题相关图片如下:成绩分解.jpg
按此在新窗口浏览图片




--  作者:hbfnmxb
--  发布时间:2022/5/27 16:18:00
--  
非常感谢老师!!

老师,提示一个错误:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2021.5.29.1
错误所在事件:窗口,按条目分割数据,Button1,Click
详细错误信息:
从字符串“”到类型“Double”的转换无效。
输入字符串的格式不正确。


是不是成绩列有问题?
[此贴子已经被作者于2022/5/27 16:23:50编辑过]

--  作者:hbfnmxb
--  发布时间:2022/5/27 16:27:00
--  
知道了,这个错误是因为成绩列中有空值,如果没有空值就不报错,解决了!!
[此贴子已经被作者于2022/5/27 17:31:13编辑过]