以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何引用其他表中的某个数据  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=19972)

--  作者:sunbrain
--  发布时间:2012/5/25 23:42:00
--  [求助]如何引用其他表中的某个数据
我想在表a中引用表b中的第一行第一列的某个数值,参与某个表达式的计算,根据帮助文件
[@表名,列名,行位置],显示表达式错误,不知道怎么更正
我做了一个示例,其中“试算价格=【单价】*倍数”;销售价格=单价/(1-利润率)
我想把倍数和利润率单独放在一个参数表中,方便以后更改,我现在的作法是直接写数据,不知道有没有更好的办法,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip



--  作者:y2287958
--  发布时间:2012/5/26 5:24:00
--  
附件
--  作者:y2287958
--  发布时间:2012/5/26 5:25:00
--  

看9楼

[此贴子已经被作者于2012-5-27 12:55:22编辑过]

--  作者:sunbrain
--  发布时间:2012/5/26 8:41:00
--  
上面的运行出错,不过我似乎明白了,不能直接引用,需要用代码来实现,我再试验一下,不懂再请教
--  作者:y2287958
--  发布时间:2012/5/26 9:54:00
--  
按你的要求做了一下,

看9楼

[此贴子已经被作者于2012-5-27 12:56:42编辑过]

--  作者:sunbrain
--  发布时间:2012/5/26 23:53:00
--  

楼上的解决了

当参数表中数据发生变化的时候,对表a中的数据表达式进行重新计算;

但是我现在希望的是

当表a数据发生变化的时候,直接引用参数表中的某个单元格参与计算;

我需要在表a的datacolchanged写入代码

If e.DataCol.Name = "单价" Then

 

        DataTables("表A").DataCols("试算价格").Expression = e.DataRow("倍数")
 
        DataTables("表A").DataCols.Add("销售价格",Gettype(Double),e.DataRow("利润率"))
End If
       

上面的代码标记红底的部分,是我想引用  参数表  中的部分,我折腾很久了,不知道怎么改进?

请大家帮助

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

[此贴子已经被作者于2012-5-26 23:53:36编辑过]

--  作者:13636600695
--  发布时间:2012/5/27 6:15:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:tddownload.zip


--  作者:sunbrain
--  发布时间:2012/5/27 8:55:00
--  
楼上的,你是不是在刷帖啊,你的回答就是下载了我的附件而已啊
--  作者:y2287958
--  发布时间:2012/5/27 12:58:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip

其实7楼不失为一种好方法
--  作者:sunbrain
--  发布时间:2012/5/27 23:30:00
--  

这部分我一直没有看懂,帮助文件中这样说明:

例如:

Dim dr As DataRow
dr = 
DataTables("订").DataRows(0)

变量dr引用了订表的第一行。

我现在引用的是订单表第一行第一列的内容,非常感谢楼上给的方法,但是我想知道帮助文件中

哪里有关于下面表达式中红底部分的说明呢?

DataTables("表A").DataCols("试算价格").Expression = "[单价]*" & DataTables("参数表").DataRows(0)("倍数")

        

非常感谢