VFP表单如果在程序中互相调用?
VFP程序中,分别有两个独立的表单form1和form2,如何在form2里面用代码控制form1的控件?除了用表单集的thisformset.form1之外还有什么办法...
VFP程序中,分别有两个独立的表单form1和form2,如何在form2里面用代码控制form1的控件?除了用表单集的thisformset.form1之外还有什么办法?
可能我说的不清楚大家有点误会,fouroceans的回答比较接近我的意思,我按他的方法试了一下,在程序里面运行的话显示"程序错误,找不到对象f1",但在命令窗口方式下就可以,不知是什么原因. 展开
可能我说的不清楚大家有点误会,fouroceans的回答比较接近我的意思,我按他的方法试了一下,在程序里面运行的话显示"程序错误,找不到对象f1",但在命令窗口方式下就可以,不知是什么原因. 展开
3个回答
展开全部
请看我的商用软件的部分 调用关系,这是在一个命令组中的窗体调用(命令组控件再一个窗体中):
do case
case this.value=1 &&设定冬停有关系数
do form .\txt\frmsdl31
case this.value=2 &&自动结算租赁费
do form .\txt\frmsdl32
do form .\txt\frmsdl31
do sdl32 in .\abc
do form .\txt\frmsdl33
case this.value=3 &&租赁结算的显示
do form .\txt\frmsdl33
case this.value=4 &&假定日期计算租赁费
DO FORM .\txt\frmsdl34
do form .\txt\frmsdl33
case this.value=5 &&租赁结算的模拟显示
thisform.hide
report form .\txt\frxsdl35.frx Environment pdsetup preview
thisform.show
case this.value=6 &&租赁结算的打印
thisform.hide
report form .\txt\frxsdl35.frx Environment pdsetup to print prompt noconsole
thisform.show
case this.value=7 &&自动生成损坏价格
do sdl37 in .\abc
do form .\txt\frmsdl37
case this.value=8 &&损坏价格的显示
do form .\txt\frmsdl37
case this.value=9 &&损坏价格的模拟显示
thisform.hide
report form .\txt\frxsdl38.frx Environment pdsetup preview
thisform.show
case this.value=10 &&损坏价格的打印
thisform.hide
report form .\txt\frxsdl38.frx Environment pdsetup to print prompt noconsole
thisform.show
case this.value=11 &&丢失价格自动生成
do sdl311 in .\abc
do FORM .\txt\frmsdl311.scx
do sdl311_1 in .\abc
do FORM .\txt\frmsdl312.scx
case this.value=12 &&丢失价格的显示
do FORM .\txt\frmsdl312.scx
case this.value=13 &&丢失价格的模拟显示
thisform.hide
report form .\txt\frxsdl313.frx Environment pdsetup preview
thisform.show
endcase
do case
case this.value=1 &&设定冬停有关系数
do form .\txt\frmsdl31
case this.value=2 &&自动结算租赁费
do form .\txt\frmsdl32
do form .\txt\frmsdl31
do sdl32 in .\abc
do form .\txt\frmsdl33
case this.value=3 &&租赁结算的显示
do form .\txt\frmsdl33
case this.value=4 &&假定日期计算租赁费
DO FORM .\txt\frmsdl34
do form .\txt\frmsdl33
case this.value=5 &&租赁结算的模拟显示
thisform.hide
report form .\txt\frxsdl35.frx Environment pdsetup preview
thisform.show
case this.value=6 &&租赁结算的打印
thisform.hide
report form .\txt\frxsdl35.frx Environment pdsetup to print prompt noconsole
thisform.show
case this.value=7 &&自动生成损坏价格
do sdl37 in .\abc
do form .\txt\frmsdl37
case this.value=8 &&损坏价格的显示
do form .\txt\frmsdl37
case this.value=9 &&损坏价格的模拟显示
thisform.hide
report form .\txt\frxsdl38.frx Environment pdsetup preview
thisform.show
case this.value=10 &&损坏价格的打印
thisform.hide
report form .\txt\frxsdl38.frx Environment pdsetup to print prompt noconsole
thisform.show
case this.value=11 &&丢失价格自动生成
do sdl311 in .\abc
do FORM .\txt\frmsdl311.scx
do sdl311_1 in .\abc
do FORM .\txt\frmsdl312.scx
case this.value=12 &&丢失价格的显示
do FORM .\txt\frmsdl312.scx
case this.value=13 &&丢失价格的模拟显示
thisform.hide
report form .\txt\frxsdl313.frx Environment pdsetup preview
thisform.show
endcase
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在form1和form2同时运行的情况下,否则先do form 表单名 打开表单
假设form1的存盘文件名为:f1.scx
那么你在form2调用form1内控件方法为
f1.command1.enabled=.f.
有没有看清楚我说的
是存盘文件名
不是form的name属性值
看清楚le
假设form1的存盘文件名为:f1.scx
那么你在form2调用form1内控件方法为
f1.command1.enabled=.f.
有没有看清楚我说的
是存盘文件名
不是form的name属性值
看清楚le
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在FORM2中使用变量P作为改变FORM1状态:
IF ...
P='1'
ELSE
P='2'
ENDIF
...
do form form1 with p
*把参数P传递给FORM1
表单FORM1的INIT事件:
LPARAMETERS n
*接受FORM2参数
do case
case n='1'
thisform.command1.enabled=.f.
case n='2'
thisform.command1.enabled=.t.
...
endcase
IF ...
P='1'
ELSE
P='2'
ENDIF
...
do form form1 with p
*把参数P传递给FORM1
表单FORM1的INIT事件:
LPARAMETERS n
*接受FORM2参数
do case
case n='1'
thisform.command1.enabled=.f.
case n='2'
thisform.command1.enabled=.t.
...
endcase
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询