以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]datamap  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=25717)

--  作者:chnfo
--  发布时间:2012/11/15 11:23:00
--  [求助]datamap
这样的要求用datamap能做吗?

当前表中当WPCKind值不同时,sourceID列从同一个表中选择数据,只是过滤条件不同。

文件上传有误 ,请看下帖


[此贴子已经被作者于2012-11-15 13:54:07编辑过]

--  作者:chnfo
--  发布时间:2012/11/15 11:42:00
--  
不好意思,附件里的说明错误。
说明里的表S就是表Source

或者有类似datamap的方法也可以。Combolist的方法我已经知道了。

重新上传
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:sotkey.rar

[此贴子已经被作者于2012-11-15 14:29:23编辑过]

--  作者:chnfo
--  发布时间:2012/11/15 15:29:00
--  
啊,这个问题 很复杂么?
--  作者:lin_hailun
--  发布时间:2012/11/15 15:36:00
--  
 不复杂,只是看不懂。

 要求当WPCKind=3时,SourceID从“S”表中的T1=3的数据中选择

 T1=3 什么意思?

--  作者:chnfo
--  发布时间:2012/11/15 15:51:00
--  
最开始复制的时候写错了,应当是
要求当WPCKind=1时,SourceID从“Source”表中的T1=1的数据中选择
要求当WPCKind=2时,SourceID从“ Source ”表中的T2=1的数据中选择
要求当WPCKind=3时,SourceID从“ Source ”表中的T3=1的数据中选择

因为T1,T2,T3都是逻辑列,=1表示为“是”

如果把datamap放在prepareedit事件中,电脑CPU就消耗非常大。显然是不太合适的
[此贴子已经被作者于2012-11-15 16:08:27编辑过]

--  作者:lin_hailun
--  发布时间:2012/11/15 16:13:00
--  
 呃,T1 = 1 ,又是什么意思?

 那就做多个DaTaMap,保存成全局变量,修改了source的时候,重新生成不同的DataMap,就不需要每点一次生成一次了。

--  作者:chnfo
--  发布时间:2012/11/15 16:36:00
--  
没有datamap类型的变量啊,咋个存法?
MultiDataMap?
[此贴子已经被作者于2012-11-15 16:39:08编辑过]

--  作者:lin_hailun
--  发布时间:2012/11/15 16:47:00
--  
 可以看看。

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

--  作者:chnfo
--  发布时间:2012/11/16 11:00:00
--  
帮助里的那一段我看明白了。

其实,如果用combolist是没有问题的,我试过了
If e.IsFocusCell Then 
    If e.Col.Name = "SourceID" Then 
        Select Case e.Row("WPCKind")
            Case  1
                e.Col.Combolist = DataTables("Source").GetComboListString("T", "T1 = 1")
            Case  2
                e.Col.Combolist = DataTables("Source").GetComboListString("T", "T2 = 1")
            Case  3
                e.Col.Combolist = DataTables("Source").GetComboListString("T", "T3 = 1")
        End Select
    End If
End If

但是combolist只有一列,显示的信息太少,所以才想用datamap.

而datamap的方法我也理解。

做了一下,现在的问题是每换一个link节点,必须去Source表上点一下,SourceID这一列的下拉列表才符合要求。如果不去Source上切换一下,不管切换哪个link节点,SourceID的下拉列表值是一样的。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:sotkey20121116.rar

怎么改进呢?


--  作者:lin_hailun
--  发布时间:2012/11/16 12:13:00
--  
 代码在三个地方,你看看就知道了。

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