VB中如何在函数间传递变量

来源:百度知道 编辑:UC知道 时间:2024/05/14 19:28:42
有一个计算产品生产成本的程序,根据用户的输入进行核价.
因为原材料的价格是可变的,所以在对某以物料编号的产品进行核价时,需要知道它的进货价格.

在核价窗体上,有2个主要的文本框,物料编号和单价,现在要求用户单击单价文本框,会弹出另外一个窗体(价格选择窗体),该窗体根据核价窗体中的物料编号,从数据库(入库表)中检索该物料编号对应的价格,返回到本窗体的datagrid控件中.

用户单击datagrid控件中的某一行,点确定,则该行所对应的价格会返回的核价窗体中.

请问该如何实现这个功能.
物料编号不能定义成public类型,因为有10多个核价窗体,它们都有物料编号.
简化的数据表如下所示:
物料表(物料编号,价格)(这是物料第一次购买时的价格,物料编号是主码)
入库表(物料编号,入库价格)(这个表中的价格是可变的,每来一批物料,就登记一次,和实际的入库单是类似的)

我的想法是,定义一个过程,参数是核价窗体的物料编号,这样就可以把物料编号传进价格选择窗体.但如何把从datagrid中得到的价格传回去呢?
有很多的核价窗体,过程如何判断应该把结果传给哪一个窗体?

其实不管有多少个核价窗体,都可以用下面方法实现:
1、在模块中定义一个公共变量:Public CurForm as Form
2、假设价格选择窗体为Formt,那么在某个核价窗体中(这里设为Form1),当用户单击单价文本框text1后,则 set CurForm=Fomr1,Formt.show,就弹出了价格选择窗体,当用户选择了单价后,在价格选择窗体内部就可以直接通过CurForm.text1.text="13.86"(举例) 来实现窗体间的直接传递,把值传给了Form1内部的单价文本框text1。

建立一个module,用global定义变量。
例如 global price as integer
也可以定义成数组
然后你将值存在price变量中,整个程序都能使用。