以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何根据单元格内容自动添加行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93509)

--  作者:jinzhengbe
--  发布时间:2016/11/30 10:41:00
--  如何根据单元格内容自动添加行

场景:

 

表a  有 3列

 

a列                       b列                                c列

 

衣服  裤子  鞋子      3.2.1                            aa

 

上衣   帽子             1.2                              bb

 

 

如果 a列的数据 存在空格数自动添加行

如果只有 不存在空格 就不添加

 

 

例如(衣服 裤子 鞋子)就添加三行 如下

       衣服                3              aa 

       裤子                2              aa

       鞋子                1              aa

 

例如(上衣  帽子 )就添加2行 如下

       上衣                1              bb

       帽子                2              bb  

 

 

请问怎么能实现么   

 

跪求求高手代码指点

 


--  作者:有点蓝
--  发布时间:2016/11/30 11:08:00
--  
DataColChanged事件

Select Case e.DataCol.Name
    Case "第一列","第二列"
        If e.DataRow.IsNull("第一列") = False And e.DataRow.IsNull("第二列") = False  Then
            Dim arr1() As String = e.DataRow("第一列") .split(" ")
            Dim arr2() As String = e.DataRow("第二列") .split(".")
            If arr1.Length <= arr2.Length And arr1.Length > 1 Then
                Dim dr As DataRow
                For i As Integer = 0 To arr1.Length -1
                    dr = e.DataTable.AddNew()
                    dr("第一列") = arr1(i)
                    dr("第二列") = arr2(i)
                    dr("第三列") = e.DataRow("第三列")
                Next
            End If
        End If
End Select

--  作者:jinzhengbe
--  发布时间:2016/11/30 12:33:00
--  

非常感谢 那添加后删除原来的行 应该怎么写呢?

就是 符合条件的行 应该怎么删除呢?

 

 


--  作者:有点色
--  发布时间:2016/11/30 14:15:00
--  
 最后写代码 e.DataRow.Delete
--  作者:有点蓝
--  发布时间:2016/11/30 14:33:00
--  
Select Case e.DataCol.Name
    Case "第一列","第二列"
        If e.DataRow.IsNull("第一列") = False And e.DataRow.IsNull("第二列") = False  Then
            Dim arr1() As String = e.DataRow("第一列") .split(" ")
            Dim arr2() As String = e.DataRow("第二列") .split(".")
            If arr1.Length <= arr2.Length And arr1.Length > 1 Then
                Dim dr As DataRow
                SystemReady = False
                e.DataRow("第一列") = arr1(0)
                e.DataRow("第二列") = arr2(0)
                For i As Integer = 1 To arr1.Length -1
                    dr = e.DataTable.AddNew()
                    dr("第一列") = arr1(i)
                    dr("第二列") = arr2(i)
                    dr("第三列") = e.DataRow("第三列")
                Next
                SystemReady = True
            End If
        End If
End Select

--  作者:jinzhengbe
--  发布时间:2016/11/30 15:50:00
--  
非常感谢大师的指点图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看
--  作者:jinzhengbe
--  发布时间:2017/1/3 18:59:00
--  
红色的部分好像不好用。数据传不过来  请大神看看
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170103195738.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/1/3 19:03:22编辑过]

--  作者:有点蓝
--  发布时间:2017/1/3 20:13:00
--  
上传例子说明
--  作者:jinzhengbe
--  发布时间:2017/1/4 8:27:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:广州报关.foxdb

 

 


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

 

增加列成功了 ,但是其他 的不行

 

生成文件按钮 是 添加行的

 

添加的列在发货清单的表里

 


--  作者:有点蓝
--  发布时间:2017/1/4 8:41:00
--  
具体什么问题?怎么操作?