我的莲花笔记中有一个保存按钮。我的保存按钮将在Lotusscript中执行一些过程。我将解释与保存过程有关的文档。

现在,我从主视图中看到一个状态为“活动”的文档,我将其称为“当前”文档。


首先,我为状态为“草稿”的所有当前文档创建副本,并将其称为“副本”文档。
其次,我为状态为“未完成”的所有复制文档创建“检查”文档,并将复制文档中的所有数据与“计算显示”一起使用。因此,我的“复制”用于所有编辑,而“检查”仅是文档报告。这意味着,在复制文档中进行的更改,当单击“保存”时,“报告”也会更新为最新信息。


因此,该过程将开始编辑副本文档并保存。复制文档的状态将从“草稿”更改为“有效”,而当前文档将从“有效”更改为“无效”。这意味着,“复制文档”将是新的当前文档。然后,检验报告状态将变为“完成”。

以下是我的Lotusscript按钮代码:

Set db = session.CurrentDatabase
Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document

'//Set lookup view for current document
keys(0) = doc.PTagNo(0)
keys(1) = "Lock"
Set view = db.GetView("TagNo")

'//Set lookup view for "Inspection" document
pckeys(0) = doc.PTagNo(0)
pckeys(1) = doc.PBatchNo(0)
pckeys(2) = "Incomplete"
Set pcview = db.GetView("BatchPCInspection")

answer% = Messagebox("Save PC Inspection?", 4,"Confirmation")
If Not answer% = 6 Then
    Exit Sub
Else
    '//Make changes for "Inspection" document
    Set comdoc = pcview.GetDocumentByKey(pckeys, True)
    If Not comdoc Is Nothing Then
        If comdoc.AStatus(0) = "Incomplete" Then
            comdoc.DocId=doc.UniversalID
            comdoc.ATagNo = doc.PTagNo
            comdoc.ADept= doc.PDept
            comdoc.AUserName= doc.PUserName
            comdoc.AStatus="Complete"
            Call comdoc.Save(True, False)
        End If
    End If

    '//Make changes for current document become Inactive
    Set activeDoc = view.GetDocumentByKey(keys, True)
    If Not activeDoc Is Nothing Then
        If activeDoc.PStatus(0) = "Lock" Then
            activeDoc.DocumetId = doc.UniversalID
            activeDoc.PStatus = "Inactive"
            Call activeDoc.Save(True, False)
        End If
    End If

    '//Make changes for "Copy" document become Active
    Call uidoc.FieldSetText("PStatus" , "Active")
    Call uidoc.FieldSetText("SaveOptions" , "1")
    Call uidoc.Save
    Call uidoc.Close
End If
End Sub


所以我现在的问题是,如何将这个Lotusscript代码转换为javascript代码?因为Lotusscript不会在Web浏览器中运行,所以我当然需要将其转换为javascript。任何人都知道有关如何将Lotusscript按钮转换为javascript按钮的任何文档或方法。任何帮助将不胜感激!提前致谢!

最佳答案

简单的答案:没有简单的方法可以将LotusScript转换为JavaScript代码,因为JavaScript中没有LotusScript类。

您可以在使用XPages时“模仿”代码,但是完整的代码则必须基于XPage,而不再是“经典的Web开发”。

如果要保留“经典” Web开发(窗体,视图等)而不是XPages,则需要在前端和后端分离代码,并将后端代码放在通过前端调用的代理中。

因此,您需要完全重组代码,重写其中的大部分代码,并删除使用JavaScript进行的“前端交互”。

您需要在前端和后端之间建立一个接口(可以使用WebQueryOpen和WebQuerySave-Agent,但这可能还不够),最有可能需要Ajax-Calls,并且需要知道如何通过代理返回JSON或HTML。

再次:这个问题在stackoverflow上是无法回答的,因为它需要大量专业知识,并且能够回答这个问题的人可能是顾问,他愿意向您出售解决方案,而不是免费提供。

10-06 04:45