Foxtable(狐表)用户栏目专家坐堂 → 为什么代码不起作用


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

主题:为什么代码不起作用

帅哥哟,离线,有人找我吗?
大红袍
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/15 10:43:00 [显示全部帖子]

Select Case e.DataCol.name
    Case "物料代码"
        If e.newvalue Is Nothing Then '如果新值是空白,也就是物料代码列的内容为空
            ' msgbox("物料代码为空")
            e.DataRow("出库数量") = Nothing '那么清空此行出库数量列的内容
        Else
            Dim dg As DataRow = DataTables("库存材料表").Find("[物料代码] = '" & e.NewValue & "'","_Identify Desc")'获得最后一行
            If dg Is Nothing Then '如果找到了同名的物料代码行,也就是dr不是Nothing
                'msgbox("在库存没找到物料")
                'e.Cancel = True
                e.NewValue = Nothing
            Else
               
                If e.DataRow("出库数量") <= 0 Then
                    e.DataRow("出库数量") = Nothing
                ElseIf  e.DataRow("出库数量") >= dg("库存数量") Then
                    'MsgBox("出库量不能大于库存量!")
                    e.DataRow("出库数量") = dg("库存数量")
                End If
            End If
        End If
    Case "出库数量"
        Dim dg As DataRow = DataTables("库存材料表").Find("[物料代码] = '" & e.DataRow("物料代码") & "'","_Identify Desc")'获得最后一行
        If dg Is Nothing Then '如果找到了同名的物料代码行,也就是dr不是Nothing
            'msgbox("在库存没找到物料")
            'e.Cancel = True
            e.NewValue = Nothing
        Else
           
            If e.newvalue <= 0 Then
                e.newValue = Nothing
            ElseIf  e.newvalue >= dg("库存数量") Then
                'MsgBox("出库量不能大于库存量!")
                e.newvalue = dg("库存数量")
            End If
        End If
       
End Select


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/15 11:51:00 [显示全部帖子]

Case "记账"
        Dim Sun As Integer
        Sun =  DataTables("材料发放明细表").Compute("Sum(出库数量)", "[物料代码] = '" & e.DataRow("物料代码") & "'")
        If e.DataRow"记账") = False Then
            If sun >= dg("库存数量") Then
                MsgBox("出库量不能大于库存量!")
                e.DataRow("库存数量") = dg("库存数量")
            End If
        End If
End Selec

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/15 15:11:00 [显示全部帖子]

 

[此贴子已经被作者于2015/6/15 15:11:08编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/15 15:13:00 [显示全部帖子]

Case "记账"
        Dim Sun As Integer
        Sun =  DataTables("材料发放明细表").Compute("Sum(出库数量)", "[物料代码] = '" & e.DataRow("物料代码") & "'")
        If e.DataRow("记账") = False Then
            If sun >= e.DataRow("库存数量") Then
                MsgBox("出库量不能大于库存量!")
                e.Cancel = True
            End If
        End If
End Selec

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/15 16:18:00 [显示全部帖子]

Dim dms As List(Of String)
dms = DataTables("材料发放明细表").GetValues("物料代码")
For Each dm As String In dms
    If dms("记账") = False Then
        Dim Sun As Double
        Sun =  DataTables("材料发放明细表").Compute("Sum(出库数量)", "[物料代码] = ' & dms & '")
        If sun >= dg("库存数量") Then
            MsgBox("出库量不能大于库存量!")
            e.DataRow("出库数量") = Nothing
            'e.Cancel = True
        End If
    End If
Next

 

改成


If e.DataRow("记账") = False Then
    Dim Sun As Double
    Sun =  DataTables("材料发放明细表").Compute("Sum(出库数量)", "[物料代码] = '" & e.datarow("物料代码") & "'")
    If sun >= dg("库存数量") Then
        MsgBox("出库量不能大于库存量!")
        e.DataRow("出库数量") = Nothing
    End If
End If


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/15 16:19:00 [显示全部帖子]

 直接说你想做什么,并且上传具体的例子啊。

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/15 17:04:00 [显示全部帖子]

Dim dg As DataRow = DataTables("库存材料表").Find("[物料代码] = '" & e.DataRow("物料代码") & "'","_Identify Desc")'获得最后一行
Select Case e.DataCol.name
    Case "出库数量"
        If dg Is Nothing Then '如果找到了同名的物料代码行,也就是dr不是Nothing
            'msgbox("在库存没找到物料")
            'e.Cancel = True
            e.NewValue = Nothing
        Else
           
            If e.newvalue <= 0 Then
                e.newValue = Nothing
            Else
                Dim sum As Double =  DataTables("材料发放明细表").Compute("Sum(出库数量)", "[物料代码] = '" & e.DataRow("物料代码") & "' and 记账 = false")
                If sum + e.newvalue > dg("库存数量") Then
                    MsgBox("出库量不能大于库存量!")
                    e.DataRow("出库数量") = Nothing
                End If
            End If
        End If
       
       
End Select

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/16 9:43:00 [显示全部帖子]

以下是引用shiliang在2015/6/16 9:37:00的发言:
求教:锁定行后如何能编辑其中的某一列,写在什么事件中

 

锁定行以后,不能编辑某一列。

 

要编辑,就不能锁定行。

 

或者你可以用事件控制 如 http://www.foxtable.com/help/topics/2255.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/16 9:53:00 [显示全部帖子]

以下是引用shiliang在2015/6/16 9:51:00的发言:
例如:审核后锁定该行,如何取消审核

 

如果是锁定行,你可以做一个按钮取消审核,比如

 

Tables("表A").Current.Locked = False

Tables("表A").Current("审核") = False

 

-------------

 

或者审核由prepareEdit控制 http://www.foxtable.com/help/topics/2296.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/16 14:30:00 [显示全部帖子]

 列.Combolist = DataTables("表A").GetComboListString("县市")  & "|" & DataTables("表B").GetComboListString("县市")
[此贴子已经被作者于2015/6/16 14:30:08编辑过]

 回到顶部
总数 11 1 2 下一页