以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关联表主表和明细表的序号问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=19696)

--  作者:hp001
--  发布时间:2012/5/18 11:50:00
--  [求助]关联表主表和明细表的序号问题

我设置了一个主表和明细表,出入库单号对应
我是在明细表那设置一个序号,结果没和主表的出入库单号对应,请问啥问题

With Tables("出入库明细表")
    For i As Integer = 0 To  .Rows.Count - 1
        .Rows(i)("序号") =  i + 1
    Next
End With

e.DataTable.Save()

我的代码是这样写的,要怎么写主表的单号=明细表的单号


 


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

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

--  作者:hp001
--  发布时间:2012/5/18 12:06:00
--  

我的需求就是,不同的单号的,序号要对应

如DH001 1

             2

             3

             4

DH002 1

          2

         3

         4


--  作者:狐狸爸爸
--  发布时间:2012/5/18 12:31:00
--  

没看懂你的问题,如果你是设置出入库明细表的所有序号,可以做个按钮,将按钮的Click事件代码设置为:

 

For Each dr As DataRow  In DataTables("出入库汇总表").DataRows
    Dim drs As List(of DataRow) = dr.GetChildRows("出入库明细表")
    For i As Integer =0 To drs.Count - 1
        drs(i)("序号") = i + 1
    Next
Next

 


--  作者:blackzhu
--  发布时间:2012/5/18 13:15:00
--  

把序号改成整数型,代码改成:

 

   

e.DataRow("序号") = e.DataTable.Compute("Max(序号)","入库单号=" & e.DataRow("入库单号") ) + 1

 

  这样试试?  这个代码是入库单号是数值型的情况下,如果是字符型:

 

 

e.DataRow("序号") = e.DataTable.Compute("Max(序号)","入库单号=" & e.DataRow("入库单号") & "\'") + 1

 

[此贴子已经被作者于2012-5-18 13:16:58编辑过]

--  作者:hp001
--  发布时间:2012/5/18 13:26:00
--  
这个代码解决了,感谢