Foxtable(狐表)用户栏目专家坐堂 → 某列为0值,删除该行


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

主题:某列为0值,删除该行

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


加好友 发短信
等级:二尾狐 帖子:514 积分:3247 威望:0 精华:0 注册:2015/4/22 16:20:00
某列为0值,删除该行  发帖心情 Post By:2015/8/24 16:19:00 [只看该作者]

突然忘了个很简单的基础代码。。。。

自动填充的多行数据中,如果其中一行指定列下的值为0,则自动删除该行

突然一下还真想不起来该怎么写了

If e.Col.Name = "账目金额" Then
    Dim Val As Integer = e.Row("账目金额")
    If Val = 0 Then
      e.Row Delete()
    End If
End If
用Val应该不对


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


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

是e.Cancel =  True?

 

 


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


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

For i As Integer =  Tables("表A").rows.count - 1 To 0 Step -1
    Dim r As Row = Tables("表A").rows(i)
    If r("账目金额") = 0 Then
        r.Delete()
    End If
Next

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


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

If e.DataCol.Name = "名目"  Then
     If e.NewValue  Is  Nothing  Then
         e.Cancel =  True
     End  If
 End  If

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


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

什么情况下的处理啊?你不能控制填充的时候,就把为0的筛选出来?

 

如果要整体处理,做个按钮,看3楼代码


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


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

以下是引用大红袍在2015/8/24 16:55:00的发言:

什么情况下的处理啊?你不能控制填充的时候,就把为0的筛选出来?

 

如果要整体处理,做个按钮,看3楼代码

。。。。是呀  是我死脑筋。。。应该改数据来源

修改资料录入窗口的确定“按钮”就可以了吧

 

Dim mr As Row =Tables("学员一览表").Current
Dim Result As DialogResult
Result = MessageBox.Show(mr("姓名") &" 是否缴纳学费?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
    mr("培训新缴") = e.Form.Controls("培训缴纳").Text
    mr("课程") = e.Form.Controls("培训课程").Text
   
    Dim nma()As String = {"姓名","培训新缴","课程"}  'A表数据来源列
    Dim nmb()As String = {"相关人员","账目金额","名目"}  'B表数据接收列
   
    Dim dr As Row = Tables("经营相关账目").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = mr(nma(i))
    Next   
   
    Dim nmc()As String = {"姓名","乐理新缴","乐理程度"}  'A表数据来源列
    Dim nmd()As String = {"相关人员","账目金额","名目"}  'B表数据接收列
    Dim dr1 As Row = Tables("学员一览表").Current
    Dim dr2 As Row = Tables("经营相关账目").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr2(nmd(i)) = dr1(nmc(i))
    Next
   
    Dim nme()As String = {"姓名","陪练新缴","陪练等级"}  'A表数据来源列
    Dim nmf()As String = {"相关人员","账目金额","名目"}  'B表数据接收列
    Dim dr5 As Row = Tables("学员一览表").Current
    Dim dr6 As Row = Tables("经营相关账目").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr6(nmf(i)) = dr5(nme(i))
    Next

    Dim nml()As String = {"姓名","听力新缴","陪练等级"}  'A表数据来源列
    Dim nmh()As String = {"相关人员","账目金额","名目"}  'B表数据接收列
    Dim dr7 As Row = Tables("学员一览表").Current
    Dim dr8 As Row = Tables("经营相关账目").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr8(nmh(i)) = dr7(nml(i))
    Next
    MessageBox.Show(mr("姓名") &" 缴费完成.","提示")
End If
mr.Save


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


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

直接判断,如,其余的一样。

 

Dim mr As Row =Tables("学员一览表").Current

If mr("培训新缴") > 0 Then

    Dim dr2 As Row = Tables("经营相关账目").AddNew

End If


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


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

是是是,以前您教过类似的判断语句,是我没举一反三。

明白了!

多谢多谢


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


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

按您的例子改动完第一组以后,突然发现是不是我这段编码里很多多余的毫无意义的句子?如红色字体部分,定义的一堆dr都是没有必要的???

都直接已开头第一句mr判断就可以了?

 

Dim mr As Row =Tables("学员一览表").Current
Dim Result As DialogResult
Result = MessageBox.Show(mr("姓名") &" 是否缴纳学费?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
    mr("培训新缴") = e.Form.Controls("培训缴纳").Text
    mr("课程") = e.Form.Controls("培训课程").Text
   
    Dim nma()As String = {"姓名","培训新缴","课程"}  'A表数据来源列
    Dim nmb()As String = {"相关人员","账目金额","名目"}  'B表数据接收列
   
    If mr("培训新缴") > 0 Then
        Dim dr As Row = Tables("经营相关账目").AddNew
        For i As Integer = 0 To nma.Length - 1
            dr(nmb(i)) = mr(nma(i))
        Next
    End If

    Dim nmc()As String = {"姓名","乐理新缴","乐理程度"}  'A表数据来源列
    Dim nmd()As String = {"相关人员","账目金额","名目"}  'B表数据接收列
    Dim dr1 As Row = Tables("学员一览表").Current
    Dim dr2 As Row = Tables("经营相关账目").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr2(nmd(i)) = dr1(nmc(i))
    Next
   
    Dim nme()As String = {"姓名","陪练新缴","陪练等级"}  'A表数据来源列
    Dim nmf()As String = {"相关人员","账目金额","名目"}  'B表数据接收列
    Dim dr5 As Row = Tables("学员一览表").Current
    Dim dr6 As Row = Tables("经营相关账目").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr6(nmf(i)) = dr5(nme(i))
    Next
   
    Dim nml()As String = {"姓名","听力新缴","陪练等级"}  'A表数据来源列
    Dim nmh()As String = {"相关人员","账目金额","名目"}  'B表数据接收列
    Dim dr7 As Row = Tables("学员一览表").Current
    Dim dr8 As Row = Tables("经营相关账目").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr8(nmh(i)) = dr7(nml(i))
    Next
    MessageBox.Show(mr("姓名") &" 缴费完成.","提示")
End If


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


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

你可以不定义,直接用mr即可

 回到顶部
总数 11 1 2 下一页