| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3195 人关注过本帖
标题:VFP 9.0 grid表格控件的数据,能来源于两个table吗?
只看楼主 加入收藏
aaticor
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2018-10-11
结帖率:33.33%
收藏
已结贴  问题点数:20 回复次数:14 
VFP 9.0 grid表格控件的数据,能来源于两个table吗?
VFP 9.0 grid表格控件的数据,能来源于两个table吗?
已经在数据环境中设置了A、B两个表的链接,A表字段:SPID、数量、单价、金额,B表字段:SPID、商品名称、商品规格。
想在GRID表格中显示SPID、商品名称、商品规格、数量、单价、金额。
其中A表内容可以修改,B表内容禁止修改。我现在遇到的问题是,A表内容能显示,B表的内容空白。
这种情况在6.0中完全没问题,但9.0中却行不通,不知道是什么原因,请各位指点指点。谢谢!
搜索更多相关主题的帖子: VFP grid 表格 数据 内容 
2018-10-16 03:06
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10551
专家分:42996
注 册:2014-5-20
收藏
得分:5 
图片附件: 游客没有浏览图片的权限,请 登录注册

CLEAR ALL
CLOSE DATABASES ALL
CREATE CURSOR A表 (SPID C(10), 数量 I, 单价 N(10,2), 金额 N(14,2))
INSERT INTO A表 VALUES ("101", 1, 11.11, 11.11)
INSERT INTO A表 VALUES ("303", 3, 33.33, 99.99)
INSERT INTO A表 VALUES ("202", 2, 22.22, 44.44)
INSERT INTO A表 VALUES ("303", 1, 33.33, 33.33)
INSERT INTO A表 VALUES ("101", 4, 11.11, 44.44)
CREATE CURSOR B表 (SPID C(10), 商品名称 C(30), 商品规格 C(20))
INSERT INTO B表 VALUES ("101", "名称1", "规格1")
INSERT INTO B表 VALUES ("202", "名称2", "规格2")
INSERT INTO B表 VALUES ("303", "名称3", "规格3")
INDEX on SPID TAG tSPID
SELECT A表
SET RELATION TO SPID INTO "B表"
GO TOP
_screen.AddObject("grid1","grid")
_screen.grid1.top = 10
_screen.grid1.left = 10
_screen.grid1.width = 500
_screen.grid1.height = 400
_screen.grid1.ColumnCount = 6
_screen.grid1.RecordSourceType = 1
_screen.grid1.RecordSource = "A表"
_screen.grid1.column1.ControlSource = "A表.SPID"
_screen.grid1.column2.ControlSource = "B表.商品名称"
_screen.grid1.column2.Header1.Caption = "品名"
_screen.grid1.column2.Sparse  = .F.
_screen.grid1.column3.ControlSource = "B表.商品规格"
_screen.grid1.column3.Header1.Caption = "规格"
_screen.grid1.column3.Sparse  = .F.
_screen.grid1.column4.ControlSource = "A表.数量"
_screen.grid1.column4.Header1.Caption = "数量"
_screen.grid1.column5.ControlSource = "A表.单价"
_screen.grid1.column5.Header1.Caption = "单价"
_screen.grid1.column6.ControlSource = "A表.金额"
_screen.grid1.column6.Header1.Caption = "金额"
_screen.grid1.Visible = .T.
_screen.grid1.autofit()
RETURN
2018-10-16 05:23
厨师王德榜
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:199
帖 子:987
专家分:4946
注 册:2013-2-16
收藏
得分:5 
楼上方法可行,或者,grid的来源也可以是一个sql语句,你事先设置好查询语句,也能达到要求,而且代码量小,维护方便。
2018-10-16 09:10
aaticor
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2018-10-11
收藏
得分:0 
如果grid的来源是SQL,能自动更新源表吗?或者需要另外写更新语句?能否给个简单的实例?谢谢。
2018-10-16 11:51
gs2536785678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:45
帖 子:602
专家分:1770
注 册:2017-7-16
收藏
得分:5 
以下是引用aaticor在2018-10-16 11:51:52的发言:

如果grid的来源是SQL,能自动更新源表吗?或者需要另外写更新语句?能否给个简单的实例?谢谢。



我的认识是这样的:GRID作用在一个表上的,哪么随着GRID内容的修改,表也在修改。这时GRID与表实现了绑定。
但是如果GRID作用在一个查询语句上,哪么随着GRID内容的修改,表不会修改的。这时GRID只是显示了查询的结果,GRID没有与表实现绑定,何来修改呢。
2018-10-16 12:44
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:649
专家分:2156
注 册:2014-2-7
收藏
得分:5 
根据我的经验,当Grid中的内容来源于多个表时,若仅是查询,则最好使用Select SQL语句将结果输出至一个游标,再将游标与Grid绑定;若需要修改源表中的某些字段,则应该定义一个视图,再将视图与Grid绑定。
若直接将Grid与实体表绑定,即使设置了数据表关联,但还是会带来一些问题。比如,当滚动表格时,有时会出现数据不同步。

泉城飞狐
2018-10-16 13:44
aaticor
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2018-10-11
收藏
得分:0 
感谢2楼吹水版主,这个的确可以实现了。难道只能是用命令来做链接(SET RELATION TO SPID INTO "B表" ),表单数据环境的链接却不可以?
2018-10-16 14:19
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10551
专家分:42996
注 册:2014-5-20
收藏
得分:0 
以下是引用aaticor在2018-10-16 14:19:12的发言:

感谢2楼吹水版主,这个的确可以实现了。难道只能是用命令来做链接(SET RELATION TO SPID INTO "B表" ),表单数据环境的链接却不可以?

个人习惯,没用过表单数据环境。
使用GRID控件,对于较复杂的数据环境,运行时通过代码来设置GRID的相关属性,容易阅读、修改和扩展。
2018-10-16 14:33
aaticor
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2018-10-11
收藏
得分:0 
以下是引用吹水佬在2018-10-16 14:33:33的发言:


个人习惯,没用过表单数据环境。
使用GRID控件,对于较复杂的数据环境,运行时通过代码来设置GRID的相关属性,容易阅读、修改和扩展。

哈,大佬,你不会是Dbase过来的吧?
2018-10-16 15:04
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10551
专家分:42996
注 册:2014-5-20
收藏
得分:0 
以下是引用aaticor在2018-10-16 15:04:42的发言:


哈,大佬,你不会是Dbase过来的吧?

dBase是个经典,当年见过不少财务专业的也要学dBase,在DOS平台能写工资、账表之类的应用软件。
听说现在不少学财务专业的不会编程,是吗?
2018-10-16 16:15
快速回复:VFP 9.0 grid表格控件的数据,能来源于两个table吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016797 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved