S
StarikStarik2705
создание документов по дереву папок на диске, дерево папок получил, а вот сталкивался ли кто как создать документы что бы сохранить связь папок? что бы респонсы и родители соответствовали тому как это на жёстком диске?
Function ProcessFolder(folder As Variant, pardoc As NotesDocument, folderName As String, folderPrefix As String,db As NotesDatabase, s As NotesSession )
'pardoc документ на котором стоит курсор - главный родитель
On Error GoTo errh
Dim form As String
Dim curdoc As NotesDocument
Dim n As Integer
Print {Обрабатываем папку: } + folder.path ' текущая папка
Вот сдесь я хочу создавать документы - папки в БД но, иерархию нужно сохранить ,
я написал CreateDocumentFolder
но он криво их связывает, теряеться связь и связываю не с тем кем надо
'MsgBox getFolderName(folder.path) + "----------" & folder.path
'Set pardoc = CreateDocumentFolder("Folder", s, db, pardoc,getFolderName(folder.path))
Stop
Set curdoc = pardoc
ForAll File In folder.Files ' файлы в папках
'MsgBox File.path +"\" + File.name
'если сюда зашло значит создаём файл к данной папке
'Call CreateDocument("CardPD", s, db, pardoc, File.path +"\" + File.name)
End ForAll
ForAll subfolder In folder.SubFolders
Call ProcessFolder(subfolder, curdoc, folderName, folderPrefix, db,s)
End ForAll
Exit Function
errh:
Error Err, Error$ & Chr(10) & GetThreadInfo(1) & " (line " & Erl & ")"
End Function
Public Function CreateDocumentFolder(Form As String, s As NotesSession, db As NotesDatabase, pardoc As NotesDocument, Path As String ) As NotesDocument
On Error GoTo ErrHandler
Dim doc As NotesDocument
Dim uiview As NotesUIView
Dim dc As NotesDocumentCollection
Dim noteid As String
Set db = s.CurrentDatabase
Set doc = db.CreateDocument
Select Case Form
Case "Folder"
If pardoc Is Nothing Then
Exit Function
End If
Call doc.ReplaceItemValue( "Form", Form )
Call doc.ReplaceItemValue( "FolderName", Path )
Call doc.MakeResponse( pardoc )
doc.Replaceitemvalue( "AccessAuthor", pardoc.Getitemvalue( "AccessAuthor" ) ).Isauthors = True
doc.Replaceitemvalue( "AccessReader", pardoc.Getitemvalue( "AccessReader" ) ).Isauthors = True
Call doc.Save(True, False)
End Select
Set CreateDocumentFolder = doc
Exit Function
ErrHandler:
Error Err, Error$ & Chr(10) & GetThreadInfo(1) & " (line " & Erl & ")"
End Function
Function ProcessFolder(folder As Variant, pardoc As NotesDocument, folderName As String, folderPrefix As String,db As NotesDatabase, s As NotesSession )
'pardoc документ на котором стоит курсор - главный родитель
On Error GoTo errh
Dim form As String
Dim curdoc As NotesDocument
Dim n As Integer
Print {Обрабатываем папку: } + folder.path ' текущая папка
Вот сдесь я хочу создавать документы - папки в БД но, иерархию нужно сохранить ,
я написал CreateDocumentFolder
но он криво их связывает, теряеться связь и связываю не с тем кем надо
'MsgBox getFolderName(folder.path) + "----------" & folder.path
'Set pardoc = CreateDocumentFolder("Folder", s, db, pardoc,getFolderName(folder.path))
Stop
Set curdoc = pardoc
ForAll File In folder.Files ' файлы в папках
'MsgBox File.path +"\" + File.name
'если сюда зашло значит создаём файл к данной папке
'Call CreateDocument("CardPD", s, db, pardoc, File.path +"\" + File.name)
End ForAll
ForAll subfolder In folder.SubFolders
Call ProcessFolder(subfolder, curdoc, folderName, folderPrefix, db,s)
End ForAll
Exit Function
errh:
Error Err, Error$ & Chr(10) & GetThreadInfo(1) & " (line " & Erl & ")"
End Function
Public Function CreateDocumentFolder(Form As String, s As NotesSession, db As NotesDatabase, pardoc As NotesDocument, Path As String ) As NotesDocument
On Error GoTo ErrHandler
Dim doc As NotesDocument
Dim uiview As NotesUIView
Dim dc As NotesDocumentCollection
Dim noteid As String
Set db = s.CurrentDatabase
Set doc = db.CreateDocument
Select Case Form
Case "Folder"
If pardoc Is Nothing Then
Exit Function
End If
Call doc.ReplaceItemValue( "Form", Form )
Call doc.ReplaceItemValue( "FolderName", Path )
Call doc.MakeResponse( pardoc )
doc.Replaceitemvalue( "AccessAuthor", pardoc.Getitemvalue( "AccessAuthor" ) ).Isauthors = True
doc.Replaceitemvalue( "AccessReader", pardoc.Getitemvalue( "AccessReader" ) ).Isauthors = True
Call doc.Save(True, False)
End Select
Set CreateDocumentFolder = doc
Exit Function
ErrHandler:
Error Err, Error$ & Chr(10) & GetThreadInfo(1) & " (line " & Erl & ")"
End Function