mozhongluo
27-02-06, 01:47 PM
我想在视图的一个列中显示 交易金额(已经用最新换率计算的),
但问题是我希望换率一更改 所有表单的人民币值也相应的改变.
这就得用到 一个全局变量.原来享用环境变量来实现,但环境变量不能使用在列公式中.
后来想到了简要表,但是怎么也不行!!!!!
是不是简要表函数 @GetProFile也不能用在列公式当中啊?如果是的话改怎么实现呢?
好象没有太好的方法,我以前做的只能是用一个代理把所有的域的值替换掉~~~结果是一样,就是麻烦点,每次都得去运行代理
这个问题我其实一星期以前就看到了,我也在思考有什么办法解决,到现在我才圆满的得出解决方案:
由于视图列的特殊性,像你说的简要表,@GetProfile在列里是没用的,我去尝试像你说的用环境变量,可惜列里面又不支持@Enviroment(),所以也取不到环境变量.今天在再去仔细查看了一下,NotesView,NotesUIView类的属性方法,突然看到NotesViewColumn这个类,脑子豁然开然,其实INOTES已经提供修改列公式的类了,下面就给出解决方案:
案例:用美元对人民币的汇率
1.表单设计:加一个域 Dollar
2.试图设计:加一列:标题可以是"人民币",视图的选择条件设为刚才那表单,而列值为可为Dollar
3.创建N个基于上面表单的文挡,域值分别 1,2,3,4等
4.在视图上创建一个操作,命名为"设置汇率"
下面填写操作的代码:
Dim uws As New NotesUIWorkspace
Dim uvw As NotesUIView
Dim vw As NotesView
Dim column As NotesViewColumn
Dim strValue As String
Set uvw = uws.CurrentView
Set vw = uvw.View
Set column = vw.Columns(2) -------------------- 假设人民币这列在视图中是第三列
strValue = Inputbox("请输入美元对人民币的汇率")
If strVlue <> "" Then
column.Formula = "@TextToNumber(Dollar) * " + strValue
Call uws.ViewRebuild()
End If
运行之后,人民币列马上会变值,为Dollar域值X输入的汇率
在这代码中,有一个很重要,就是Call uws.ViewRebuild(),说明NOTES已经提供我们用代码来修改试图的设计了,而我们这个问题就是需要通过设计而解决.
我认为这是最好的解决方案,而这效果也很快很明显
对前面要修改所有文挡的汇率值,这是不好的
楼主可以去试试看,如有什么错误请指出!!
[ 本帖最后由 空空空 于 2006-3-4 12:07 AM 编辑 ]
vBulletin® v3.7.4, Copyright ©2000-2009, Jelsoft Enterprises Ltd.