注册 登录
编程论坛 VFP论坛

VF9.0 表记录指针选取当前记录后怎么让数据直接显示在另一窗体文本或下拉框等控件中?

dellkey 发布于 2023-08-28 17:57, 814 次点击
鼠标点击图二表记录(指针),怎么填充到图一各文本框,且页码一致
图一
只有本站会员才能查看附件,请 登录

图二
只有本站会员才能查看附件,请 登录

19 回复
#2
laowan0012023-08-28 20:30
在grid1.AfterRowColChange中
local xfile
xfile = thisform.grid1.recordsource
select &xfile
thisform.text1.value = 项目编号
thisform.text2.value = 合同编号
...
#3
dellkey2023-08-29 10:39
回复 2楼 laowan001
不能识别的成员
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录
#4
sam_jiang2023-08-29 10:48
回复 3楼 dellkey
你combobox的名称不对啊
#5
dellkey2023-08-29 10:55
回复 4楼 sam_jiang
只有本站会员才能查看附件,请 登录
#6
dellkey2023-08-29 11:04
回复 2楼 laowan001
老大好
我是想把GRID1表里的记录
通过鼠标点击  选择单行
把数据 传送到  另一窗体  (便于查找记录 快速 选取 )
#7
tjdeming2023-08-29 11:12
只有本站会员才能查看附件,请 登录
#8
tjdeming2023-08-29 11:13
只有本站会员才能查看附件,请 登录
#9
dellkey2023-08-29 11:18
回复 7楼 tjdeming
这个可以  
但是只限于当前窗体
我想把他传输到  另外一个窗体  怎么实现   感谢
#10
sam_jiang2023-08-29 11:24
回复 9楼 dellkey
把记录号传递给另一个窗体,让另一个窗体读取这个记录号的内容
#11
dellkey2023-08-29 11:38
回复 10楼 sam_jiang
感谢指点思路
刚了解VF,还不熟悉,望给予指点  
窗体传递什么实现呢
#12
sam_jiang2023-08-29 15:52
回复 11楼 dellkey
简单的方法是,设置一个public变量,用来记录这条记录号,然后在另一个窗体读取这个public变量。

也可以把两个窗体设置为一个表单集,设置一个属性来记录这条记录号,甚至这条记录,然后在另一个窗体就可以读取这个属性。。。
#13
丁春秋yxp2023-08-29 17:31
这个很简单的,把你的例子放上来,说明要干什么,一会儿大佬就帮你做好了。

文本框等有个叫ControSource的属性,可以直接取到表中的数据。

[此贴子已经被作者于2023-8-29 17:36编辑过]

#14
laowan0012023-08-30 11:05
以下是引用dellkey在2023-8-29 10:39:11的发言:

不能识别的成员

还是检查那个combox的name是什么吧
#15
laowan0012023-08-30 11:12
以下是引用dellkey在2023-8-29 11:18:06的发言:

这个可以  
但是只限于当前窗体
我想把他传输到  另外一个窗体  怎么实现   感谢

这个简单
还是在thisform.grid1.AfterRowColChange里(不要在click里,你的需求是跳转记录就显示,而不是click就显示)
do form 另一个form with thisform.grid1.recordsource

另一个form的init里第一行:
lpara Pfile
this.AddProperty('Pfile',pfile)

在显示数据的程序中可以直接使用pfile文件,当前记录就是需要显示的那一行

#16
dellkey2023-08-30 14:44
回复 15楼 laowan001
才疏学浅
还望指点
这个是当前GRID1里面的AfterRowColChange
LPARAMETERS nColIndex
ThisForm.Text3.Value = 项目名称
= 项目名称
ThisForm.Text1.Value = STR(recno(),3)-"/ "-ALLTRIM(STR(RECCOUNT(),3))
thisform.refresh
本窗体显示没问题
卡在传递到另一窗体[em2
8]
#17
laowan0012023-08-30 16:07
以下是引用dellkey在2023-8-30 14:44:30的发言:

才疏学浅
还望指点
这个是当前GRID1里面的AfterRowColChange
LPARAMETERS nColIndex
ThisForm.Text3.Value = 项目名称
= 项目名称
ThisForm.Text1.Value = STR(recno(),3)-"/ "-ALLTRIM(STR(RECCOUNT(),3))
thisform.refresh
本窗体显示没问题
卡在传递到另一窗体[em2
8]

1. 建立一个新form,假设form.name='FORM2'
2. form2.init里写下面语句
    lpara Pfile
    this.AddProperty('Pfile',pfile)
3. form2中安排一个grid控件
4. form2.activate里写下面语句
    thisform.grid1.records = thisform.pfile
    thisform.grid1.refresh
以上的关于form2的

下面是thisform.grid1.AfterRowColChange里写:
do form form2 with thisform.grid1.recordsource

执行一下试试
#18
dellkey2023-08-30 17:24
回复 17楼 laowan001
您这个可行是不同窗口表之间的内容传递

我想要的是窗口2中表的内容,指针(单条选中时)
单条里面的内容 传送到 窗口1里面的(组合框,文本框,分别对应)
#19
laowan0012023-08-30 17:34
以下是引用dellkey在2023-8-30 17:24:06的发言:

您这个可行是不同窗口表之间的内容传递

我想要的是窗口2中表的内容,指针(单条选中时)
单条里面的内容 传送到 窗口1里面的(组合框,文本框,分别对应)


既然已经能在新窗口里操作表了,那就安排需要的text、combo等等,然后把表中当前记录的值对应赋值给相应的控件就行了
我给你的例子是要说明不同窗体之间如何传递数据表,希望你举一反三
#20
dellkey2023-08-30 17:36
回复 19楼 laowan001
1