Foxtable(狐表)用户栏目专家坐堂 → 求,帮忙简化代码!


  共有2402人关注过本帖平板打印复制链接

主题:求,帮忙简化代码!

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


加好友 发短信
等级:小狐 帖子:339 积分:3760 威望:0 精华:0 注册:2017/9/7 15:20:00
求,帮忙简化代码!  发帖心情 Post By:2019/2/14 21:29:00 [只看该作者]

老师您好!

下面是一个用来选择商品的模式窗口,DoubleClick事件中的代码,总感觉挺呆板的感觉,为每一个窗口写着重复的代码!

还有就是用 Forms("窗口名").Opened = True 来判断窗口,是否不够严谨?还有什么方法来判断录入数据的窗口吗?求优化...谢谢!

Dim tbl As Table = Tables("选择商品_Table1")
Dim nma() As String = {"商品ID","商品名称","型号规格","单位"} 
If Forms("销售单").Opened = True Then
    If tbl.Current IsNot Nothing Then
        Dim dr As Row = Tables("销售单").Current
        For i As Integer = 0 To nma.Length - 1
            dr(nma(i)) = e.Row(nma(i))
        Next
        dr("单价") = e.Row("预售价")
    End If
ElseIf Forms("销售退货单").Opened = True Then
    If tbl.Current IsNot Nothing Then
        Dim dr As Row = Tables("销售退货单").Current
        For i As Integer = 0 To nma.Length - 1
            dr(nma(i)) = e.Row(nma(i))
        Next
        dr("单价") = e.Row("最近进价")
    End If
ElseIf Forms("销售退货明细").Opened = True Then
    If tbl.Current IsNot Nothing Then
        Dim dr As Row = Tables("销售退货明细_table1").Current
        For i As Integer = 0 To nma.Length - 1
            dr(nma(i)) = e.Row(nma(i))
        Next
        dr("单价") = e.Row("最近进价")
    End If
ElseIf Forms("进货单").Opened = True Then
    If tbl.Current IsNot Nothing Then
        Dim dr As Row = Tables("进货单").Current
        For i As Integer = 0 To nma.Length - 1
            dr(nma(i)) = e.Row(nma(i))
        Next
        dr("单价") = e.Row("最近进价")
    End If

‘...以下还有很多个单据....
END IF


 回到顶部