Foxtable(狐表)用户栏目专家坐堂 → 选择不同行后实行


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

主题:选择不同行后实行

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


加好友 发短信
等级:婴狐 帖子:87 积分:646 威望:0 精华:0 注册:2017/3/5 20:07:00
选择不同行后实行  发帖心情 Post By:2017/3/8 18:37:00 [只看该作者]

有窗口商品上架资料补充,表afterload 代码

Dim lbl,lbl2,lbl3,lbl4 As WinForm.DateTimePicker
lbl = e.Form.Controls("DateTimePicker1")
lbl2 = e.Form.Controls("DateTimePicker2")
lbl3 = e.Form.Controls("DateTimePicker3")
lbl4 = e.Form.Controls("DateTimePicker4")
'e.Form.Controls("提示").text = "商品入库明细记录"
Dim d As Date = Date.Today
Dim y As Integer = d.Year
Dim m As Integer = d.Month
Dim Days As Integer = Date.DaysInMonth(y,m)
Dim fd As Date = New Date(y,m,1) '获得该月的第一天
Dim ld As Date = New Date(y,m,Days) '获得该月的最后一天
lbl.Value = fd
lbl2.Value = Date.Today
lbl3.Value = fd
lbl4.Value = Date.Today
Tables("商品上架资料补充_Table1").ExtendLastCol = True
Tables("商品上架资料补充_table2").ExtendLastCol = True
Dim filter As String
        filter = "待入库 <>  ' 0 '"
        Tables("商品上架资料补充_Table1").Filter = filter
Dim zts As Integer = Tables("商品上架资料补充_Table1").Rows.Count
e.Form.Controls("入库总记录数").text = "入库记录数: " & zts & " 条"
Dim zsl As Double = Tables("商品上架资料补充_Table1").Compute("Sum(待入库)")
e.Form.Controls("待入库总数量").text = "入库总数量: " & zsl
If zts > 0 Then
    Tables("商品上架资料补充_Table2").Filter = "[货品编号] = '" & Tables("商品上架资料补充_table1").Current("Item") & "'"
End If

 

副本表一

CurrentChanged事件

Dim zts As Integer = Tables("商品上架资料补充_table1").Rows.Count
If zts > 0 Then
    Tables("商品上架资料补充_Table2").Filter = "[货品编号] = '" & Tables("商品上架资料补充_table1").Current("Item") & "'And [待入库] = '" & Tables("商品上架资料补充_table1").Current("待入库") &  " '"
End If

窗口《商品上架资料修改》 afterload事件

If Forms("商品上架资料补充").opened Then
    e.Form.Controls("商品编号").value = Tables("商品上架资料补充_table2").Current("货品编号")
    e.Form.Controls("商品名称").value = Tables("商品上架资料补充_table2").Current("货品名称")
    e.Form.Controls("商品类别").value = Tables("商品上架资料补充_table2").Current("类型")
    e.Form.Controls("规格").value = Tables("商品上架资料补充_table2").Current("箱含量")
    e.Form.Controls("库位").value = Tables("商品上架资料补充_table2").Current("货格")
    e.Form.Controls("条码").value = Tables("商品上架资料补充_table2").Current("条码")
    e.Form.Controls("条码类型").value = Tables("商品上架资料补充_table2").Current("条码类型")
    e.Form.Controls("数量").value = Tables("商品上架资料补充_table2").Current("待入库")
    e.Form.Controls("实时库存").value = Tables("商品上架资料补充_table2").Current("实时库存")+ Tables("商品上架资料补充_table2").Current("待入库")

    If Tables("商品上架资料补充_table2").Current("生产日期") = Nothing Then
        e.Form.Controls("生产日期").value = Nothing
    Else
        e.Form.Controls("生产日期").value = Tables("商品上架资料补充_table2").Current("生产日期")
    End If
    If Tables("商品上架资料补充_table2").Current("到期日期") = Nothing Then
        e.Form.Controls("有效期至").value = Nothing
    Else
        e.Form.Controls("有效期至").value = Tables("商品上架资料补充_table2").Current("到期日期")
    End If
End If

该窗口的修改按钮事件:

 

ElseIf yxqz.value = Nothing Then
    MessageBox.Show("请输入商品的有效期,不能为空!", "错误提示!",MessageBoxButtons.OK,MessageBoxIcon.Warning)
    e.Form.Controls("有效期至").Select()
    Return
End If
Dim spbh As String = e.Form.Controls("商品编号").value
Dim spmc As String = e.Form.Controls("商品名称").value
Dim splb As String = e.Form.Controls("商品类别").value
Dim gg As String = e.Form.Controls("规格").value
Dim ly As String = e.Form.Controls("库位").value
Dim jz As String = e.Form.Controls("条码").value
Dim dw As String = e.Form.Controls("条码类型").value
Dim sl As Double = e.Form.Controls("实时库存").value
Dim cgj As String = e.Form.Controls("批次").value

Dim dr1 As DataRow = DataTables("商品库存明细").Find("货品编号 = '" & spbh & "'And 待入库 =  '" & sl & "'")
If dr1 IsNot Nothing Then
    dr1("实时库存") = sl + dr1("实时库存")
    dr1("可用库存") = sl + dr1("可用库存")
    dr1("类型") = splb
    dr1("生产日期") = scrq.value
    dr1("到期日期") = yxqz.value
    dr1("箱含量") = gg
    dr1("货格") = ly
    dr1("条码") = jz
    dr1("条码类型") = dw
    dr1("批次") = cgj
    dr1("待入库") = "0"
    dr1.Save()
End If
Dim pr As DataRow
Dim filter As String
filter = "Item = '" & spbh & "'"
pr = DataTables("商品库存").Find(filter)
If pr IsNot Nothing Then
    pr("实时库存") = sl + pr("实时库存")
    pr("可用库存") = sl + pr("可用库存")
    pr("待入库") = "0"
    pr.Save()
End If

MessageBox.Show("商品上架成功!", "成功提示!")
e.Form.Controls("商品编号").value = Nothing
e.Form.Controls("商品编号").Select()

 

问题一,点击副本表一的不同行,副本表二没反应(但设计预览时可用),只在点击第一行时有效果

问题二:修改按钮的事件在处理完一次修改后,怎样刷新重新定位“商品编号”到副本表一的当前行的商品编号,也就是重置一次窗口的afterload事件代码,直到副本表一没有可选行,直接关闭。

问题三:曾经提示过一次键值约束,但是现在试了很多次又不见提示了


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/8 21:25:00 [只看该作者]

1、CurrentChanged事件加入msgbox,看弹出的是否正确。

 

2、把要执行的代码拷贝出来执行。

 

3、做具体例子测试吧。


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


加好友 发短信
等级:婴狐 帖子:87 积分:646 威望:0 精华:0 注册:2017/3/5 20:07:00
  发帖心情 Post By:2017/3/9 16:53:00 [只看该作者]

问题一解决了。

还差问题二

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


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


加好友 发短信
等级:婴狐 帖子:87 积分:646 威望:0 精华:0 注册:2017/3/5 20:07:00
  发帖心情 Post By:2017/3/9 17:04:00 [只看该作者]

新的需求,在商品出库窗口中,导入后提示l找不到able的公共成员:value

我想当前行的数据,在控件中显示,不行的话我换成文本框,有可能会手动录入出库订单

1.我想在输入出库数量时,弹窗选择用哪些库位,并计算出差值,在选定后再把值赋予控件”库位“

2在批量导入时,后台自动匹配库位,在当天出库表表事件中有代码,但没有达到效果怎样改

 


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/9 18:11:00 [只看该作者]

参考

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


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


加好友 发短信
等级:婴狐 帖子:87 积分:646 威望:0 精华:0 注册:2017/3/5 20:07:00
  发帖心情 Post By:2017/3/18 11:02:00 [只看该作者]

谢谢帮忙,现在我想做一张明细表,在确认提交时把当天出库的数据写入。我想实现单一库位的库存>=出库量就只增加一行,并写入,如果是几个库位才够出库数那就增加几行,我写了一部分代码,也就是i=几,就增加几行

上传的实例里有手工做的出库明细,期望的效果就是那样,如果三个库位上的货量才够出库就增加三行,并且前两个库位有多少库存出就出多少,最后一个出剩下的,算出剩余库存。在最后把库存已为零的库位从商品库存明细里删掉。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:实例1.rar

 

实例中有个问题,一个商品编号为900613的商品 两个库位能满足个出库需求的,却提示库存不足。

 望帮忙看看确认商品出库窗口的确认提交的代码要怎样写下去,谢谢


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


加好友 发短信
等级:超级版主 帖子:110597 积分:562881 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/18 11:19:00 [只看该作者]

......

 

    Else
        Dim count As Integer = 0
        Dim drs As List(Of DataRow) = DataTables("商品库存明细").Select("货品编号 = '" & r("商品编号") & "' AND 可用库存 > 0", "生产日期, _Identify")
        Dim s As String = ""
        Dim cnt As Integer
        For i As Integer = 0 To drs.count - 1
            Dim dr1 As DataRow = drs(i)
            count += dr1("可用库存")
            Dim sy As Integer = count - r("数量")
            s &= dr1("货格") & ","
            If sy >= 0 Then

                cnt = i
                Exit For
            End If
        Next
        For j As Integer = 0 To cnt
            Dim d2 As Row = Tables("商品库存").AddNew()
            '其它后续代码
        Next
    End If


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


加好友 发短信
等级:婴狐 帖子:87 积分:646 威望:0 精华:0 注册:2017/3/5 20:07:00
  发帖心情 Post By:2017/3/18 17:42:00 [只看该作者]

 Dim sl As Integer = 0
For Each r As Row In Tables("商品出库_table1").Rows
    Dim dr As DataRow = DataTables("商品库存明细").Find("货品编号 = '" & r("商品编号") & "' and 可用库存 > " & r("数量"))
    If dr IsNot Nothing Then
        Dim d1 As Row = Tables("出库明细").AddNew()
        d1("订单编号") = r("订单编号")
        d1("商品编号") = r("商品编号")
        d1("中文名称") = r("中文名称")
        d1("中文描述") = r("中文描述")
        d1("单价") = r("单价")
        d1("出库数量") = r("数量")
        d1("净重") = r("净重")
        d1("单位") = r("单位")
        d1("经手人") = r("经手人")
        d1("有效期至") = r("有效期至")
        d1("生产日期") = r("生产日期")
        d1("经手人姓名") = r("经手人姓名")
        d1("库位") = dr("货格")
        d1("总价") = r("总价")
        d1("沃尔玛商品号") = r("沃尔玛商品号")
        d1("收货地址") = r("收货地址")
        d1("收货人") = r("收货人")
        d1("收货人电话") = r("收货人电话")
        d1("入库日期") = dr("入库日期")
        d1("入库数量") = dr("可用库存")
        d1("剩余库存") = dr("可用库存") - r("数量")
    Else
        Dim count As Integer = 0
        Dim drs As List(Of DataRow) = DataTables("商品库存明细").Select("货品编号 = '" & r("商品编号") & "' AND 可用库存 > 0", "生产日期, _Identify")
        Dim s As String = ""
        Dim cnt As Integer
        For i As Integer = 0 To drs.count - 1
            Dim dr1 As DataRow = drs(i)
            count += dr1("可用库存")
            Dim sy As Integer = count - r("数量")
            's &= dr1("货格") & ","
            If sy >= 0 Then
                cnt = i
                Exit For
            End If
        Next
        For j As Integer = 0 To cnt
            Dim coun As Integer = 0
            Dim d2 As Row = Tables("出库明细").AddNew()
            Dim dr2 As DataRow = drs(j)
            coun + = dr2("可用库存")
            If j < cnt Then
                d2("订单编号") = r("订单编号")
                d2("商品编号") = r("商品编号")
                d2("中文名称") = r("中文名称")
                d2("中文描述") = r("中文描述")
                d2("单价") = r("单价")
                d2("出库数量") = dr2("可用库存")
                d2("净重") = r("净重")
                d2("单位") = r("单位")
                d2("经手人") = r("经手人")
                d2("有效期至") = r("有效期至")
                d2("生产日期") = r("生产日期")
                d2("经手人姓名") = r("经手人姓名")
                d2("库位") = dr2("货格")
                d2("总价") = r("总价")
                d2("沃尔玛商品号") = r("沃尔玛商品号")
                d2("收货地址") = r("收货地址")
                d2("收货人") = r("收货人")
                d2("收货人电话") = r("收货人电话")
                d2("入库日期") = dr2("入库日期")
                d2("入库数量") = dr2("可用库存")
                d2("剩余库存") = dr2("可用库存") - d2("出库数量")
               
            Else If j = cnt Then
                d2("订单编号") = r("订单编号")
                d2("商品编号") = r("商品编号")
                d2("中文名称") = r("中文名称")
                d2("中文描述") = r("中文描述")
                d2("单价") = r("单价")
                d2("出库数量") = r("数量") - coun
                d2("净重") = r("净重")
                d2("单位") = r("单位")
                d2("经手人") = r("经手人")
                d2("有效期至") = r("有效期至")
                d2("生产日期") = r("生产日期")
                d2("经手人姓名") = r("经手人姓名")
                d2("库位") = dr2("货格")
                d2("总价") = r("总价")
                d2("沃尔玛商品号") = r("沃尔玛商品号")
                d2("收货地址") = r("收货地址")
                d2("收货人") = r("收货人")
                d2("收货人电话") = r("收货人电话")
                d2("入库日期") = dr2("入库日期")
                d2("入库数量") = dr2("可用库存")
                d2("剩余库存") = dr2("可用库存") - d2("出库数量")
            End If
        Next
    End If
    sl = sl+1
Next
DataTables("出库明细").Save()
MessageBox.Show("导入成功!本次有 " & Tables("商品出库_table1").Compute("Sum(数量)") & " 个商品数量,共计 " & sl & " 种新商品!")
With DataTables("当天出库")
    .DataRows.Clear() '清除所有行
End With

 

coun + = dr2("可用库存") 要放哪才能得出不是最后一行之外的总和?

现在值是零,还是说我逻辑不对

 


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


加好友 发短信
等级:超级版主 帖子:110597 积分:562881 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/20 8:32:00 [只看该作者]

Dim coun As Integer = 0
上面代码放到For循环之外

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


加好友 发短信
等级:婴狐 帖子:87 积分:646 威望:0 精华:0 注册:2017/3/5 20:07:00
  发帖心情 Post By:2017/3/20 18:06:00 [只看该作者]

忘了回复,解决了


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