Foxtable(狐表)用户栏目专家坐堂 → 代码错误求修正


  共有2107人关注过本帖树形打印复制链接

主题:代码错误求修正

帅哥哟,离线,有人找我吗?
bestorange
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:514 积分:3247 威望:0 精华:0 注册:2015/4/22 16:20:00
代码错误求修正  发帖心情 Post By:2015/9/14 14:37:00 [只看该作者]


此主题相关图片如下:123.png
按此在新窗口浏览图片

此主题相关图片如下:213.png
按此在新窗口浏览图片

在图一窗口中选择好教师姓名(如:张三),然后单击“统计”按钮,自动弹出图二的窗口,单击图二窗口中“工资发放”按钮后,图一窗口中所绑定的表“培训课时统计表”中 对应教师(张三)的“工资已发”列勾选并隐藏。

 

现在单击后会勾选全部教师的“工资发放”列,也不隐藏。是代码中出了错误吗??

 

 

下面是图二中“工资发放”按钮的代码,点击以后,图1中

Dim mr As Row =Tables("培训课时统计表").Current
Dim Result As DialogResult
Result = MessageBox.Show(mr("教师姓名") &" 您是否已核对过表格中各项统计及金额无误,确定领取工资?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
   
    For Each r As Row In Tables("教师课时统计表").Rows
        r("工资已发") = True
        r.Locked = True
        r.Save
    Next
   
    Dim nma()As String = {"教师姓名","教师工资","授课内容"}  'A表数据来源列
    Dim nmb()As String = {"相关人员","账目金额","名目"}  'B表数据接收列
    Dim dr3 As Row = Tables("教师课时统计表").Current
    Dim dr4 As Row = Tables("经营相关账目").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr4(nmb(i)) = dr3(nma(i))
    Next
   
    MessageBox.Show(mr("教师姓名") &" 您的工资已结算完毕,发放到您的手中!是不是要请客哦!O(∩_∩)O~","提示")
End If
e.Form.Controls("Button1").Enabled = False
e.Form.Controls("Button3").Enabled = False
e.Form.Controls("Button4").Enabled = False

DataTables("培训课时统计表").Save
DataTables("经营相关账目").Save

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/14 15:00:00 [只看该作者]

 

Dim mr As Row =Tables("培训课时统计表").Current
Dim Result As DialogResult
Result = MessageBox.Show(mr("教师姓名") &" 您是否已核对过表格中各项统计及金额无误,确定领取工资?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
   
    For Each r As DataRow In DataTables("培训课时统计表").Select("教师姓名 = '" & mr("教师姓名") & "'")
        r("工资已发") = True
        r.Locked = True
        r.Save
    Next
   
    Dim nma()As String = {"教师姓名","教师工资","授课内容"}  'A表数据来源列
    Dim nmb()As String = {"相关人员","账目金额","名目"}  'B表数据接收列
    Dim dr3 As Row = Tables("教师课时统计表").Current
    Dim dr4 As Row = Tables("经营相关账目").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr4(nmb(i)) = dr3(nma(i))
    Next
    Tables("培训课时统计表").Filter = "工资已发 = false or 工资已发 is null"
    MessageBox.Show(mr("教师姓名") &" 您的工资已结算完毕,发放到您的手中!是不是要请客哦!O(∩_∩)O~","提示")
End If
e.Form.Controls("Button1").Enabled = False
e.Form.Controls("Button3").Enabled = False
e.Form.Controls("Button4").Enabled = False

DataTables("培训课时统计表").Save
DataTables("经营相关账目").Save


 回到顶部
帅哥哟,离线,有人找我吗?
bestorange
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:514 积分:3247 威望:0 精华:0 注册:2015/4/22 16:20:00
  发帖心情 Post By:2015/9/14 15:17:00 [只看该作者]

还是不对,我在图1中选择了(张三),然后单击统计,课时还是全部教师后面都勾选。是不是我图1中 统计按钮的事件问题?

Dim g As New GroupTableBuilder("统计表1", DataTables("培训课时统计表"))
g.Groups.AddDef("教师姓名")
g.Groups.AddDef("授课内容")
g.Totals.AddDef("授课内容", AggregateEnum.Count,"签到次数")
g.Filter = "教师姓名 = '" & e.Form.Controls("ComboBox1").Text & "'and 已结算 = false"
g.Build(False)

DataTables("教师课时统计表").DataRows.Clear
Dim f As new Filler
f.SourceTable = DataTables("统计表1") '指定数据来源
f.SourceCols = "教师姓名,授课内容,签到次数" '指定数据来源列
f.DataTable = DataTables("教师课时统计表") '指定数据接收表
f.DataCols = "教师姓名,授课内容,签到次数" '指定数据接收列
f.Fill() '填充数据

MainTable = Tables("教师课时统计表")
DataTables.Unload("统计表1")

For Each r As Row In Tables("培训课时统计表").Rows
    r("已结算") = True
    r.Save
Next
DataTables("培训课时统计表").Save
DataTables("教师课时统计表").Save
forms("培训课时统计表").close
forms("教师工资结算表").show


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/14 15:23:00 [只看该作者]

2楼代码没有问题。

 

3楼代码

 

For Each r As Row In Tables("培训课时统计表").Rows
    r("已结算") = True
    r.Save
Next

 

改成

 

For Each r As DataRow In DataTable("培训课时统计表").Select("教师姓名 = '" & e.Form.Controls("ComboBox1").Text & "' and 已结算 = false")
    r("已结算") = True
    r.Save
Next


 回到顶部
帅哥哟,离线,有人找我吗?
bestorange
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:514 积分:3247 威望:0 精华:0 注册:2015/4/22 16:20:00
  发帖心情 Post By:2015/9/14 15:28:00 [只看该作者]

以下是引用大红袍在2015/9/14 15:23:00的发言:

2楼代码没有问题。

 

3楼代码

 

For Each r As Row In Tables("培训课时统计表").Rows
    r("已结算") = True
    r.Save
Next

 

改成

 

For Each r As DataRow In DataTable("培训课时统计表").Select("教师姓名 = '" & e.Form.Controls("ComboBox1").Text & "' and 已结算 = false")
    r("已结算") = True
    r.Save
Next

修改后提示错误,DataTable是一个类型不能用做表达式


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/14 15:47:00 [只看该作者]

DataTable 改成 DataTables

 回到顶部
帅哥哟,离线,有人找我吗?
bestorange
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:514 积分:3247 威望:0 精华:0 注册:2015/4/22 16:20:00
  发帖心情 Post By:2015/9/14 18:53:00 [只看该作者]

大师啊 还是不对,图一中,张三,找四 两个老师,我选择张三,单击统计,然后 在图二中单击 工资发放 结果找四也勾选了。

 

是我哪段代码出错了?


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/14 19:15:00 [只看该作者]

那这样写,还不行,就上传实例。

   

    Dim xm As String = mr("教师姓名")

    For Each r As DataRow In DataTables("培训课时统计表").Select("教师姓名 = '" & xm & "'")
        r("工资已发") = True
        r.Locked = True
        r.Save
    Next


 回到顶部