以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 子表记录满足父表记录时,父表行如何改变颜色? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=66164) |
-- 作者:wh420 -- 发布时间:2015/3/31 14:25:00 -- 子表记录满足父表记录时,父表行如何改变颜色?
1、有Treeview目录树,节点根据子表的日期自动生成 2、父表与子表用ID关联,父表为客户信息,子表为该客户订单信息 3、子表有一个逻辑列(是否付款)
当双击目录树的某月份时,子表显示所属月份订单,父表显示该月份有定单的客户名称。
要求:子表在该月份范围内且都为已付款的记录,这时把父表所对应的行设置成字体为红色的样式。
|
-- 作者:有点甜 -- 发布时间:2015/3/31 14:28:00 -- 编写父表的drawcell事件。
方法一:在父表加入一列是否已付,判断是否设置样式;
方法二:建议用方法一 |
-- 作者:wh420 -- 发布时间:2015/3/31 14:29:00 -- 代码应该如何写,麻烦老师根据我描述的给个代码段 |
-- 作者:wh420 -- 发布时间:2015/3/31 14:30:00 -- 可是由子表的一笔笔订单来决定该笔是否为已付款啊,用父表如何判断? |
-- 作者:Bin -- 发布时间:2015/3/31 14:30:00 -- 在DrawCell事件利用 Compute 和子表行数对比,然后设置样式 if e.row.DataRow.GetChildRows("子表名").count = e.table.DataTable.Compute("count(是否付款)","是否付款=True 关联ID=\'" & e.Row("关联ID") & "\'") then e.style="样式1" end if 搞不定就上例子
|
-- 作者:Bin -- 发布时间:2015/3/31 14:31:00 -- 用2楼增加辅助列的方法,效率比较高. 5楼每次都要计算效率较差. |
-- 作者:wh420 -- 发布时间:2015/3/31 14:33:00 -- 用二楼的思路麻烦老师给个代码段参考下 |
-- 作者:有点甜 -- 发布时间:2015/3/31 14:34:00 -- 子表Datacolchanged事件
If e.DataCol.name = "已付款" Then |