Foxtable(狐表)用户栏目专家坐堂 → [求助]


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

主题:[求助]

帅哥哟,离线,有人找我吗?
东坡一剑
  11楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:366 积分:2478 威望:0 精华:0 注册:2013/1/13 23:43:00
  发帖心情 Post By:2013/3/13 10:44:00 [只看该作者]

关联表与事件

关联表之间的数据和操作,有时是相互依存的,某一方进行的操作,经常需要在另一方进行条件判断。
在子表的事件中,我们可以通过GetParentRow获得父行,在父表的事件中,可以通过GetChildRows获得全部子行。

示例一

假定订单和订单明细表已经建立关联,订单表有个客户等级列,订单明细表有个折扣列,要求只有客户等级为VIP的时候,才允许折扣超过10%。
为此可以在订单明细表的DataColChanging事件中设置代码:

 

If e.DataCol.Name = "折扣" Then
    If e.NewValue > 0.1 Then
        Dim pr As DataRow = e.DataRow.GetParentRow("订单")
        If pr IsNot Nothing Then         ***
            If pr("客户等级") <> "VIP" Then
                MessageBox.show("非VIP客户的折扣不能超过10%", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
                e.Cancel = True
            End If
        End If
    End
If
End
If

 

不明白***为什么一定要判断pr是否为nothing


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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/3/13 10:45:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
东坡一剑
  13楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:366 积分:2478 威望:0 精华:0 注册:2013/1/13 23:43:00
  发帖心情 Post By:2013/3/13 12:28:00 [只看该作者]

If e.DataCol.Name = "姓名" Then
    Dim val As String = User.Name & Date.Now & "[" & e.OldValue & "] To [" & e.NewValue & "]"
    If e.DataRow.IsNull("修改记录") Then
        e.DataRow("修改记录")  = val
    Else
        e.DataRow("修改记录")  = e.DataRow("修改记录") & vbcrlf & val
    End If
End If

 

谢谢!

这个非常漂亮!

[此贴子已经被作者于2013-3-13 12:42:26编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
东坡一剑
  14楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:366 积分:2478 威望:0 精华:0 注册:2013/1/13 23:43:00
  发帖心情 Post By:2013/3/15 0:33:00 [只看该作者]

***是我用来标注位置的。后来我也试过了,没有then也能运转。感谢你的回答!

只是现在又有一个问题:

我想在表格中自动删除行,使得每个内容相同的行只留下一行,不知该怎么编写代码?

请教!


 回到顶部
帅哥哟,离线,有人找我吗?
东坡一剑
  15楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:366 积分:2478 威望:0 精华:0 注册:2013/1/13 23:43:00
  发帖心情 Post By:2013/3/15 8:54:00 [只看该作者]

原来是这样,谢谢!

现在还有一个问题:

我想在一个表格中(很多行)将指定列内容相同或全部列内容相同的行只保留一行,其余的删除,为此,编写prepareedit事件代码,代码如下:

 

 

Select Case e.Col.Name
 Case "货号"
 Dim lst As new List(Of Row)
  For Each c As Col In e.Table.Cols
   For Each r As Row In e.Table.Rows
           If e.Row(c) = r(c) Then
                lst.add(r)
                For i As Integer = 1 To lst.Count - 1
                    lst(i).delete()
                Next
           End If
       Next
  Next
End Select

 

但是这个代码是错误的。

请教:

能帮忙指出原因吗?

正确的代码应该怎么写?

[此贴子已经被作者于2013-3-15 8:58:40编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
东坡一剑
  16楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:366 积分:2478 威望:0 精华:0 注册:2013/1/13 23:43:00
  发帖心情 Post By:2013/3/15 9:02:00 [只看该作者]

 

[此贴子已经被作者于2013-3-15 9:57:10编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/15 9:49:00 [只看该作者]

不同的问题,最好分别发帖提问,不要跟在不相关的帖子后面。

 回到顶部
帅哥哟,离线,有人找我吗?
东坡一剑
  18楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:366 积分:2478 威望:0 精华:0 注册:2013/1/13 23:43:00
  发帖心情 Post By:2013/3/20 23:00:00 [只看该作者]

 

[此贴子已经被作者于2013-3-21 9:17:20编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
东坡一剑
  19楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:366 积分:2478 威望:0 精华:0 注册:2013/1/13 23:43:00
请教调用目标发生异常是怎么回事  发帖心情 Post By:2013/3/21 9:15:00 [只看该作者]

在“产品表”的prepareedit 事件中编辑代码如下:


  If e.col.Name = "尺码号" Then
    If e.Row.Isnull("品类") = False AndAlso e.Row.Isnull("细类") = False AndAlso e.Row.Isnull("男式女式") = False Then
       e.Table.Cols("尺码号").ComboList = DataTables("尺码对照表").GetComboListString("尺码号", "[品类] ='" & e.Row("品类") _
 & "' AndAlso [细类] = '" & e.Row("细类") & "' andalso [男式女式] = '" & e.Row("男式女式") & "'"  )
    End If
End If


 

上面的代码执行后提示“调用的目标发生了异常”,详细的信息如下,不知道是怎么回事,能否指点一下。尤其我对操作数不懂,请问帮助文件有没有专门的章节介绍?或者顺便指导一下?谢谢

 

.NET Framework 版本:2.0.50727.3643
Foxtable 版本:2012.11.28.1
错误所在事件:表,产品表,PrepareEdit
详细错误信息:
System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.Data.SyntaxErrorException: 语法错误:“AndAlso”运算符后缺少操作数。

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:作业求助.table

[此贴子已经被作者于2013-3-21 9:43:04编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/21 11:16:00 [只看该作者]

提示: 表达式中只有And,没有AndAlso,代码才有AndAlso


 回到顶部
总数 20 上一页 1 2