Foxtable(狐表)用户栏目专家坐堂 → 思路问题


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

主题:思路问题

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


加好友 发短信
等级:幼狐 帖子:88 积分:795 威望:0 精华:0 注册:2015/9/11 21:33:00
思路问题  发帖心情 Post By:2018/4/1 12:13:00 [显示全部帖子]

有3张表,分别是记录表,出库表,库存表,需要在记录表里的配件类型、配件名称、数量列选择输入,要求在库存表里判断下这个配件名称的数量是否够,再记录到出库表里,各位有没有什么好的思路

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


加好友 发短信
等级:幼狐 帖子:88 积分:795 威望:0 精华:0 注册:2015/9/11 21:33:00
  发帖心情 Post By:2018/4/1 21:19:00 [显示全部帖子]

记录表选择输入已经完成了,现在差一个在记录表里按配件名称和数量的输入判断库存表的数量是否足够出库,该怎么写?在哪里写比较好?
[此贴子已经被作者于2018/4/1 21:19:47编辑过]

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


加好友 发短信
等级:幼狐 帖子:88 积分:795 威望:0 精华:0 注册:2015/9/11 21:33:00
  发帖心情 Post By:2018/4/1 21:49:00 [显示全部帖子]

If e.DataCol.Name = "配件名称" Then 
    If e.NewValue Is Nothing Then 
        e.DataRow("数量") = Nothing 
    Else
        Dim dr As DataRow
        
        dr = DataTables("库存").Find("[配件名称] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then 
            If e.DataRow("数量") < dr("库存数量") Then
            Else
                MessageBox.Show("库存配件数量不足,请及时补充!","提示")
            End If
        End If
    End If
End If
这个写的不对,判断不了,提示完之后还可以再输入。。。
[此贴子已经被作者于2018/4/1 21:53:04编辑过]

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


加好友 发短信
等级:幼狐 帖子:88 积分:795 威望:0 精华:0 注册:2015/9/11 21:33:00
  发帖心情 Post By:2018/4/1 22:13:00 [显示全部帖子]

先输入配件名称,再输入数量,不会判断,只有先输数量,再输配件名称才会提示,而且现在确定了提示后还可以再输入超过库存的数量...
上面的代码该怎么改
[此贴子已经被作者于2018/4/1 22:13:23编辑过]

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


加好友 发短信
等级:幼狐 帖子:88 积分:795 威望:0 精华:0 注册:2015/9/11 21:33:00
  发帖心情 Post By:2018/4/1 22:36:00 [显示全部帖子]

If e.DataCol.Name = "配件名称" OrElse e.DataCol.name = "数量" Then
    If e.DataRow("配件名称") <> Nothing Then
        Dim dr As DataRow
        
        dr = DataTables("库存").Find("[配件名称] = '" & e.DataRow("配件名称") & "'")
        If dr IsNot Nothing Then
            If e.DataRow("数量") > dr("库存数量") Then    

              这儿加如果数量大于库存数量,清空数量的单元格内容,而且非空,该怎么写?
                MessageBox.Show("库存配件数量不足,请及时补充!","提示")
            End If
        End If
    End If
End If


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


加好友 发短信
等级:幼狐 帖子:88 积分:795 威望:0 精华:0 注册:2015/9/11 21:33:00
  发帖心情 Post By:2018/4/1 23:06:00 [显示全部帖子]

甜版辛苦了,谢谢

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


加好友 发短信
等级:幼狐 帖子:88 积分:795 威望:0 精华:0 注册:2015/9/11 21:33:00
  发帖心情 Post By:2018/4/10 17:52:00 [显示全部帖子]

If e.DataRow("数量") <> 0 Then
    Dim f As New Filler
    f.SourceTable = DataTables("碎修记录") '指定数据来源
    f.SourceCols = "日期,设备类型,配件名称,数量" '指定数据来源列
    f.DataTable = DataTables("出库") '指定数据接收表
    f.DataCols = "日期,设备类型,配件名称,数量"  '指定数据接收列
    f.Fill() '填充数据
End If

这段代码写到BeforeSaveDateRow里可以吗?想把正在编辑的行保存的时候向出库表里增加一条记录,而不是所有行的
[此贴子已经被作者于2018/4/10 17:52:22编辑过]

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


加好友 发短信
等级:幼狐 帖子:88 积分:795 威望:0 精华:0 注册:2015/9/11 21:33:00
  发帖心情 Post By:2018/4/10 19:22:00 [显示全部帖子]

甜版可能没理会我的意思,当碎修记录表里的数量列不等于0时,向出库表复制 "日期,设备类型,配件名称,数量",且只复制当前行
Dim f As New Filler
f.SourceTable = DataTables("碎修记录") '指定数据来源
f.SourceCols = "日期,设备类型,配件名称,数量" '指定数据来源列
f.DataTable = DataTables("出库") '指定数据接收表
f.DataCols = "日期,设备类型,配件名称,数量"  '指定数据接收列
f.fill= 数量为非0时复制,且只复制当前行的,而不是整个表里的数据
f.Fill() '填充数据


 回到顶部