以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  出库主表的仓库 和统计的的仓库不一样不容许输入  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=159034)

--  作者:青丘狐
--  发布时间:2020/12/11 12:32:00
--  出库主表的仓库 和统计的的仓库不一样不容许输入

    Dim tbl  As  Table =  Tables("销售提单登记_Table2")
    If tbl.Current IsNot  Nothing  Then
        Tables("出库明细表").Current("生产日期") = tbl.Current("生产日期")
        Tables("出库明细表").Current("产地") = tbl.Current("产地")
        Tables("出库明细表").Current("货物名称") = tbl.Current("货物名称")
        Tables("出库明细表").Current("规格型号") = tbl.Current("规格型号")
        Tables("出库明细表").Current("材质") = tbl.Current("材质")
        Tables("出库明细表").Current("货位") = tbl.Current("货位")
        Tables("出库明细表").Current("车号") = tbl.Current("车号")
    End If

 

销售提单窗口的出库主表的仓库字段是ComboBox控件   有一个统计表是库存表,可以双击单元格输入数据  想要统计表的仓库名称和窗口的仓库字段ComboBox控件值不一样可提示仓库名称不同请问代码怎么写,谢谢!

[此贴子已经被作者于2020/12/11 12:32:46编辑过]

--  作者:青丘狐
--  发布时间:2020/12/11 12:47:00
--  

Dim cmb As WinForm.ComboBox
cmb = Forms("销售提单登记").Controls("ComboBox1")
cmb.ComboList = DataTables("销售提单登记_Table2").GetComboListString("仓库")

 

控件取得统计表数据

[此贴子已经被作者于2020/12/11 12:48:25编辑过]

--  作者:有点蓝
--  发布时间:2020/12/11 13:35:00
--  
表格双击事件

if e.row("仓库名称") <> Forms("销售提单登记").Controls("ComboBox1").text then
msgbox("仓库名称不同")

--  作者:青丘狐
--  发布时间:2020/12/11 14:44:00
--  

Dim sts() As  String  = {"仓库","购货单位","出库日期","出库单号","付款单位","业务类别","销售类型"}
For Each st As String In sts
    If Tables("出库主表").Current.isnull(st) = True Then
        MessageBox.Show("请将单据填写完整!","提醒")
        Return
    End If
Next
Dim r As Row = Tables("出库明细表").AddNew
For Each st As String In sts
    r(st) = Tables("出库主表").Current(st)
Next
Dim tbl  As  Table =  Tables("销售提单登记_Table2")
If tbl.Current IsNot  Nothing  Then
    If Tables("出库明细表").Rows.Count> 0 Then
        Tables("出库明细表").Current("生产日期") = tbl.Current("生产日期")
        Tables("出库明细表").Current("产地") = tbl.Current("产地")
        Tables("出库明细表").Current("货物名称") = tbl.Current("货物名称")
        Tables("出库明细表").Current("规格型号") = tbl.Current("规格型号")
        Tables("出库明细表").Current("材质") = tbl.Current("材质")
        Tables("出库明细表").Current("货位") = tbl.Current("货位")
        Tables("出库明细表").Current("车号") = tbl.Current("车号")
        If e.Row("仓库") <> Forms("销售提单登记").Controls("ComboBox1").text Then
            MessageBox.Show("仓库名称不同!", "提示")
            If MessageBox.Show("是否删除?","请确认",MessageBoxButtons.YesNo,MessageBoxIcon.Question)=DialogResult.Yes Then
                Tables("出库明细表").Current.Delete
            End If
        End If
    End If
End If

 

谢谢老师 这样完整了


--  作者:有点蓝
--  发布时间:2020/12/11 14:57:00
--  
直接把判断放到最前面不好吗?不符合条件就不要新增了,直接退出,何必新增了再删除?
--  作者:青丘狐
--  发布时间:2020/12/11 15:32:00
--  
直接把判断放到最前面提示仓库相同  数据已经写进去了 只能用命令删除  请教老师下有判断相同不新增数据的方法
[此贴子已经被作者于2020/12/11 15:32:36编辑过]

--  作者:青丘狐
--  发布时间:2020/12/11 15:54:00
--  
If Tables("出库明细表").Rows.Count> 0 Then
    If e.Row("仓库") <> Forms("销售提单登记").Controls("ComboBox1").text Then
        MessageBox.Show("仓库名称不同!", "提示")
        Tables("出库明细表").Current.Reject()
    End If
End If
If Tables("出库明细表").Rows.Count> 0 Then
    Dim tbl  As  Table =  Tables("销售提单登记_Table2")
    If tbl.Current IsNot  Nothing  Then
       
        Tables("出库明细表").Current("生产日期") = tbl.Current("生产日期")
        Tables("出库明细表").Current("产地") = tbl.Current("产地")
        Tables("出库明细表").Current("货物名称") = tbl.Current("货物名称")
        Tables("出库明细表").Current("规格型号") = tbl.Current("规格型号")
        Tables("出库明细表").Current("材质") = tbl.Current("材质")
        Tables("出库明细表").Current("货位") = tbl.Current("货位")
        Tables("出库明细表").Current("车号") = tbl.Current("车号")
    End If
End If

--  作者:青丘狐
--  发布时间:2020/12/11 15:55:00
--  
是不是这样 不会写入了
--  作者:有点蓝
--  发布时间:2020/12/11 15:58:00
--  
        If e.Row("仓库") <> Forms("销售提单登记").Controls("ComboBox1").text Then
            MessageBox.Show("仓库名称不同!", "提示")
return
        End If

Dim sts() As  String  = {"仓库","购货单位","出库日期","出库单号","付款单位","业务类别","销售类型"}
For Each st As String In sts
    If Tables("出库主表").Current.isnull(st) = True Then
        MessageBox.Show("请将单据填写完整!","提醒")
        Return
    End If
Next
Dim r As Row = Tables("出库明细表").AddNew 
For Each st As String In sts
    r(st) = Tables("出库主表").Current(st)
Next
Dim tbl  As  Table =  Tables("销售提单登记_Table2")
If tbl.Current IsNot  Nothing  Then
    If Tables("出库明细表").Rows.Count> 0 Then
        Tables("出库明细表").Current("生产日期") = tbl.Current("生产日期")
        Tables("出库明细表").Current("产地") = tbl.Current("产地")
        Tables("出库明细表").Current("货物名称") = tbl.Current("货物名称")
        Tables("出库明细表").Current("规格型号") = tbl.Current("规格型号")
        Tables("出库明细表").Current("材质") = tbl.Current("材质")
        Tables("出库明细表").Current("货位") = tbl.Current("货位")
        Tables("出库明细表").Current("车号") = tbl.Current("车号")
    End If
End If