vfp thisform引用变量

2024-12-19 00:20:55
推荐回答(3个)
回答1:

不可以引用吗 ?
对于这样的问题,我个人的处理方法是将有关变量存于一个事先定义的表中,这个事先定义的表中有一条记录,记录中有数字字段、日期字段、字符字段等您需要的中间交互用的数据。在一个窗体中存入,在另一个窗体中取回。

如 这段 中的
do form .\txt\frmsdl32 &&选择某个租用单位
do form .\txt\frmsdl31 &&设定系统参数
选择某个租用单位后数据存入一个公共表(system)中,在frmsdl31中根据某个租用单位的编码,在进一步设定它的system参数。

以下是本人的商业软件(建筑机具租赁结算管理系统)的一小小部分:

do case
case this.value=1 &&打印丢失赔偿
thisform.hide
report form .\txt\frxsdl313.frx Environment pdsetup to print prompt noconsole
thisform.show
case this.value=2 &&自动产生结算汇总
use .\dbf\zljshz0
zap
use
do form .\txt\frmsdl32 &&选择某个租用单位
do form .\txt\frmsdl31 &&设定系统参数
do sdl32 in .\abc &&计算租赁费
do form .\txt\frmsdl34 &&结算日计算租赁费
do sdl37 in .\abc &&计算破坏损失费
do sdl311 in .\abc &&计算丢失的数量
*do form .\txt\frmsdl311 &&显示丢失数量
do sdl311_1 in .\abc &&综合计算丢失的价值
do sdl91 in .\abc &&按面积计算维修费
do sdl42 in .\abc &&租赁结算汇总综合汇总
DO form .\txt\frmsdl42 &&综合计算租赁结算汇总显示
case this.value=3
DO form .\txt\frmsdl42 &&综合计算租赁结算汇总显示
case this.value=4 &&租赁结算汇总的模拟显示

iii=messagebox("要打印的表是否含租赁费?"+chr(13)+"请选择是或否。",32+4,"重要提示")
if iii=6 then &&是
thisform.hide
report form .\txt\frxsdl44_1.frx Environment pdsetup preview
thisform.show
else
thisform.hide
report form .\txt\frxsdl44.frx Environment pdsetup preview
thisform.show
endif

case this.value=5 &&租赁结算汇总的打印
thisform.hide
report form .\txt\frxsdl44.frx Environment pdsetup to print prompt noconsole
thisform.show
case this.value=6
do sdl13 in .\abc
do form .\txt\frmsdl46 &&修改指定租用单位的价格库
case this.value=7 &&综合处理选定客户的租赁费汇总计算
use .\dbf\list1
zap
use
use .\dbf\zljshz0
zap
use
do form .\txt\frmsdl47 &&选择某个(些) 租用单位
do sdl47 in .\abc &&综合处理选定客户的租赁费汇总计算
do form .\txt\frmsdl47_1 &&显示
case this.value=8 && 综合处理选定客户的租赁费汇总计算模拟显示
thisform.hide
report form .\txt\frxsdl47.frx Environment pdsetup preview
thisform.show
case this.value=9 &&综合处理选定客户的租赁费汇总计算打印输出
thisform.hide
report form .\txt\frxsdl47.frx Environment pdsetup to print prompt noconsole
thisform.show
case this.value=10
do sdl410 in .\abc
do form .\txt\frmsdl411 &&显示按面积计算的维修费
case this.value=11
do form .\txt\frmsdl411 &&显示按面积计算的维修费
case this.value=12
thisform.hide
report form .\txt\frxsdl412.frx Environment pdsetup preview
thisform.show
case this.value=13
thisform.hide
report form .\txt\frxsdl412.frx Environment pdsetup to print prompt noconsole
thisform.show
endcase

回答2:

原因是宏替换必须以“.”或空格结束,&aa.value中的点被认为是宏替换的结束标志,这样原来的点就没了,所以再加个点就可以了。
thisform.&aa..value=1

回答3:

thisform.&aa..value=1
即可