Foxtable(狐表)用户栏目专家坐堂 → 跨表获取数据并判断是否含值时自动填充,空值或0值清除数据


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

主题:跨表获取数据并判断是否含值时自动填充,空值或0值清除数据

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


加好友 发短信
等级:幼狐 帖子:107 积分:863 威望:0 精华:0 注册:2013/3/12 12:42:00
跨表获取数据并判断是否含值时自动填充,空值或0值清除数据  发帖心情 Post By:2013/3/28 16:56:00 [只看该作者]

跨表获取数据并判断是否含值时自动填充,空值或0值清除数据

 

当"预定_休闲大床房_数量"为空时,只清除旁边的"预定_休闲大床房_单价"值

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:海浪屿酒店.table


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


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

用户已被锁定

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


加好友 发短信
等级:幼狐 帖子:107 积分:863 威望:0 精华:0 注册:2013/3/12 12:42:00
  发帖心情 Post By:2013/3/28 17:51:00 [只看该作者]

如果在"预定_休闲大床房_数量" 中先填写数据,会发生如下错误

--------------------------------------------------------------

.NET Framework 版本:2.0.50727.6400
Foxtable 版本:2012.11.28.1
错误所在事件:表,预定表,DataColChanged
详细错误信息:
System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.ArgumentException: 列“_”不属于表 房价明细表。
   在 Microsoft.VisualBasic.CompilerServices.Symbols.Container.InvokeMethod(Method TargetProcedure, Object[] Arguments, Boolean[] CopyBack, BindingFlags Flags)
   在 Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack)
   在 UserCode.DataColChanged(DataColEventArgs e)
   --- 内部异常堆栈跟踪的结尾 ---
   在 System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   在 System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   在 Foxtable.DataTable.O1100l0O01l110O0l00Oll11(Object O0l0O0, DataColumnChangeEventArgs O)


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


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

用户已被锁定

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


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

用户已被锁定

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


加好友 发短信
等级:幼狐 帖子:107 积分:863 威望:0 精华:0 注册:2013/3/12 12:42:00
  发帖心情 Post By:2013/3/28 17:59:00 [只看该作者]

Select Case e.DataCol.Name
    Case "预定_休闲大床房_间数","时间段","类型"
        If e.DataRow.IsNull(e.DataCol.Name) Then
            e.DataRow("预定_休闲大床房_单价") = Nothing
            e.DataRow("预定_休闲大床房_房价") = Nothing
        Else
            Dim dr As DataRow = DataTables("房价明细表").Find("房型='休闲大床房'")
            If dr IsNot Nothing Then
                e.DataRow("预定_休闲大床房_单价") = dr(e.DataRow("时间段") & "_" & e.DataRow("类型"))
                e.DataRow("预定_休闲大床房_房价") = dr(e.DataRow("时间段") & "_" & e.DataRow("类型")) * e.DataRow("预定_休闲大床房_间数")
            End If
        End If
    Case "预定_休闲双标房_间数","时间段","类型"
        If e.DataRow.IsNull(e.DataCol.Name) Then
            e.DataRow("预定_休闲双标房_单价") = Nothing
            e.DataRow("预定_休闲双标房_房价") = Nothing
        Else
            Dim dr As DataRow = DataTables("房价明细表").Find("房型='休闲双标房'")
            If dr IsNot Nothing Then
                e.DataRow("预定_休闲双标房_单价") = dr(e.DataRow("时间段") & "_" & e.DataRow("类型"))
                e.DataRow("预定_休闲双标房_房价") = dr(e.DataRow("时间段") & "_" & e.DataRow("类型")) * e.DataRow("预定_休闲双标房_间数")
            End If
        End If
End Select

 

-----------------------------------------------------------

把代码给成这样,当"时间段"或者"类型"发生变化时,"预定_休闲大床房_单价"及"预定_休闲大床房_房价"会发生变化,但是"预定_休闲双标房_单价"及"预定_休闲双标房_房价"却没有变化,不知道我错在哪里...还请指教.感谢muhua的耐心回答


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


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

用户已被锁定

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


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

Select Case e.DataCol.Name
    Case "预定_休闲大床房_间数","时间段","类型"
        If e.DataRow.IsNull(e.DataCol.Name) Then
            e.DataRow("预定_休闲大床房_单价") = Nothing
            e.DataRow("预定_休闲大床房_房价") = Nothing
        Else
            Dim dr As DataRow = DataTables("房价明细表").Find("房型='休闲大床房'")
            If dr IsNot Nothing Then
                e.DataRow("预定_休闲大床房_单价") = dr(e.DataRow("时间段") & "_" & e.DataRow("类型"))
                e.DataRow("预定_休闲大床房_房价") = dr(e.DataRow("时间段") & "_" & e.DataRow("类型")) * e.DataRow("预定_休闲大床房_间数")
            End If
        End If
End Select
Select Case e.DataCol.Name
    Case "预定_休闲双标房_间数","时间段","类型"
        If e.DataRow.IsNull(e.DataCol.Name) Then
            e.DataRow("预定_休闲双标房_单价") = Nothing
            e.DataRow("预定_休闲双标房_房价") = Nothing
        Else
            Dim dr As DataRow = DataTables("房价明细表").Find("房型='休闲双标房'")
            If dr IsNot Nothing Then
                e.DataRow("预定_休闲双标房_单价") = dr(e.DataRow("时间段") & "_" & e.DataRow("类型"))
                e.DataRow("预定_休闲双标房_房价") = dr(e.DataRow("时间段") & "_" & e.DataRow("类型")) * e.DataRow("预定_休闲双标房_间数")
            End If
        End If
End Select

 

 

理由:

http://www.foxtable.com/help/topics/2242.htm

 


 回到顶部