以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何写个遍历的嵌套  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=84269)

--  作者:zhangchi96
--  发布时间:2016/4/27 12:23:00
--  如何写个遍历的嵌套


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20160427122001.png
图片点击可在新窗口打开查看

 

在窗体中插入了两个表,左表是数据记录,右表是统计结果

想把某一个学校 某一个学科 某一年级的 记录中成绩大于0的统计出来填写在右表中,

 

好像要

for

   for

   ...

   next

next

 

请教一下怎么写,我写了好多中方式都失败了。请高手们指教。 

 

 

 


--  作者:大红袍
--  发布时间:2016/4/27 14:12:00
--  

参考代码

 

Dim Vals As List(of String())
Vals = DataTables("来源表").GetValues("产品|客户")
For
i As Integer = 0 To Vals.Count - 1
    Dim
dr As DataRow = DataTables("接收表").AddNew()
    dr(
"产品") = Vals(i)(0)
    dr(
"客户") = Vals(i)(1)
Next


--  作者:joe_xgp
--  发布时间:2016/4/27 15:05:00
--  
Dim m As Integer
Dim n As Integer
m = 0
n = 0
For Each r1 As Row In Tables("A").rows
    For Each r2 As Row In Tables("B").rows
        If r2("学校名称") = r1("学校名称") And r2("年级") = r1("年级") And r2("考试号") > 0 Then
            m = m + 1
            If r2("学校名称") = r1("学校名称") And r2("年级") = r1("年级") And r2(r1("学科")) > 0 Then
                n = n + 1
            End If
        End If
    Next
    r1("登分数") = n
    r1("学生数") = m
    m = 0
   n = 0
Next

--  作者:大红袍
--  发布时间:2016/4/27 15:11:00
--  
如果不会做的话,上传具体foxtable例子吧
--  作者:zhangchi96
--  发布时间:2016/5/2 20:58:00
--  
     请问老师一下,我这里统计的是大于0的,如果我把大于0  和等于0的都作为是有分数的(因为有考生的考试分数为0的),只统计没有录入分数的,是不是就用  len(r2(r2("学科"))) > 0  来判断,因为这里属性是整数而不是字符,所以不怎么确定。
[此贴子已经被作者于2016/5/2 22:14:18编辑过]

--  作者:Hyphen
--  发布时间:2016/5/3 8:38:00
--  
整数直接比较

r2(r2("学科")) >= 0

--  作者:zhangchi96
--  发布时间:2016/5/4 16:05:00
--  
整数直接比较

r2(r2("学科")) >= 0

 

用这种方法,在某一记录没有输入的时候,也会认为这个数值是0的,这样输入0和不输入无法区别呢?我要区别不输入数据和输入0,虽然都是0,但输入0是表示该学生参加考试但成绩是0分,不输入0表示该学生没有参加考试


--  作者:大红袍
--  发布时间:2016/5/4 16:50:00
--  

If r2.IsNull(r2("学科")) Then

    msgbox("空")

ElseIf r2(r2("学科")) > 0 Then

    msgbox("不是0分")

End If