这个问题与我原来的问题有关
我想跟随肯的建议.所以我只想知道如果原始和上次保存的值相同,我是否至少可以弹出一个消息框.以下是我设置的内容.
Global declaration
Dim originalValues(2) As Variant
Dim lastValues(2) As Variant
Run Code Online (Sandbox Code Playgroud)
然后在queryopen上:
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
' Current document
Dim doc As NotesDocument
Set doc = Source.Document
' Array containing original value
originalValues(0) = doc.QCR_No
originalValues(1) = doc.QCR_Mobile_Item_No
originalValues(2) = doc.QCR_Qty
End Sub
Run Code Online (Sandbox Code Playgroud)
PostSave
Sub Postsave(Source As Notesuidocument)
' Current document
Dim doc As NotesDocument
Set doc = Source.Document
' Load fields value to the array
lastValues(0) = doc.QCR_No …Run Code Online (Sandbox Code Playgroud) 这似乎是最基本的东西.谷歌上有很多例子,所有这些都放在我的代码中并得到了相同的结果.
我相信我错过了语言特有的东西,而且真的很烦人.
特定
pathName$ = "..\..\images\" + artID + "\" + artNum + "\"
dirTest$ = "..\..\images\" + artID + "\"
If Dir$(pathName$ , ATTR_DIRECTORY) = "" Then
MsgBox "No Dir"
Else
MsgBox "Dir Found!"
End If
Run Code Online (Sandbox Code Playgroud)
(everthing正确调暗)
我把msgbox放在pathName $之前,就在DIR调用之前,但它在测试时失败了.我知道dir在某些情况下不存在的事实,但我想捕获错误,没有脚本崩溃未能找到目录.
我DIR (path,16) DIR$(path,16) DIR (path$,16) DIR$(path$,16)和ATTR_DIRECTORY关键词一样尝试过.
如何在Lotusscript中优雅地检查目录的存在?
我的表单中有一个嵌入式View,它在嵌入式视图中有一堆代理.
但是,当我在嵌入视图中选择行(文档)并运行代理(例如"执行多配置文件更新")时,它确实有效,但它不会对所选文档进行任何更改.就像莲花脚本中的提示一样,代理可以正常工作并弹出,但不会进行更新.
当从视图外部运行时,它工作正常,因此出于某种原因它不能从嵌入式视图工作是我的感觉.
视图中的代理是使用公式语言代码的Action @Command([RunAgent];"updatePeople")
是updatePeople是莲花脚本代理.
任何想法或建议的家伙?
有没有办法在LotusScript中实现关联数组?
如果是,请发布一个小的演示代码.
非常感谢!
我是Domino设计师和Lotus脚本的新手,
按照我的第一个问题
1)如何将表单值保存到DB
2)如何查看数据库(如MS访问)
3)如何创建视图以从DB检索值
用Google搜索但找到了保存到数据库解决方案的链接.
我试过了
Sub Click(Source As Button)
Dim myText As String
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim enteredText As String
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Set doc = New NotesDocument( db )
doc.Form = "Main Topic"
doc.Subject = "Here's a new document"
Call doc.Save( False, False )//I think it is saving here but don'y know where it …Run Code Online (Sandbox Code Playgroud) lotus-notes lotus lotusscript lotus-domino domino-designer-eclipse
我创建了一个X页面,允许管理员将一个Notes文档(它们是合同)ID输入到编辑框中,然后按一个按钮删除合同.删除调用代理传递合同ID.下面是按钮脚本,然后是代理的相关部分.发生的事情只是第一个字符被传递给代理,即如果合同ID是9MXCB4,则仅传递"9",因为代理消息框将其打印到日志中.我在这做错了什么?如果我在消息框后硬编码合同ID,则正确处理合同.
按钮代码
ag = database.getAgent("DeleteOneContract");
noteid = getComponent("ContractIDDelete").getValue()
ag.run(noteid)
Run Code Online (Sandbox Code Playgroud)
代理代码的一部分
Dim runAgent As NotesAgent
Dim deleteID As Variant
deleteID = runAgent.Parameterdocid
MsgBox "Input is " & deleteID
'If line below is uncommented it processes the Contract correctly
'deleteID = "9MXCB4"
' Rest of agent process
....
Run Code Online (Sandbox Code Playgroud)
请注意,我还尝试了runAgent.Target和runAgent.Query
Lotus Notes中是否有一种方法(使用@Formula或LotusScript)来获取当前用户的邮件文件路径?
如果我生成一个包含2列(名称和电子邮件)的视图,如果一行的电子邮件为空,我怎么能告诉笔记不将该行放入视图中?
我有一个字段叫Status我source.FieldGetText("Status")在我的查询 Querysave.
此状态可以是
现在我的问题是Instr:
If Instr("two",Status) > 0 Then...
Run Code Online (Sandbox Code Playgroud)
每个状态的回报是:
为什么它不像案例2那样为案例3和4返回1?据我了解它Instr检查子串是否在String中并返回它的位置,对于Case 3和4,它应该是1?
仅供Python参考,我会这样做:
if "test" in "this is a test":
print("String contains test")
Run Code Online (Sandbox Code Playgroud) 我需要从数据库中读取一个属性:模板版本是.
我试过了:
有人知道怎么做吗?谢谢。