标题:上级表单如何给下一级被调用表单传变量值(非全局变量)?
只看楼主
强国学习
Rank: 2
等 级:论坛游民
帖 子:58
专家分:19
注 册:2020-4-1
结帖率:66.67%
已结贴  问题点数:20 回复次数:18 
上级表单如何给下一级被调用表单传变量值(非全局变量)?
请问如何实现:表单1里有一个表格grid1,数据来源于一个表,里面的数据是通过APPEN FROM写入表并通过grid1即时显示出来的,通过双击grid1第2行TEXT1事件,打开另一个表单2,并把行号2传给表单2使用?
搜索更多相关主题的帖子: 变量值 全局变量 数据 调用 表单 
2021-02-26 12:32
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:19 
DO FORM 命令的 WITH 参数
如果打开表单2时表数据记录指针没移动,在表单2直接对表操作就可以。
2021-02-26 18:42
强国学习
Rank: 2
等 级:论坛游民
帖 子:58
专家分:19
注 册:2020-4-1
得分:0 
回复 2楼 吹水佬
比如指针指向行号3,要操作行号2,我原来是用了do form form1 with 2命令,在表单2的init事件中加入了parameter hh,在avtivate事件中有sele 表,go hh命令,运行执行到go hh 时提示命令错误。
2021-03-01 08:15
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 3楼 强国学习
出错提示什么内容?
参考示例:

程序代码:
CREATE CURSOR tt (f1 I, f2 I)
FOR i=1 TO 10
    INSERT INTO tt VALUES (i, 2*i)
ENDFOR
GO 3
of = CREATEOBJECT("form1")
of.show(1)
RETURN

DEFINE CLASS form1 as Form
    ADD OBJECT cmd1 as CommandButton WITH Top=10,Left=10,Height=22,Caption = "form2"
    PROCEDURE init
        this.Caption = "当前记录号:"+TRANSFORM(RECNO())
    ENDPROC
    PROCEDURE cmd1.Click
        of2 = CREATEOBJECT("form2",2) &&相当于 do form form2 with 2
        of2.show(1)
    ENDPROC
ENDDEFINE

DEFINE CLASS form2 as Form
    top = 100
    left = 100
    PROCEDURE init(n)
        GO n
        this.Caption = "当前记录号:"+TRANSFORM(RECNO())
    ENDPROC
ENDDEFINE

或者:
程序代码:
CREATE CURSOR tt (f1 I, f2 I)
FOR i=1 TO 10
    INSERT INTO tt VALUES (i, 2*i)
ENDFOR
GO 3
of = CREATEOBJECT("form1")
of.show(1)
RETURN

DEFINE CLASS form1 as Form
    ADD OBJECT cmd1 as CommandButton WITH Top=10,Left=10,Height=22,Caption = "form2"
    PROCEDURE init
        this.Caption = "当前记录号:"+TRANSFORM(RECNO())
    ENDPROC
    PROCEDURE cmd1.Click
        GO 2
        of2 = CREATEOBJECT("form2") &&相当于 do form form2
        of2.show(1)
    ENDPROC
ENDDEFINE

DEFINE CLASS form2 as Form
    top = 100
    left = 100
    PROCEDURE init
        this.Caption = "当前记录号:"+TRANSFORM(RECNO())
    ENDPROC
ENDDEFINE
2021-03-01 09:42
强国学习
Rank: 2
等 级:论坛游民
帖 子:58
专家分:19
注 册:2020-4-1
得分:0 
回复 4楼 吹水佬
老师麻烦您帮看看,我是想把do from xjxg1 with 2 的2传给表单xjxg1中的activate事件的 go hh选择行号用,意思是go hh就是go 2。当
go hh时提示命令错误,go alltrim(hh)时提示函数参数的值或类型无效。
2021-03-01 13:08
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:1 

坚守VFP最后的阵地
2021-03-01 13:15
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
go alltrim(hh)时提示函数参数的值或类型无效。
改为
go hh

坚守VFP最后的阵地
2021-03-01 13:17
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 5楼 强国学习
1、在init过程定义的hh是局部变量,init过程结束后就被释放,在执行Activate过程时hh变量不存在。
2、在init过程将hh保存在一个自定义的表单属性,在执行Activate过程时调用。
3、在Activate事件改变记录指针时要注意Activate事件的触发条件,程序运行时有可能会多次触发Activate事件。


2021-03-01 14:13
强国学习
Rank: 2
等 级:论坛游民
帖 子:58
专家分:19
注 册:2020-4-1
得分:0 
回复 8楼 吹水佬
老师麻烦您直接给出获取到2的语句,谢谢!
2021-03-01 16:41
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用强国学习在2021-3-1 16:41:34的发言:

老师麻烦您直接给出获取到2的语句,谢谢!

可以参考4楼,具体变通一下就OK
2021-03-01 18:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-504959-1-1.html




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

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