Foxtable(狐表)用户栏目专家坐堂 → 出入库


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

主题:出入库

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


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
出入库  发帖心情 Post By:2022/4/12 11:07:00 [显示全部帖子]

请问各位狐友,谁有简单的物品出入库流水账代码发一个急用,谢谢了!

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


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
  发帖心情 Post By:2022/4/12 15:09:00 [显示全部帖子]

Dim drs As New List(of DataRow)
With DataTables("防控物资储备")
    For Each nm As String In .GetValues("物品名称") '找出每个产品的第一行数据, 添加到集合drs中
        drs.Add(.Find("物品名称 = '" & nm & "'", "[_SortKey]"))
    Next
    For Each r As DataRow In drs
        .DataCols("入库_数量").RaiseDataColChanged(r)
    Next
End With



.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:项目,AfterOpenProject
详细错误信息:
Object reference not set to an instance of an object.

出现这个错误是什么意思呢?

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


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
  发帖心情 Post By:2022/4/12 15:51:00 [显示全部帖子]

老师您好,我还是没弄明白。
代码怎么改呢。

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


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
  发帖心情 Post By:2022/4/12 16:14:00 [显示全部帖子]

是不是复制您修改的代码即可呢?
改成下面这样编译通过不过呀。
Dim drs As New List(of DataRow)
With DataTables("防控物资储备")
    For Each nm As String In .GetValues("物品名称") '找出每个产品的第一行数据, 添加到集合drs中
dim dr as datarow = .Find("物品名称 = '" & nm & "'", "[_SortKey]")
if dr isnot nothing then
        drs.Add(dr)
end if
    Next
For Each r As DataRow In drs
       .DataCols("入库_数量").RaiseDataColChanged(r)
    Next
End With
[此贴子已经被作者于2022/4/12 16:18:19编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
  发帖心情 Post By:2022/4/12 16:42:00 [显示全部帖子]

图片点击可在新窗口打开查看

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


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
  发帖心情 Post By:2022/4/12 17:08:00 [显示全部帖子]

谢谢老师,问题解决了。又有个新问题,倒不明白了。
一个表里有A、B、C、D、E五列,分别有两人填写,甲填写A、B列,乙填写c、d
现在想在BeforeDeleteDataRow事件中设置权限,限制删除。
1、如果A或B不为空,除了甲,其它的人不能删除,也不能在C和D列写入
2、如果C或D不为空,除了乙,其它的人不能删除,也不能在A和B列写入
3、只有甲和已有删除权限,其它人不能删除


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


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
  发帖心情 Post By:2022/4/13 8:41:00 [显示全部帖子]

If User.Name <> "开发者" Then
    Select Case e.Col.name
        Case "库存"
            e.cancel = True
            e.Continue = False '取消后续同类操作
            Messagebox.Show("系统自动生成,不能填写和修改!","提示",MessageBoxButtons.OK, MessageBoxIcon.Information)         这一段没问题
            
            
        Case "日期","物品名称","单位","规格型号"                                                              如果是总务主任或保管员这四列允许编辑,但总务主任编辑不了。
            If User.IsRole("保管员") = False OrElse user.isrole("总务主任") = False  Then          
                e.cancel = True
                e.Continue = False '取消后续同类操作
                Messagebox.Show("只有管理人员才能填写,修改!","提示",MessageBoxButtons.OK, MessageBoxIcon.Information)      
            End If
    请老师给看看代码有什么问题呢
        
        Case "入库_供货单位","入库_数量","入库_过期日期"
            If e.Row.isnull("出库_出库人") = False OrElse e.Row.isnull("出库_数量") = False Then
                If user.isrole("保管员") = False  Then
                    e.cancel = True
                    e.Continue = False '取消后续同类操作
                    Messagebox.Show("只有管理员或本班班主任才能填写,修改!","提示",MessageBoxButtons.OK, MessageBoxIcon.Information)
                End If
            End If
            
        Case "出库_出库人","出库_数量"
            If e.Row.isnull("入库_供货单位") = False OrElse e.Row.isnull("入库_数量") = False Then
                
                If user.isrole("总务主任") = False  Then
                    e.cancel = True
                    e.Continue = False '取消后续同类操作
                    Messagebox.Show("只有总务主任才能填写,修改!","提示",MessageBoxButtons.OK, MessageBoxIcon.Information)
                End If
            End If
            
    End Select
End If

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


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
  发帖心情 Post By:2022/4/13 11:03:00 [显示全部帖子]

不能编辑到PrepareEdit事件处理
Select Case User.Name
    Case
 "C",
"D"
If e.Row.isnull("A") = false orelse e.Row.isnull("B") = false Then
If User.Name <> "" Then
    e.Cancel = True
end if
End
 
If
End Select
老师,这一段代码我还是绕不出来
有点复杂
一共有ABCDEFG六列,ABC三列是两个人都可以编辑;DE只有甲可以编辑FG只有乙可以编辑
现在有个问题,就是一条记录,如果是甲已编辑,也就是DE不为空的情况下,乙就不能编辑这条记录的FG两列。
  A   B   C  D    E   F  G     
  ddd  ccc   kk    ttt   rrr  甲已在DE格内写入信息,乙不能再编辑   同F     
   ddd  ccc    kk         乙这时可以写入  同F    




[此贴子已经被作者于2022/4/13 11:04:25编辑过]

 回到顶部