以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  自动编号  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=139475)

--  作者:13775189031
--  发布时间:2019/8/13 16:40:00
--  自动编号
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:电网钢材发料管理系统.rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:电网钢材发料管理系统.foxdb

147258
请老师看一下,角钢进料表明细中,列“序号”是根据派单日期生成的编号,“派单日期”列是增加行时自动生成的,现在发现填写实发支数列后,派单日期会更新到当天,序号也会变化,是什么原因?

--  作者:有点蓝
--  发布时间:2019/8/13 16:55:00
--  
实发支数更改,触发“未发数量”;“未发数量”更改,触发(DataTables("角钢进料台账").DataCols("进料表编号").RaiseDataColChanged(dr1));然后台账表"进料表编号"更改触发(dr("派单日期") = Date.today);"派单日期"更改又触发角钢进料表明细表:

If e.DataCol.Name = "派单日期"
    Dim Filter As String = "[进料表编号] = \'" & e.DataRow("进料表编号") & "\'"
    Dim drs As List(Of DataRow) = DataTables("角钢进料表明细").Select(Filter)
    For Each dr2 As DataRow In drs
        dr2("派单日期") = e.DataRow("派单日期")
    Next
End If

自己给自己挖坑的节奏

--  作者:13775189031
--  发布时间:2019/8/13 17:29:00
--  
If e.DataCol.Name = "派单日期"
    Dim Filter As String = "[进料表编号] = \'" & e.DataRow("进料表编号") & "\'"
    Dim drs As List(Of DataRow) = DataTables("角钢进料表明细").Select(Filter)
    For Each dr2 As DataRow In drs
        dr2("派单日期") = e.DataRow("派单日期")
    Next
End If
把这段删除了,并做了一下修改

角钢进料台账
Select Case e.DataCol.name
    Case "进料表编号"
        If e.DataRow.IsNull("进料表编号") Then
            DataTables("角钢进料表明细").DeleteFor("进料表编号=\'" & e.DataRow("进料表编号") & "\'")
            e.DataRow("状态_发料完成") = False
            e.DataRow("状态_U8出库") = False
        Else
            If e.OldValue Is Nothing
                Dim ndr As Row = Tables("角钢进料表明细").AddNew
                ndr("进料表编号") = e.DataRow("进料表编号")
                ndr("工程名称") = e.DataRow("工程名称")
                ndr("塔型") = e.DataRow("塔型")
                ndr("材料标准") = e.DataRow("材料标准")
                ndr("仓储配料员") = e.DataRow("仓储配料员")
                ndr("审核") = e.DataRow("审核")
                ndr("编制人") = e.DataRow("编制人")
                ndr.Move(0)
            End If
            If e.DataRow.GetChildRows("角钢进料表明细").Count > 0
                Dim cnt As Integer = DataTables("角钢进料表明细").Compute("count(进料表编号)","进料表编号=\'" & e.NewValue  & "\' and (U8出库=false and 处置_重派=false)")
                e.DataRow("状态_U8出库") = (cnt=0)
                cnt  = DataTables("角钢进料表明细").Compute("count(进料表编号)","进料表编号=\'" & e.NewValue  & "\' and (未发数量 > 0 or 未发数量 is null)")
                e.DataRow("状态_发料完成") = (cnt=0)
            End If
        End If
End Select


角钢进料表明细
If e.DataCol.Name = "进料表编号" Then
    If e.NewValue Is Nothing Then
        e.DataRow("工程名称") = Nothing
        e.DataRow("塔型") = Nothing
        e.DataRow("仓储配料员") = Nothing
        e.DataRow("审核") = Nothing
        e.DataRow("编制人") = Nothing
    Else
        Dim dr3 As DataRow
        dr3 = DataTables("角钢进料台账").Find("[进料表编号] = \'" & e.NewValue & "\'")
        If dr3 IsNot Nothing
            e.DataRow("工程名称") = dr3("工程名称")
            e.DataRow("塔型") = dr3("塔型")
            e.DataRow("仓储配料员") = dr3("仓储配料员")
            e.DataRow("审核") = dr3("审核")
            e.DataRow("编制人") = dr3("编制人")
        End If
    End If
End If

还需要怎么修改?


--  作者:有点蓝
--  发布时间:2019/8/13 17:39:00
--  
这个业务流转的过程不应该问我们,我也不懂这个业务,自己理清楚这个业务逻辑