以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  请教增加行  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=24790)

--  作者:秦胜雄
--  发布时间:2012/10/23 14:37:00
--  请教增加行

Select Case e.DataCol.Name
    Case "规格"
        If e.DataRow.IsNull("规格") = False Then
            If e.DataRow.GetChildRows("规格").Count = 0 Then
                Dim dr As DataRow = DataTables("仓库").AddNew()
                dr("规格") = e.DataRow("规格")
            End If
        End If
End Select

 

怎样修改才能使仓库增加的行不为空行,规格列不重复的规格,谢谢!!!!!!


--  作者:lin_hailun
--  发布时间:2012/10/23 15:49:00
--  
 代码实现了规格不为空了吧?

 楼主,我看不懂你的意思。
[此贴子已经被作者于2012-10-23 15:49:07编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/10/23 16:36:00
--  

我也不明白,如果只是为了禁止输入重复值,可以看看:

 

http://www.foxtable.com/help/topics/2481.htm

 


--  作者:秦胜雄
--  发布时间:2012/10/24 9:34:00
--  

在订单表编辑规格,列表项目是仓库表的规格列,如果有就在列表项目提取,没有就创建在仓库表新增行里,现在就是输入已有的规格,仓库表增加空行,新建的没问题。

 

If e.DataCol.Name = "规格" Then
    If
e.NewValue Is Nothing Then
        MessageBox.Show(
"规格不允许为空!")
        e.Cancel =
True
    End
If
End
If

这个也试过,仓库表还是增加空行,没则只有到这里来求教。


--  作者:lin_hailun
--  发布时间:2012/10/24 9:48:00
--  
 应该不会是这段代码的问题吧。

 你用msgbox()弹出相关的值看一看,关键是看最里面的代码是否有执行。

 楼主自己调试一下。

--  作者:秦胜雄
--  发布时间:2012/10/24 10:29:00
--  

我是刚刚开始学,消息框不会用,要实现您说的“代码实现了规格不为空了吧?”,应该怎么修改,谢谢!!!


--  作者:lin_hailun
--  发布时间:2012/10/24 10:43:00
--  
 楼主,把代码改成下面这样,,看是否弹出消息框。

 如果有弹出,就看一下你设置的关联是否正确,是否存在“规格”,对应的表是否正确。

Select Case e.DataCol.Name
    Case "规格"
        If e.DataRow.IsNull("规格") = False Then
            If e.DataRow.GetChildRows("规格").Count = 0 Then
                msgBox(1)
                Dim dr As DataRow = DataTables("仓库").AddNew()
                dr("规格") = e.DataRow("规格")
            End If
        End If
End Select


--  作者:秦胜雄
--  发布时间:2012/10/24 10:55:00
--  

谢谢!!!!

问题解决。


--  作者:秦胜雄
--  发布时间:2012/10/24 11:15:00
--  

谢谢您给我的帮助,现在还有个新问题,仓库表里出现了重复的规格,能帮忙解决吗?谢谢!!!!

 


--  作者:lin_hailun
--  发布时间:2012/10/24 14:23:00
--  
 删除重复代码。

Dim dt As DataTable = DataTables("仓库")
Dim guiges As List(Of String) = dt.GetUniqueValues("规格 is not null", "规格")

Dim idxs As String = ""
For Each guige As String In guiges
    Dim dr As DataRow = dt.Find("规格 = \'" & guige & "\'")
    idxs = idxs & dr("_Identify") & ","
Next

idxs = idxs.Trim(",")

DataTables("订单").DeleteFor("_Identify not in (" & idxs & ")")