以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  两表对应问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=134094)

--  作者:jackchan120925
--  发布时间:2019/4/27 10:08:00
--  两表对应问题
请问下,我有一张<货品信息表>, 一张<库存信息表>,  <库存信息表>第一类货产品名称。
1,如果<产品信息表>增加一个新品,那么库存表第一列也应该增加一个新品
2,若果<产品信息表>删除一个新品,那么要判断库存表是否对应产品有库存,若有库存则禁止删除,没有则删除
3,如果《产品信息表》修改了一个产品名称,那么库存表对应的名称也自动与<产品信息表>保持一致

请问该如何实现,谢谢

--  作者:有点蓝
--  发布时间:2019/4/27 10:27:00
--  
产品信息表datacolchanging事件
if e.datacol.name = "产品名称" andalso e.newvalue is nothing then
    if datatables("库存信息表").find("产品名称=\'" &e.oldvalue  & "\'") isnot nothing then
msgbox("有库存,不能删除")
       e.cancel = true
   end if
end if

产品信息表datacolchanged事件

if e.datacol.name = "产品名称"
    dim dr as datarow = datatables("库存信息表").find("产品名称=\'" & e.oldvalue  & "\'")
    if dr isnot nothing then
        dr("产品名称") = e.newvalue
    else
        dr = datatables("库存信息表").find("产品名称=\'" & e.newvalue  & "\'")
    if dr is nothing then
dr = datatables("库存信息表").addnew
        dr("产品名称") = e.newvalue
    end if
    end if
end if

BeforeDeleteDataRow事件
    if datatables("库存信息表").find("产品名称=\'" & e.datarow("产品名称") & "\'") isnot nothing then
msgbox("有库存,不能删除")
       e.cancel = true
   end if

建议还是使用产品编码进行关联,因为如果还有采购订单、销售订单、调拨单等等各种明细也有这个产品名称,难道全部都要改里面的产品名称?这个是不合理的

--  作者:jackchan120925
--  发布时间:2019/4/27 14:58:00
--  
非常感谢。
还有个问题,罗激列选中的情况下是打钩,打钩能够用其他颜色显示,黑色的钩总觉得不显眼

--  作者:有点蓝
--  发布时间:2019/4/27 15:08:00
--  
这个改不了