• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Экспорт выделенных документов в Xml

  • Автор темы Автор темы DFO
  • Дата начала Дата начала
можно просто тихо и молча добавить родителя в коллекцию для экспорта или убрать дочерний из коллекции...

Добавлено: ну, или если винда, можно поизвращаться с винапишными нажатиями клавиш для выделения дока)
Где-то у нас вроде пробегала такая темка на форуме, а?
 
Сделал так:
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">код</div></div><div class="sp-body"><div class="sp-content">
Код:
Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim strm As NotesStream
Dim doc As NotesDocument
Dim col As Notesdocumentcollection
Dim coll As NotesDocumentCollection
Dim parentDoc As NotesDocument
Dim i As Integer
Dim ex As NotesDXLExporter
i = 0
Set db = session.CurrentDatabase
Set col=db.UnprocessedDocuments
Set doc = col.GetFirstDocument
While i < db.UnprocessedDocuments.Count
If doc.IsResponse = True Then
While doc.IsResponse = True
Set parentDoc = doc.ParentDatabase.GetDocumentByUNID(doc.ParentDocumentUNID)
coll.AddDocument(doc)
If Not col.getDocument( parentDoc ) Is Nothing Then
coll.AddDocument(parentDoc)
End If
Set doc=col.GetNextDocument(doc)
i=i+1
Wend
Set strm=session.CreateStream
file$="d:\Temp\Document" & i+1 & ".xml"
Call strm.Open(file$)
Call strm.Truncate
Set ex = session.CreateDXLExporter(coll ,strm)
i = i + 1
Call ex.Process
Call strm.Close
End If
Set strm=session.CreateStream
file$="d:\Temp\Document" & i+1 & ".xml"
Call strm.Open(file$)
Call strm.Truncate
Set ex = session.CreateDXLExporter(doc ,strm)
i = i + 1
Call ex.Process
Call strm.Close
Set doc=col.GetNextDocument(doc)
Wend
Messagebox"Созданно " & i & " xml файла"
End Sub
Не работает, ругается на coll.AddDocument(doc) Type mismatch.
Извинете я нубас в лотусе( но задание сделать очень нужно
 
Исправил collection на col.

Мне нужно чтобы в коллекцию coll добавлялись следующие докумениы:
Если документ дочерний то добавляется и родительские.
Потом вся колекция разом экспортируется в xml
 
Кстати, обычно не ленюсь писать Call col.AddDocument(doc)
вообще-то есть разница в передаче параметров с Call и без него. Детали хелп "Call statement"
 
Вот что получилось:
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">код</div></div><div class="sp-body"><div class="sp-content">
Код:
Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim strm As NotesStream
Dim doc As NotesDocument
Dim col As Notesdocumentcollection
Dim coll As NotesDocumentCollection
Dim view As NotesView
Dim parentDoc As NotesDocument
Dim i As Integer
Dim ex As NotesDXLExporter
i = 0
Set db = session.CurrentDatabase
Set col=db.UnprocessedDocuments
'	Set view = db.GetView("") <-Тут хз от фанаря написал
Set doc = col.GetFirstDocument
Set coll = view.GetAllDocumentsByKey("Nothing")
While i < db.UnprocessedDocuments.Count
If doc.IsResponse = True Then
While doc.IsResponse = True
Set parentDoc = doc.ParentDatabase.GetDocumentByUNID(doc.ParentDocumentUNID)
'				Set coll = db.UnprocessedDocuments.AddDocument(doc)
Call coll.AddDocument(doc)
If Not col.getDocument( parentDoc ) Is Nothing Then
Call	coll.AddDocument(parentDoc)
End If
Set doc=col.GetNextDocument(doc)
i=i+1
Wend
Set strm=session.CreateStream
file$="d:\Temp\Document" & i+1 & ".xml"
Call strm.Open(file$)
Call strm.Truncate
Set ex = session.CreateDXLExporter(coll ,strm)
i = i + 1
Call ex.Process
Call strm.Close
End If
Set strm=session.CreateStream
file$="d:\Temp\Document" & i+1 & ".xml"
Call strm.Open(file$)
Call strm.Truncate
Set ex = session.CreateDXLExporter(doc ,strm)
i = i + 1
Call ex.Process
Call strm.Close
Set doc=col.GetNextDocument(doc)
Wend
Messagebox"Созданно " & i & " xml файла"
End Sub
не знаю теперь как инициализировать view
 
да возьмите Set coll = db.Search( "" , Nothing , 0 ) и не мучьтесь с вьюхами...
 
Спасибо всем, вроде получилось ;)
Щас буду пытатся доделывать, там вроде понт остался, условия подправить:

А как сделать такой if
Если у doc есть дочерний документ и он отмечен галочкой(т.е. UnprocessedDocuments)
То выполнить блаблабла
 
Я так понял это первый дочерний документ:
doc.Responses.GetFirstDocument
А как условие сделать непонимаю =(
 
Как-то так
if not UnprocessedDocuments.GetDocument(doc.Responses.GetFirstDocument) is nothing then бла бла бла
 
указали вот тут:
Проверить наличие родителя в коллекции: not collection.getDocument( parentDoc ) is nothing
применимо не только для родительского документа.
Т.е. шаблон проверки условия наличия документа в коллекции готов, только бери нужный документ вместо parentDoc и нужную коллекцию вместо collection
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы