PDA

View Full Version : 视图的列公式中如何才能用到全局变量?


mozhongluo
27-02-06, 01:47 PM
我想在视图的一个列中显示 交易金额(已经用最新换率计算的),

但问题是我希望换率一更改 所有表单的人民币值也相应的改变.

这就得用到 一个全局变量.原来享用环境变量来实现,但环境变量不能使用在列公式中.

后来想到了简要表,但是怎么也不行!!!!!

是不是简要表函数 @GetProFile也不能用在列公式当中啊?如果是的话改怎么实现呢?

mozhongluo
28-02-06, 08:08 AM
就是说如何在列公式中使用全局变量

mozhongluo
01-03-06, 08:20 AM
还没有人回答啊.......

mozhongluo
01-03-06, 11:46 PM
快沉了 还没有解决啊

月影无限
02-03-06, 07:11 PM
好象没有太好的方法,我以前做的只能是用一个代理把所有的域的值替换掉~~~结果是一样,就是麻烦点,每次都得去运行代理

空空空
04-03-06, 12:05 AM
这个问题我其实一星期以前就看到了,我也在思考有什么办法解决,到现在我才圆满的得出解决方案:
由于视图列的特殊性,像你说的简要表,@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 编辑 ]