Foxtable(狐表)用户栏目专家坐堂 → 关于数据入库问题


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

主题:关于数据入库问题

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/9/30 9:58:00 [显示全部帖子]

DropDownOpened事件加上

If e.form.dropTable IsNot Nothing AndAlso e.form.dropTable.Name = "商户资料表" AndAlso Tables("商户资料表").Current IsNot Nothing Then
    vars("机具条码") = Tables("商户资料表").Current("机具条码")
End If

DropDownClosed事件


If  e.Selected Then
    If e.Form.DropDownBox.name="jijutiaomaDropBox" OrElse e.form.dropTable IsNot Nothing AndAlso e.form.dropTable.Name = "商户资料表"
        Dim tbl As Table = Tables("入库机具选择_Table1")
        Dim tbl1 As Table = Tables("商户资料表")
        Dim Result As DialogResult
        Dim sr As Row = tbl.Current
        Dim lsjl As DataRow = DataTables("POS机绑定商户历史记录表").Find("机具条码='" &  vars("机具条码") & "' and 商户ID='" & tbl1.Current("商户ID") & "'")
        If tbl.Current IsNot Nothing Then
            If tbl.current.isnull("商户ID") = False Then
                Result = MessageBox.Show("该机具已经绑定商户,是否重新绑定新商户,单击是解绑后重新绑定,单击否放弃绑定新商户", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                If Result = DialogResult.No Then
                    Return
                Else
                    If lsjl  IsNot Nothing  Then
                        lsjl ("解绑日期") =Date.Today
                        lsjl =  DataTables("POS机绑定商户历史记录表").addnew
                        lsjl("机具ID") =tbl.Current("机具ID")
                        lsjl("机具条码") =tbl.Current("机具条码")
                        lsjl("机具类型") =tbl.Current("机具类型")
……

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/4 8:53:00 [显示全部帖子]

商户资料,Datacolchanging

If e.DataCol.name = "流量卡ID" Then
    Dim dr As DataRow = e.DataTable.Find("流量卡ID='" & e.NewValue & "'" )
    If dr IsNot Nothing Then
        dr("流量卡ID") = Nothing
        dr("流量卡号") = Nothing
    End If
End If
If e.DataCol.name = "机具ID" Then
    Dim dr As DataRow = e.DataTable.Find("机具ID='" & e.NewValue & "'" )
    If dr IsNot Nothing Then
        Dim lsjl As DataRow = DataTables("POS机绑定商户历史记录表").Find("机具条码='" &  dr("机具条码") & "' and 商户ID='" & dr("商户ID") & "'")
        If lsjl IsNot Nothing Then
            lsjl("解绑日期") = Date.Today
        End If
        dr("机具ID") = Nothing
        dr("机具条码") = Nothing
    End If
End If

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/4 14:55:00 [显示全部帖子]

提示很明显了,if 和 end if 不成对。自己检查代码

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/4 16:16:00 [显示全部帖子]

备份项目。把代码按if 和 end if 成对的注释掉,或者去掉代码,看是哪里少了。只能靠自己检查

If 条件1
    代码块1
    If 条件2
        代码块2
        'If 条件3
            '代码块3
        'End If
    End If
End If

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/4 16:32:00 [显示全部帖子]


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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/4 16:37:00 [显示全部帖子]

可以加上一些必要的注释加以区分

If 条件1 '第一个if
    代码块1
    If 条件2  '第二个if
        代码块2
        'If 条件3 '第三个if
            '代码块3
        'End If '对应第三个if
    End If '对应第二个if
else 对应第一个if的else

End If '对应第一个if
[此贴子已经被作者于2017/10/4 16:37:47编辑过]

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/5 8:20:00 [显示全部帖子]

多分支形式:

If 条件1 Then
    代码1 

ElseIf 
条件2 Then
    代码2 

ElseIf 
条件3 Then
    代码3 

    .....
Else
 

    代码X 

End If

条件1成立,执行代码1,条件2成立,执行代码2,其余类推,所有条件均不成立,则执行代码X。


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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/5 8:22:00 [显示全部帖子]

没有下面这种用法

if 条件1 then

else

else

end if

把成对的if 和 end if的代码去掉就看出来的,做任何事情都要讲究方法,

        If tbl1.Current IsNot Nothing Then
            If tbl.current.isnull("机具ID") Then
                '' systemready = False
                e.Form.DropDownBox.Value = tbl.Current("商户ID")
                tbl1.Current("商户ID") = tbl.Current("商户ID")
                tbl1.Current("商户名称")= tbl.Current("商户名称")
                tbl1.Current("客户ID")= tbl.Current("客户ID")
                tbl1.Current("客户姓名")= tbl.Current("法人姓名")
                tbl.Current("机具ID")= tbl1.Current("机具ID")
                tbl.Current("机具条码")= tbl1.Current("机具条码")
                If tbl1.Current("商户ID") IsNot Nothing Then
                    tbl1.Current("机具是否绑定")= True
                Else
                    tbl1.Current("机具是否绑定")= False
                End If
                Dim lsjl As DataRow = DataTables("POS机绑定商户历史记录表").Find("机具条码='" &  vars("机具条码") & "' and 商户ID='" & tbl1.Current("商户ID") & "'")
                If tbl.Current IsNot Nothing Then
                    If tbl.current.isnull("商户ID") = False Then
                        Result = MessageBox.Show("该机具已经绑定商户,是否重新绑定新商户,单击是解绑后重新绑定,单击否放弃绑定新商户", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                        If Result = DialogResult.No Then
                           Return
                        Else

                            msgbox(tbl1.Current("商户名称") & "机具成功绑定商户 ")
                            '   systemready =True
                            Return
                        Else

                        End If
                    End If
                End If
               '
            ElseIf e.Form.DropDownBox.name="liuliangkashanghuIDDropBox" OrElse e.form.dropTable IsNot Nothing AndAlso e.form.dropTable.Name = "流量卡资料"

            End If
        End If
[此贴子已经被作者于2017/10/5 8:24:07编辑过]

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/5 9:20:00 [显示全部帖子]

先明确理清自己的逻辑,画个流程图搞清楚逻辑的走向。

重复的代码建议提取到函数中执行

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/5 11:32:00 [显示全部帖子]

1、看不懂你的逻辑,业务逻辑的处理请自力更生。

2、商户资料表本来就没有“商户名称”、“客户姓名”的值

代码臃肿自己都搞不明白的:
1、减少一个事件能做的事情,减少代码量
2、清除这个事件所有代码,先完成一个功能测试没有问题,再添加另一个功能

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