Foxtable(狐表)用户栏目专家坐堂 → 两个问题需要解答一下


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

主题:两个问题需要解答一下

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/6 11:19:00 [显示全部帖子]

1、第一个问题,下来框没有数据,说明你的代码没有执行,这样判断一下啊:

 

Messagebox.show(Tables(e.form.Name).Current("请购依据"))
Messagebox.show(Tables(e.form.Name).Current("请购依据") ="销售订单")
If Tables(e.form.Name).Current("请购依据") ="销售订单" Then

    '其他代码
End If

2、第二个问题不存在,不管以任何形式修改数据,HasChanges都会等于True。第一次编辑,你得等编辑结束后,离开单元格或者编辑框,也就是表的数据发生变化后,HasChanges才会等于True。

并非你在单元格或者编辑框输入的过程,HasChanges的值就会发生变化。

[此贴子已经被作者于2011-12-6 11:22:31编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/6 12:05:00 [显示全部帖子]

这样就行了:

 

If Tables(e.form.Name).Current("请购依据") ="销售订单" Then

    '现在的代码

Else

   e.Sender.ComboList = “”
End If


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/6 12:26:00 [显示全部帖子]

呵呵,用MessageBox去调试,去检测关键的值吧。

既然要满足两个条件:

Vars("开关") = True

Tables(e.form.Name).DataTable.HasChanges

才会有提示,那就去检测这两个条件啊

 

你的第一个问题,说明你现在有点不在状态了,你应该休息一下了。

 

 


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/6 14:51:00 [显示全部帖子]

这样跟踪:

Dim e As FormEventArgs = args(0)
Dim Result As DialogResult
MssageBox.Show("开关值 =" & Vars("开关"))
If Vars("开关") = True Then
    MssageBox.Show("开关开启了")
    If Tables(e.form.Name).DataTable.HasChanges Then
        MssageBox.Show(e.Form.Name & "有变动了 ,所以会提示!")
        Result = MessageBox.Show("是否将更改并保存本单据?", "提示!", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
        If Result = DialogResult.Yes Then
            If Tables(e.form.Name).Rows.Count>0 Then
                Tables(e.form.Name).Current("修改人") = _UserName
                Tables(e.form.Name).Current("修改时间") = Date.Now()
                Tables(e.form.Name).DataTable.Save()
                If e.form.ExistControl("Table1") =True Then
                    If Tables(e.form.Name & "_Table1").DataTable.DataRows.Count>0 Then
                        Tables(e.form.Name & "_Table1").DataTable.Save
                    End If
                End If
            End If
            MessageBox.show(2)
        ElseIf Result = DialogResult.No Then
            If Tables(e.form.Name).DataTable.HasChanges Then
                Tables(e.form.Name).DataTable.RejectChanges()
                If e.form.ExistControl("Table1") =True Then
                    If Tables(e.form.Name & "_Table1").DataTable.DataRows.Count>0 Then
                        Tables(e.form.Name & "_Table1").DataTable.RejectChanges()
                    End If
                    For Each re As Relation In Relations
                        Tables(Re.ChildTable.Name).DataTable.RejectChanges()
                    Next
                End If
            Else
                e.Cancel=True
            End If
        End If
    End If
Else '如果不是新单
     MssageBox.Show("开关关闭了")
    If e.form.ExistControl("Table1") =True Then
         MssageBox.Show("窗口有Tabl1控件")
        If Tables(e.form.Name & "_Table1").DataTable.HasChanges Then '如果子表有变动
            MssageBox.Show(e.form.Name & "_Table1") & "有变动,所以要提示")
            Result = MessageBox.Show("是否将更改并保存本单据?", "提示!", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
            If Result = DialogResult.Yes Then
                Tables(e.form.Name & "_Table1").DataTable.Save '则无条件保存
            ElseIf Result = DialogResult.No Then
                Tables(e.form.Name & "_Table1").DataTable.RejectChanges()
            Else
                e.Cancel=True
            End If
            vars("开关") = False
        End If
    End If
End If

 

下次更新会加一个参数,返回Table控件对应的DataTable


 回到顶部