Foxtable(狐表)用户栏目专家坐堂 → [求助]如何让父表和子表同时变色?


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

主题:[求助]如何让父表和子表同时变色?

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


加好友 发短信
等级:婴狐 帖子:15 积分:198 威望:0 精华:0 注册:2013/1/28 18:46:00
[求助]如何让父表和子表同时变色?  发帖心情 Post By:2013/4/9 10:02:00 [只看该作者]

表B是父表,表A是子表

 

 子表里根据工序的不同 行的颜色不同,  我想让父表里根据货号完成的工序 也变成同样的颜色。

 

大神啊  求教啊!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:子表父表同色.zip

 

 

 

 

首先非常感谢 muhua 大神的指点 

 

根据实例 我明白了方法 但是我实例做出来之后却达不到那样效果。还请赐教!

以下是我的代码:

 

子表属性:

datacolchanged 方法:

 

Select Case e.DataCol.Name
    Case "磨床","镀铜","电雕","镀铬","打样","出厂"
        Dim dr As DataRow = DataTables("定版记录").Find("版号=" & e.DataRow("版号"))
        If e.DataRow("出厂") = True Then
            dr("到达工序") = "出厂"
        ElseIf e.DataRow.IsNull("打样") = False Then
            dr("到达工序") = "打样"
        ElseIf e.DataRow.IsNull("镀铬")  = False Then
            dr("到达工序") = "镀铬"
        ElseIf e.DataRow.IsNull("电雕")  = False Then
            dr("到达工序") = "电雕"
        ElseIf e.DataRow.IsNull("研磨")  = False Then
            dr("到达工序") = "研磨"
        ElseIf e.DataRow.IsNull("镀铜")  = False Then
            dr("到达工序") = "镀铜"
        ElseIf e.DataRow.IsNull("磨床")  = False  Then
            dr("到达工序") = "铁芯完成"
        End If
End Select

 

 

drawcell 方法:

If e.Row("磨床") <> Nothing Then
    e.Style = "铁芯完成"
End If
If e.Row("镀铜") <> Nothing Then
    e.Style = "镀铜"
End If
If e.Row("研磨") <> Nothing Then
    e.Style = "研磨"
End If
If e.Row("电雕") <> Nothing Then
    e.Style = "电雕"
End If
If e.Row("镀铬") <> Nothing Then
    e.Style = "镀铬"
End If
If e.Row("打样") <> Nothing Then
    e.Style = "打样"
End If
If e.Row("出厂") = True Then
    e.Style = "完成"
End If

 

父表属性还没设置,这个代码出现的问题是子表在工序里输入后  父表的“到达工序”里不显示所设置的数据,并且提示:

运行错误: 调用的目标发生了异常。

 

.NET Framework 版本:2.0.50727.5466
Foxtable 版本:2012.11.29.1
错误所在事件:表,工作记录,DataColChanged
详细错误信息:
System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.Data.SyntaxErrorException: 语法错误:“A124”运算符后缺少操作数。
   在 System.Data.ExpressionParser.Parse()
   在 System.Data.DataExpression..ctor(DataTable table, String expression, Type type)
   在 System.Data.Select..ctor(DataTable table, String filterExpression, String sort, DataViewRowState recordStates)
   在 System.Data.DataTable.Select(String filterExpression, String sort)
   在 Foxtable.DataTable.Find(String OOlO11Oll10llO11, String O11l, Int32 OOO0O)
   在 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.O0ll10O00l0O11011l0110O0(Object O01Ol1, DataColumnChangeEventArgs O)

 

————————————————————————————————————————————————————————————

 

还出现这个,这两个的版号是不一样的。

 

.NET Framework 版本:2.0.50727.5466
Foxtable 版本:2012.11.29.1
错误所在事件:表,工作记录,DataColChanged
详细错误信息:
System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.Data.EvaluateException: 无法在 System.String 和 System.Int32 上执行“=”操作。
   在 System.Data.BinaryNode.SetTypeMismatchError(Int32 op, Type left, Type right)
   在 System.Data.BinaryNode.BinaryCompare(Object vLeft, Object vRight, StorageType resultType, Int32 op, CompareInfo comparer)
   在 System.Data.Select.Eval(BinaryNode expr, DataRow row, DataRowVersion version)
   在 System.Data.Select.Evaluate(Int32 record)
   在 System.Data.Select.FindFirstMatchingRecord()
   在 System.Data.Select.GetBinaryFilteredRecords()
   在 System.Data.Select.SelectRows()
   在 System.Data.DataTable.Select(String filterExpression, String sort)
   在 Foxtable.DataTable.Find(String OOlO11Oll10llO11, String O11l, Int32 OOO0O)
   在 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.O0ll10O00l0O11011l0110O0(Object O01Ol1, DataColumnChangeEventArgs O)

[此贴子已经被作者于2013-4-9 23:51:46编辑过]

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


加好友 发短信
等级:婴狐 帖子:15 积分:198 威望:0 精华:0 注册:2013/1/28 18:46:00
  发帖心情 Post By:2013/4/9 10:03:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:子表父表同色.zip


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/9 10:05:00 [只看该作者]

在子表的DataColChanged事件中. 把父表中货号和当前触发事件的行样式设置为一样即可.

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


加好友 发短信
等级:婴狐 帖子:15 积分:198 威望:0 精华:0 注册:2013/1/28 18:46:00
  发帖心情 Post By:2013/4/9 10:06:00 [只看该作者]

大神。。能在详细一点么?例子我传上去了


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


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

楼主,我有点困惑,如果父表某行在子表有多行,那么父表的颜色,根据子表哪一行的数据来变色呢?

一个父亲可能有多个儿子的啊?


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/9 10:11:00 [只看该作者]

稍等.我去给你做.

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/9 10:12:00 [只看该作者]

狐狸爸爸这个问题.楼主你想怎么处理? 你这设计不太合理吧?

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


加好友 发短信
等级:婴狐 帖子:15 积分:198 威望:0 精华:0 注册:2013/1/28 18:46:00
  发帖心情 Post By:2013/4/9 10:15:00 [只看该作者]

子行里有一个行变色 父行就变色。 或者子行所有颜色变色 父行变色  ,这个怎么都可以

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

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/9 10:18:00 [只看该作者]

问题是.一个父行可能会对应多个子行啊..到底以哪个子行为参照行呢?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/9 10:19:00 [只看该作者]

比如说  张三有2个儿子 张五,张六.   张五红色,张六蓝色.  那张三如果根据儿子定颜色..该是红色,还是蓝色?

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