|
Imports SourceSafeTypeLib
Imports Microsoft.Office.Interop.Excel
Public Class Form1
'VSS related declarations
Private obj_vss_db As New VSSDatabase
Private obj_root As VSSItem
Private _vss_ini_path As String
Private _input_path As String
Private _uid As String
Private _pwd As String
Private _chk_linked_files As Boolean = False
'Excel related declarations
Private obj_excel As New Microsoft.Office.Interop.Excel.Application
Private ows As New Worksheet
Private owb As Workbook
Dim _i_xl_rw As Integer
Dim _i_xl_rw_err As Integer
Const COL_FILE_NAME = 1
Const COL_FOLDER_NAME = 2
Const COL_VSS_PATH = 3
Const COL_SHARED = 4
Const COL_LINKS = 5
Const COL_ERR_FILE_NAME = 1
Const COL_ERR_FOLDER_NAME = 2
Const COL_ERR_VSS_PATH = 3
Const COL_ERR_LINKED_PATH = 4
Const COL_ERR_DESC = 5
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub cmd_getdata_Click(sender As System.Object, e As System.EventArgs) Handles cmd_getdata.Click
'inputs
_vss_ini_path = txt_ini_path.Text
_input_path = txt_root_path.Text
_uid = txt_uid.Text
_pwd = txt_pwd.Text
_chk_linked_files = chk_get_linked_files.Checked
_i_xl_rw_err = 2
obj_vss_db.Open(_vss_ini_path, _uid, _pwd)
obj_vss_db.CurrentProject = _input_path
Try
obj_root = obj_vss_db.VSSItem(_input_path & "/", False)
Catch ex As Exception
MsgBox("SourceSafe DB access error!" + vbCrLf + ex.Message)
End Try
obj_excel.Visible = True
owb = obj_excel.Workbooks.Add
owb.Sheets(1).Cells(1, COL_FILE_NAME).Value = "File "
owb.Sheets(1).Cells(1, COL_FOLDER_NAME).Value = "Folder"
owb.Sheets(1).Cells(1, COL_VSS_PATH).Value = "VSS PATH"
owb.Sheets(1).Cells(1, COL_SHARED).Value = "SHARED"
owb.Sheets(1).Cells(1, COL_LINKS).Value = "Shared Paths"
owb.Sheets(2).Cells(1, COL_ERR_FILE_NAME) = "File"
owb.Sheets(2).Cells(1, COL_ERR_FOLDER_NAME) = "Folder"
owb.Sheets(2).Cells(1, COL_ERR_VSS_PATH) = "VSS PATH"
owb.Sheets(2).Cells(1, COL_ERR_LINKED_PATH) = "SHARED FILE PATH"
owb.Sheets(2).Cells(1, COL_ERR_DESC) = "ERROR DESC"
owb.Sheets(2).Name = "Error Details"
ows = owb.Worksheets(1)
_i_xl_rw = 2
Call get_sub_items(obj_root)
MsgBox("Completed successfully!", vbInformation, "")
End Sub
Sub get_sub_items(root_item As VSSItem)
Dim ProjectItem As VSSItem
Dim strLinkList As String = ""
Dim sShared As Boolean
If root_item.Type = VSSItemType.VSSITEM_PROJECT Then
For Each ProjectItem In root_item.Items
Call get_sub_items(ProjectItem)
Next
Else
If root_item.Type = VSSItemType.VSSITEM_FILE Then
Dim objVSSLinkItem As VSSItem
Dim LinkCount As Integer
strLinkList = ""
LinkCount = 0
sShared = False
If _chk_linked_files = True Then
For Each objVSSLinkItem In root_item.Links
LinkCount = LinkCount + 1
If LinkCount = 2 Then sShared = True
On Error Resume Next
strLinkList = strLinkList + objVSSLinkItem.Parent.Spec + vbCrLf
If Err.Number = -2147166577 Then
owb.Sheets(2).Cells(_i_xl_rw_err, COL_ERR_FILE_NAME) = root_item.Name
owb.Sheets(2).Cells(_i_xl_rw_err, COL_ERR_FOLDER_NAME) = root_item.Parent.Name
owb.Sheets(2).Cells(_i_xl_rw_err, COL_ERR_VSS_PATH) = root_item.Spec
owb.Sheets(2).Cells(_i_xl_rw_err, COL_ERR_LINKED_PATH) = objVSSLinkItem.Spec
owb.Sheets(2).Cells(_i_xl_rw_err, COL_ERR_DESC) = Err.Description
_i_xl_rw_err = _i_xl_rw_err + 1
End If
Next
End If
End If
On Error Resume Next
ows.Cells(_i_xl_rw, COL_FILE_NAME).Value = root_item.Name
ows.Cells(_i_xl_rw, COL_FOLDER_NAME).Value = root_item.Parent.Spec
ows.Cells(_i_xl_rw, COL_VSS_PATH).Value = root_item.Spec
If sShared = True Then
ows.Cells(_i_xl_rw, COL_SHARED).Value = "SHARED"
ows.Cells(_i_xl_rw, COL_LINKS).Value = strLinkList
End If
_i_xl_rw = _i_xl_rw + 1
End If
End Sub
End Class
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.