以文本方式查看主题

-  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=43622)

--  作者:yangwenghd
--  发布时间:2013/12/11 17:26:00
--  代码冲突
兄弟们 帮我看看  表A是个流水账,表A的合格数量是绑定表A的第二列的
我在代码里面设置了一合格数量只能带入第一列,后面的默认为0
表面上都很正常,但是当我在附表编号列选择重置列的问题就出来了 希望大家帮帮我。感谢不敬啊!
帮看看是不是因为代码里面写有冲突,有一段代码是带入表B第二列 但是后面有个不带入的一个代码!
帮我改改 兄弟们 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:流水账联动结账情况.table



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

[此贴子已经被作者于2013-12-11 17:28:17编辑过]

--  作者:Bin
--  发布时间:2013/12/11 17:28:00
--  
都点了一次重置列,没发现报错.  而且我也不是很理解你的问题.
[此贴子已经被作者于2013-12-11 17:28:19编辑过]

--  作者:有点甜
--  发布时间:2013/12/11 19:57:00
--  
 我看了一下,为什么要重置列?你随便修改一下表就重新计算了啊。

 冲突的问题,你得先理清你想做什么,不能矛盾的。

--  作者:yangwenghd
--  发布时间:2013/12/13 9:28:00
--  
重置列是因为我经常改里面的东西 怕改了不重置列刷新不了里面的功能!
我要的功能就是在同一附表编号列的时候 不管添加多少行 在表A绑定表B数据的合格数量只又第一行有效 后面的都默认显示0,切重置列后还不会有什么改变,

--  作者:Bin
--  发布时间:2013/12/13 9:37:00
--  
你说一下,你的需求是什么,要实现什么样的效果.
--  作者:狐狸爸爸
--  发布时间:2013/12/13 10:13:00
--  

呵呵,看看帮助的流水账是怎么设计的:

 

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

 

有不区分产品的,也有区分产品的,区分产品的和你的类似,参考着写一下吧。

 

下面这个文件,我是复制粘贴帮助的代码,然后修改列名,其他一字未改:

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目126.table


--  作者:yangwenghd
--  发布时间:2013/12/13 10:29:00
--  
那个是个结账的系统, 但是入账只有一次,也就是第一次,所以第一行以后的行都是默认的0,结账有很多次,
我功能就是结账。
也不怕兄弟们笑,我把整个项目发给大家帮我看看
现在问题就是

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.table

密码123

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


--  作者:狐狸爸爸
--  发布时间:2013/12/13 10:32:00
--  
6楼的文件你下载看了吗?
--  作者:yangwenghd
--  发布时间:2013/12/13 11:53:00
--  
谢谢兄弟 老问题解决了 但是新问题来一个,就是当我在附表编号列输入数据的时候 没有绑定到表B里面的数据,比如输入“1”理论上合格数量就应该自动导入绑定表B第二列的内容,就是“11”。
感谢兄弟雪中送炭啊  


--  作者:狐狸爸爸
--  发布时间:2013/12/13 12:07:00
--  

我只是复制帮助的代码而已。

 

第二个问题,你可以自己写的啊,只是从表B找出对应的行,然后取值而已:

 

 

Select Case e.DataCol.Name
    Case "附表编号列","合格数量","结账数量"
        Dim dr As DataRow
        Dim mr As DataRow = e.DataRow
        Dim drs As List(of DataRow)
        dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [附表编号列] = \'" & mr("附表编号列") & "\'", "[_SortKey] Desc")
        If dr Is Nothing Then
            mr("未结数量") = mr("合格数量") - mr("结账数量")
            dr = mr
        End If
        drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [附表编号列] = \'" & dr("附表编号列") & "\'", "[_SortKey]")
        For i As Integer = 1 To drs.Count - 1
            drs(i)("未结数量") = drs(i-1)("未结数量") + drs(i)("合格数量") - drs(i)("结账数量")
        Next
        If e.DataCol.Name = "附表编号列" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [附表编号列] = \'" & e.OldValue & "\'", "[_SortKey] Desc")
            If dr Is Nothing Then
                dr = e.DataTable.Find("[附表编号列] = \'" & e.OldValue & "\'", "[_SortKey]")
                If dr IsNot Nothing Then
                    dr("未结数量") = dr("合格数量") - dr("结账数量")
                End If
            End If
            If dr IsNot Nothing Then
                drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [附表编号列] = \'" & dr("附表编号列") & "\'", "[_SortKey]")
                For i As Integer = 1 To drs.Count - 1
                    drs(i)("未结数量") = drs(i-1)("未结数量") + drs(i)("合格数量") - drs(i)("结账数量")
                Next
            End If
        End If
End Select
Select Case e.DataCol.Name
    Case "未结数量"
        If e.NewValue = 0 Then
            e.DataRow("结账情况")="已结账"
        ElseIf e.DataRow("合格数量") =e.NewValue Then
            e.DataRow("结账情况")="未结账"
        ElseIf e.newValue < e.DataRow("合格数量")  Or (e.DataRow.IsNull("合格数量") And e.NewValue > 0) Then
            e.DataRow("结账情况")="结账中"
        End If
     Case "附表编号列"
        Dim dr As DataRow = DataTables("表B").find("第一列B  = \'" & e.NewValue & "\'")
        If dr IsNot Nothing Then
           e.DataRow("xxx") = dr("sss")
        End If
End Select