以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教数据运算结果跳行问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=71595)

--  作者:bestorange
--  发布时间:2015/7/14 16:05:00
--  请教数据运算结果跳行问题

教师签到窗口签到后,所选定学生在学员一览表中的学费余额会自动扣费,现在出现一个问题。

如学员一览表中学员的顺序为A,B,C 我在签到窗口中选择了B,进行签到后却扣除了A的学费。问题是出自哪里呢?如下图:

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:知音琴行管理系统修订版.foxdb


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

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

 


签到按钮事件命令:

Dim mr As Row =Tables("教师签到表").Current
Dim Result As DialogResult
Result = MessageBox.Show(mr("姓名") &" 要签到吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
    mr.Save
    \'找到对应的学员这一行,改怎么减就怎么减
    Dim dr1 As DataRow = DataTables("学员一览表").Find("辅导老师 = \'" & mr("姓名") & "\' And 课程 = \'" & mr("授课内容") & "\'")
    Dim dr2 As DataRow = DataTables("课类分类表").Find("科目 = \'" & mr("授课内容") & "\'")
   

    If dr1 Is Nothing OrElse dr2 Is Nothing Then

        messagebox.show("输入错误")

    End If


    dr1("学费余额") = dr1("学费余额") - dr2("课时费")
    MessageBox.Show(mr("姓名") &" 签到成功","提示")
   
   
    Dim g As New GroupTableBuilder("统计表1", DataTables("教师签到表"))
    g.Groups.AddDef("姓名")
    g.Groups.AddDef("授课内容")
    g.Groups.AddDef("学员名称")
    g.Groups.AddDef("课时数")
    g.Totals.AddDef("姓名", AggregateEnum.Count,"签到次数")
    g.Build(False)
   
    Dim f As new Filler
    f.SourceTable = DataTables("统计表1") \'指定数据来源
    f.SourceCols = "姓名,授课内容,学员名称,签到次数" \'指定数据来源列
    f.DataTable = DataTables("签到统计表") \'指定数据接收表
    f.DataCols = "第一列,第二列,第三列,第四列" \'指定数据接收列
    f.Fill() \'填充数据
   
End If


--  作者:大红袍
--  发布时间:2015/7/14 16:19:00
--  


    \'找到对应的学员这一行,改怎么减就怎么减
    Dim dr1 As DataRow = DataTables("学员一览表").Find("辅导老师 = \'" & mr("姓名") & "\' And 课程 = \'" & mr("授课内容") & "\' and 姓名 = \'" & mr("学员名称") & "\'")
    Dim dr2 As DataRow = DataTables("课类分类表").Find("科目 = \'" & mr("授课内容") & "\'")
   

    If dr1 Is Nothing OrElse dr2 Is Nothing Then

        messagebox.show("输入错误")

    End If

    mr.Save

    dr1("学费余额") = dr1("学费余额") - dr2("课时费")
    MessageBox.Show(mr("姓名") &" 签到成功","提示")


--  作者:bestorange
--  发布时间:2015/7/14 18:56:00
--  
多谢指点