以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 代码 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=142783) |
-- 作者:13775189031 -- 发布时间:2019/11/6 9:19:00 -- 代码 请教 Dim dr As DataRow = e.DataRow Select Case e.DataCol.Name Case "实发_支数1" If dr.IsNull("实发_支数1") = False Then dr("实发_日期1") =Date.today Else dr("实发_日期1") = Nothing End If Case "实发_支数2" If dr.IsNull("实发_支数2") = False Then dr("实发_日期2") =Date.today Else dr("实发_日期2") = Nothing If e.oldvalue <> Nothing dr("实发_日期1") = e.DataRow("实发_日期1") End If End If Case "实发_支数3" If dr.IsNull("实发_支数3") = False Then dr("实发_日期3") =Date.today Else dr("实发_日期3") = Nothing If e.oldvalue <> Nothing dr("实发_日期2") = e.DataRow("实发_日期2") End If End If End Select 问题:修改实发支数时,日期会更改成当天!要怎么修改,修改实发支数时,日期不变? |
-- 作者:有点蓝 -- 发布时间:2019/11/6 10:08:00 -- 指的哪一个实发支数?哪个日期?使用文字完整描述一下需要实现的逻辑 |
-- 作者:13775189031 -- 发布时间:2019/11/6 10:33:00 -- 三个实发支数都有这个问题! 在PrepareEdit中设置了日期锁定如下,就是填写“实发支数1”后,显示当天日期,填写“实发支数2”时,判断当天是否与“实发日期1”相同,若不同显示当天日期,若相同则锁定“实发支数2”,如此类推,也就是要求实发日期是不相同的! Dim dr As Row = e.Row Select Case e.Col.Name Case "实发_支数1" If dr("实发_日期2") = Date.today OrElse dr("实发_日期3") = Date.today OrElse dr.IsNull("未发数量") Then e.cancel = True End If Case "实发_支数2" If dr("实发_日期1") = Date.today OrElse dr("实发_日期3") = Date.today OrElse dr.IsNull("实发_支数1") Then e.cancel = True End If Case "实发_支数3" If dr("实发_日期2") = Date.today OrElse dr("实发_日期1") = Date.today OrElse dr.IsNull("实发_支数2") Then e.cancel = True End If End Select 填写"实发支数",显示当天日期,根据“实发日期”和“序号”在子表中增加行,现在的问题举个例子: 2019.11.04填写“实发支数1”2支,在子表“角钢每日发料明细”中应生成1行 2019.11.06填写“实发支数2”3支,在子表“角钢每日发料明细”中应生成1行 如果在2019.11.06当天修改“实发支数1”要求“实发日期1”是不变的,子表“角钢每日发料明细”中仍然是一行,只是“实发支数”同步变更 但实际“实发日期1”变更为当天,也就是2019.11.06,这样在子表“角钢每日发料明细”又重新生成了一行 Select Case e.DataCol.Name Case "实发_日期1" If e.DataRow.IsNull("实发_日期1") = True Then DataTables("角钢每日发料明细").DeleteFor("序号=\'" & e.DataRow("序号")& "\' And [发料日期] = \'" & e.DataRow("实发_日期1") & "\'") Else Dim ndr1 As DataRow = DataTables("角钢每日发料明细").Find("序号 = \'" & e.DataRow("序号") & "\' And [发料日期] = \'" & e.DataRow("实发_日期1") & "\'") If ndr1 Is Nothing Then 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("长度m") = e.DataRow("长度m") ndr("材料标准") = e.DataRow("材料标准") ndr("实发支数") = e.DataRow("实发_支数1") ndr("货位") = e.DataRow("货位") ndr("发料日期") = e.DataRow("实发_日期1") ndr("仓储配料员") = e.DataRow("仓储配料员") ndr("编制人") = e.DataRow("编制人") ndr("发料人") = User.name ndr.Move(0) End If End If End Select Select Case e.DataCol.Name Case "实发_日期2" If e.DataRow.IsNull("实发_日期2") = True Then DataTables("角钢每日发料明细").DeleteFor("序号=\'" & e.DataRow("序号")& "\' And [发料日期] = \'" & e.DataRow("实发_日期2") & "\'") Else Dim ndr1 As DataRow = DataTables("角钢每日发料明细").Find("序号 = \'" & e.DataRow("序号") & "\' And [发料日期] = \'" & e.DataRow("实发_日期2") & "\'") If ndr1 Is Nothing Then 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("长度m") = e.DataRow("长度m") ndr("材料标准") = e.DataRow("材料标准") ndr("实发支数") = e.DataRow("实发_支数2") ndr("货位") = e.DataRow("货位") ndr("发料日期") = e.DataRow("实发_日期2") ndr("仓储配料员") = e.DataRow("仓储配料员") ndr("编制人") = e.DataRow("编制人") ndr("发料人") = User.name ndr.Move(0) End If End If End Select Select Case e.DataCol.Name Case "实发_日期3" If e.DataRow.IsNull("实发_日期3") = True Then DataTables("角钢每日发料明细").DeleteFor("序号=\'" & e.DataRow("序号")& "\' And [发料日期] = \'" & e.DataRow("实发_日期3") & "\'") Else Dim ndr1 As DataRow = DataTables("角钢每日发料明细").Find("序号=\'" & e.DataRow("序号")& "\' And [发料日期] = \'" & e.DataRow("实发_日期3") & "\'") If ndr1 Is Nothing Then 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("长度m") = e.DataRow("长度m") ndr("材料标准") = e.DataRow("材料标准") ndr("实发支数") = e.DataRow("实发_支数3") ndr("货位") = e.DataRow("货位") ndr("发料日期") = e.DataRow("实发_日期3") ndr("仓储配料员") = e.DataRow("仓储配料员") ndr("编制人") = e.DataRow("编制人") ndr("发料人") = User.name ndr.Move(0) End If End If End Select |
-- 作者:有点蓝 -- 发布时间:2019/11/6 10:39:00 -- Dim dr As DataRow = e.DataRow Select Case e.DataCol.Name Case "实发_支数1" If dr.IsNull("实发_支数1") = False Then if dr.isnull("实发_日期1") then dr("实发_日期1") =Date.today Else dr("实发_日期1") = Nothing End If ……
|
-- 作者:13775189031 -- 发布时间:2019/11/6 10:52:00 -- OK了 谢谢!
|