以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  只填充当前行,而不是所有行。。。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=47460)

--  作者:fubblyc
--  发布时间:2014/3/10 20:32:00
--  只填充当前行,而不是所有行。。。
各位老师好,

我有两个表{表1}{表2},想实现:

在{表2}的一个按钮,点击能够
将{表2}光标所在的行(当前行)填充至{表1}中(两表有对应的列)
要怎么做呢?
我知道把{表2}的所有行填充到{表1}中的方法:

dim f As New Filler
f
.SourceTable = DataTables("订单") \'指定数据来源
f
.SourceCols = "产品,客户" \'指定数据来源列
f
.DataTable = DataTables("统计") \'指定数据接收表
f
.DataCols = "产品,客户" \'指定数据接收列
f
.Fill()
\'填充数据



但是,只填充当前行的,不知道有没有办法。。。。

--  作者:有点甜
--  发布时间:2014/3/10 20:42:00
--  

好好看看:
http://www.foxtable.com/help/topics/0680.htm
http://www.foxtable.com/help/topics/2292.htm
http://www.foxtable.com/help/topics/2490.htm

http://www.foxtable.com/help/topics/1533.htm
 
你用Filler,就设置条件为当前行:
dim f As New Filler
f.SourceTable = DataTables("订单") \'指定数据来源
f.SourceCols = "产品,客户" \'指定数据来源列
f.DataTable = DataTables("统计") \'指定数据接收表
f.DataCols = "产品,客户" \'指定数据接收列
f.Filter = "[_Identify] = " Tables("订单").Current("_Identify")
f.Fill() \'填充数据

其实直接编码更好:


dim r as row = Tables("订单").Current
dim  dr As DataRow  = DataTables("统计表").Addnew
dr("产品") = r("产品")
dr("客户") = r("客户")


 

回头细致地按顺序看帮助文件学习,你的效率会提高n倍,因为第二个方法实在是很简单, 你不应该不会的。

你现在这样开发,需要专门找个人守在这里帮你写代码。

[此贴子已经被作者于2014-3-10 20:43:38编辑过]

--  作者:fubblyc
--  发布时间:2014/3/10 21:05:00
--  
谢谢有点甜老师,你的话真的是犹如当头棒喝。确实是该好好按顺序看帮助文件了。其实之前几位老师也说过,但是自己之前一直都静不下心来,比较浮躁,那时对狐表还不了解,没有信心从头看起。前期通过项目驱动的方式,让我大概了解了狐表,也有了信心开发软件。但是没有从头学起,基础太不扎实。虽然知道大概是怎么写,但是却经常写不出来。

谢谢有点甜老师!!

--  作者:有点甜
--  发布时间:2014/3/10 21:12:00
--  

呵呵,也许我有点言重了,不过确实是为了你好。

有问题继续提,没关系


--  作者:fubblyc
--  发布时间:2014/3/10 22:28:00
--  
哦,刚才看帮助去啦,没注意到。

有点甜老师你说的确实有道理!我基础确实是太薄弱了,是应该静下心来好好看帮助。

我可以这样子,项目继续开发,每天至少花1个小时静心看帮助。

不懂的时候先自己好好研究,不急着提问,实在不懂再问。

--  作者:fubblyc
--  发布时间:2014/3/12 15:19:00
--  
哎,有点甜老师,
为什么我用这个代码:
dim r as row = Tables("订单").Current
dim  dr As DataRow  = DataTables("统计表").Addnew
dr("产品") = r("产品")
dr("客户") = r("客户")

填充过去的总是第一行,而不是我选定的其他的行呢?

--  作者:Bin
--  发布时间:2014/3/12 15:21:00
--  
确定你搞对表?  Tables("订单").Current 这句代码指定了 订单表的当前行 是不可能会有错的.

如果你用的是窗口表,并且设置为副本的话, 那么应该用副本的名称  tables("窗口名_表控件名")

看帮助一定要按顺序,头一两遍可以不求甚解,第三遍开始要将每个例子实际操作演练一遍,不明白的就上论坛求助。
三遍之后才开始做系统,先设计好表,想做什么功能,就做什么功能,遇到问题在帮助找答案,找不到的在论坛提问,不断遇到问题,不断解决问题,慢慢就熟悉了。
此外一定要先掌握《使用指南》,然后再看《开发指南》

--  作者:fubblyc
--  发布时间:2014/3/12 15:25:00
--  
而用这个:
dim f As New Filler
f.SourceTable = DataTables("订单") \'指定数据来源
f.SourceCols = "产品,客户" \'指定数据来源列
f.DataTable = DataTables("统计") \'指定数据接收表
f.DataCols = "产品,客户" \'指定数据接收列
f.Filter = "[_Identify] = " Tables("订单").Current("_Identify")
f.Fill() \'填充数据

说  f.Filter = "[_Identify] = " Tables("订单").Current("_Identify")  应为语句结束 ,
我改为 f.Filter = "[_Identify]“ =  Tables("订单").Current("_Identify") 
应用窗口后,却出现:
从字符串"[_Identify]“类型到”Double“的转换无效。。。


--  作者:狐狸爸爸
--  发布时间:2014/3/12 15:26:00
--  
f.Filter = "[_Identify] = "  & Tables("订单").Current("_Identify")
--  作者:fubblyc
--  发布时间:2014/3/12 15:33:00
--  
哦,哎,Bin老师,我自己忘了是窗口表,不然我是知道tables("窗口名_表控件名")

搞了一天,原来是这个最基本的问题,要把我搞死了。

谢谢Bin老师,谢谢狐爸!!