以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  某列为0值,删除该行  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=73674)

--  作者:bestorange
--  发布时间:2015/8/24 16:19:00
--  某列为0值,删除该行

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

自动填充的多行数据中,如果其中一行指定列下的值为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
--  发布时间:2015/8/24 16:38:00
--  

是e.Cancel =  True?

 

 


--  作者:大红袍
--  发布时间: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
--  发布时间:2015/8/24 16:40:00
--  
If e.DataCol.Name = "名目"  Then
     If e.NewValue  Is  Nothing  Then
         e.Cancel =  True
     End  If
 End  If

--  作者:大红袍
--  发布时间:2015/8/24 16:55:00
--  

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

 

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


--  作者:bestorange
--  发布时间: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


--  作者:大红袍
--  发布时间: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
--  发布时间:2015/8/24 17:30:00
--  

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

明白了!

多谢多谢


--  作者:bestorange
--  发布时间: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


--  作者:大红袍
--  发布时间:2015/8/24 17:43:00
--  
你可以不定义,直接用mr即可