我有一個配置文檔,我使用單個字段來存儲分配給評估某些文書工作的評估者的名稱。在LotusScript中,我可以將這些NotesNames消息轉換爲縮寫名稱,以便在沒有太多爭論的情況下構建我的列表。 NotesNames數組將用於組合框中,以允許用戶選擇評估者名稱。返回一組縮寫的NotesNames
Function getEvaluatorSelections As Variant
Dim evaluatorArray As Variant
ReDim evaluatorSelections (0) As String
Dim count As Integer
Dim evalName As NotesName
count = 0
evaluatorArray = DetermineMultiValueKeyword ("EVALUATORS")
ForAll entries In evaluatorArray
ReDim Preserve evaluatorSelections (count)
Set evalName = New NotesName (entries)
evaluatorSelections (count) = evalName.Abbreviated
count = count + 1
End ForAll
If count = 0 Then
getEvaluatorSelections = username
Else
getEvaluatorSelections = evaluatorSelections
End If
End Function
我去的時候做XPages中一樣,我被一個矢量開始並沒有真正理解如何寫SSJS阻礙。
var thisdb = session.getCurrentDatabase();
var dbProfileView = thisdb.getView("dbprofile");
var evaluatorDoc = dbProfileView.getDocumentByKey("EVALUATORS");
var evaluatorVector:Vector = evaluatorDoc.getItemValue("Value");
return evaluatorVector.toArray();
返回完全分辨名稱,這將是對我來說足夠,但肯定不是客戶不希望看到的。
我試圖把矢量值到一個數組,並獲得縮寫名稱,但一直得到錯誤500S與下面的代碼的變化:
var thisdb = session.getCurrentDatabase();
var dbProfileView = thisdb.getView("dbprofile");
var evaluatorDoc = dbProfileView.getDocumentByKey("EVALUATORS");
var evaluatorVector:Vector = evaluatorDoc.getItemValue("Value");
var evaluatorArray = new Array (evaluatorVector.toArray());
var returnArray = new Array();
var evalNames:NotesName;
for(var i=1;i<evaluatorArray.length;i++){
evalNames = New NotesName (evaluatorArray[i]);
returnArray[i] = evalNames.getAbbreviated();
}
return returnArray();
如何複製我在LotusScript中已經過在SSJS?還是我完全採取了錯誤的做法?
只需提醒兩次:在「for」循環內回收evalNames,並將問題標記爲已回答。 –
如果我自己回答,我必須等兩天才能將其標記爲答案。去搞清楚。我忘記了回收。謝謝。 –
僅供參考:'[]'與'new Array()'意味着相同的結果,每次輸入的次數都較少。 –