Foxtable(狐表)用户栏目专家坐堂 → 代码


  共有3707人关注过本帖树形打印复制链接

主题:代码

美女呀,离线,留言给我吧!
13775189031
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:879 积分:6084 威望:0 精华:0 注册:2017/12/19 14:46:00
代码  发帖心情 Post By: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

问题:修改实发支数时,日期会更改成当天!要怎么修改,修改实发支数时,日期不变?


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112401 积分:572273 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/6 10:08:00 [只看该作者]

指的哪一个实发支数?哪个日期?使用文字完整描述一下需要实现的逻辑

 回到顶部
美女呀,离线,留言给我吧!
13775189031
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:879 积分:6084 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By: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




 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112401 积分:572273 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:879 积分:6084 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2019/11/6 10:52:00 [只看该作者]

OK了
谢谢!

 回到顶部