我正在使用LotusScript清除表单中的值并将其导出到csv文件。在表单中有多个日期字段,其名称如enddate_1,enddate_2,enddate_3等。
空白时这些日期字段为Data Type: Text
,填充时为Data Type: Time/Date
。
要在csv中将值作为字符串获取且没有错误,我执行了以下操作:
If Isdate(doc.enddate_1) Then
enddate_1 = Format(doc.enddate_1,"dd-mm-yyyy")
Else
enddate_1 = doc.enddate_1(0)
End If
但为每个日期字段做这样的代码块感觉不对。
尝试以下方法,但这不起作用。
For i% = 1 To 9
If Isdate(doc.enddate_i%) Then
enddate_i% = Format(doc.enddate_i%,"dd-mm-yyyy")
Else
enddate_i% = doc.enddate_i%(0)
End If
Next
有关如何使用for循环或其他方式迭代编号字段的任何建议吗?
答案 0 :(得分:2)
使用for循环或其他方式迭代编号字段?
valueArray = notesDocument.GetItemValue( itemName$ )
但是,您是否知道可以使用Notes菜单以CSV格式导出文档?
File\Exort
还有一个公式:
@Command([FileExport]; "Comma Separated Value"; "c:\document.csv")
答案 1 :(得分:0)
Dmytro的综合解决方案,澄清理查德施瓦茨与我的代码块到一个有效的解决方案。尝试将其作为Dmytro解决方案的编辑,但遭到拒绝。
我的问题不仅是迭代编号字段,还以迭代方式存储值以便以后轻松检索它们。我今天发现,试图实施Dmytro的解决方案以及Richard Schwartz的澄清。使用List完全解决它。
现在我的工作解决方案是:
Dim enddate$ List
For i% = 1 To 9
itemName$ = "enddate_" + CStr(i%)
If Isdate(doc.GetItemValue(itemName$)) Then
enddate$(i%) = Format(doc.GetItemValue(itemName$),"dd-mm-yyyy")
Else
enddate$(i%) = doc.GetItemValue(itemName$)(0)
End If
Next