home *** CD-ROM | disk | FTP | other *** search
- VERSION 4.00
- Begin VB.Form frmMainWindow
- Appearance = 0 'Flat
- BackColor = &H00C0C0C0&
- BorderStyle = 1 'Fixed Single
- Caption = "Visio Inventory"
- ClientHeight = 6000
- ClientLeft = 3330
- ClientTop = 3720
- ClientWidth = 8535
- BeginProperty Font
- name = "MS Sans Serif"
- charset = 0
- weight = 700
- size = 8.25
- underline = 0 'False
- italic = 0 'False
- strikethrough = 0 'False
- EndProperty
- ForeColor = &H80000008&
- Height = 6690
- Icon = "MAINWND.frx":0000
- Left = 3270
- LinkTopic = "Form2"
- MaxButton = 0 'False
- ScaleHeight = 6000
- ScaleWidth = 8535
- Top = 3090
- Width = 8655
- Begin Threed.SSPanel ctlStatusLine
- Align = 2 'Align Bottom
- Height = 375
- Left = 0
- TabIndex = 2
- Top = 5625
- Width = 8535
- _Version = 65536
- _ExtentX = 15055
- _ExtentY = 661
- _StockProps = 15
- Caption = "Ready"
- BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
- Name = "MS Sans Serif"
- Size = 8.25
- Charset = 0
- Weight = 400
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- BevelInner = 1
- RoundedCorners = 0 'False
- Font3D = 3
- Alignment = 1
- End
- Begin VB.ComboBox ctlPageList
- Appearance = 0 'Flat
- Height = 300
- Left = 1260
- Style = 2 'Dropdown List
- TabIndex = 4
- Top = 480
- Width = 2715
- End
- Begin VB.ComboBox ctlDocList
- Appearance = 0 'Flat
- Height = 300
- Left = 1260
- Style = 2 'Dropdown List
- TabIndex = 3
- Top = 120
- Width = 2715
- End
- Begin VB.ComboBox ctlSortField
- Appearance = 0 'Flat
- Height = 300
- Left = 1260
- Style = 2 'Dropdown List
- TabIndex = 1
- Top = 840
- Width = 2715
- End
- Begin Threed.SSPanel Panel3D1
- Height = 5655
- Left = 0
- TabIndex = 5
- Top = 0
- Width = 8535
- _Version = 65536
- _ExtentX = 15055
- _ExtentY = 9975
- _StockProps = 15
- BevelInner = 1
- Begin MSGrid.Grid ctlQueryGrid
- Height = 4275
- Left = 120
- TabIndex = 0
- Top = 1200
- Width = 8235
- _Version = 65536
- _ExtentX = 14526
- _ExtentY = 7541
- _StockProps = 77
- BackColor = -2147483643
- Cols = 9
- FixedCols = 0
- End
- Begin Threed.SSCommand btnReQuery
- Height = 1035
- Left = 6780
- TabIndex = 10
- Top = 120
- Width = 1575
- _Version = 65536
- _ExtentX = 2778
- _ExtentY = 1826
- _StockProps = 78
- Caption = "ReQuery Visio"
- Picture = "MAINWND.frx":030A
- End
- Begin Threed.SSCommand btnChooseFields
- Height = 1035
- Left = 5100
- TabIndex = 9
- Top = 120
- Width = 1575
- _Version = 65536
- _ExtentX = 2778
- _ExtentY = 1826
- _StockProps = 78
- Caption = "Choose Fields"
- Picture = "MAINWND.frx":0624
- End
- Begin VB.Label Label3
- Alignment = 1 'Right Justify
- Appearance = 0 'Flat
- BackColor = &H00C0C0C0&
- Caption = "Sort Field:"
- ForeColor = &H80000008&
- Height = 195
- Left = 300
- TabIndex = 7
- Top = 900
- Width = 915
- End
- Begin VB.Label Label2
- Alignment = 1 'Right Justify
- Appearance = 0 'Flat
- BackColor = &H00C0C0C0&
- Caption = "Page:"
- ForeColor = &H80000008&
- Height = 195
- Left = 420
- TabIndex = 8
- Top = 540
- Width = 795
- End
- Begin VB.Label Label1
- Alignment = 1 'Right Justify
- Appearance = 0 'Flat
- BackColor = &H00C0C0C0&
- Caption = "Document:"
- ForeColor = &H80000008&
- Height = 195
- Left = 180
- TabIndex = 6
- Top = 180
- Width = 1035
- End
- Begin VB.Shape Shape1
- BackColor = &H00000000&
- BackStyle = 1 'Opaque
- Height = 4275
- Left = 180
- Top = 1260
- Width = 8235
- End
- End
- Begin VB.Menu FileMenu
- Caption = "&File"
- Begin VB.Menu FileExport
- Caption = "&Export"
- Shortcut = ^S
- End
- Begin VB.Menu FileSep
- Caption = "-"
- End
- Begin VB.Menu FilePrint
- Caption = "&Print"
- Enabled = 0 'False
- End
- Begin VB.Menu FilePrinterSetup
- Caption = "Pri&nter Setup"
- Enabled = 0 'False
- End
- Begin VB.Menu FilePageSetup
- Caption = "Page Se&tup"
- Enabled = 0 'False
- End
- Begin VB.Menu FileSep2
- Caption = "-"
- End
- Begin VB.Menu FileExit
- Caption = "E&xit"
- End
- End
- Begin VB.Menu EditMenu
- Caption = "&Edit"
- Begin VB.Menu EditCopy
- Caption = "&Copy"
- Enabled = 0 'False
- Shortcut = ^{INSERT}
- End
- Begin VB.Menu EditSep1
- Caption = "-"
- End
- Begin VB.Menu EditSelectAll
- Caption = "&Select All"
- End
- End
- Begin VB.Menu OptionsMenu
- Caption = "&Options"
- Begin VB.Menu ExportSetup
- Caption = "E&xport Setup"
- End
- End
- Begin VB.Menu HelpMenu
- Caption = "&Help"
- Begin VB.Menu HelpContents
- Caption = "&Contents"
- Enabled = 0 'False
- Shortcut = {F1}
- End
- Begin VB.Menu HelpSearch
- Caption = "&Search For Help On"
- Enabled = 0 'False
- End
- Begin VB.Menu HelpSep
- Caption = "-"
- End
- Begin VB.Menu HelpAbout
- Caption = "&About"
- End
- End
- Attribute VB_Name = "frmMainWindow"
- Attribute VB_Creatable = False
- Attribute VB_Exposed = False
- ' -----------------------------------------------------------------------------
- ' Copyright (C) 1993-1996 Visio Corporation. All rights reserved.
- ' You have a royalty-free right to use, modify, reproduce and distribute
- ' the Sample Application Files (and/or any modified version) in any way
- ' you find useful, provided that you agree that Visio has no warranty,
- ' obligations or liability for any Sample Application Files.
- ' -----------------------------------------------------------------------------
- Option Explicit '-- All Variable Explicit
- Dim iSortIndex As Integer '-- Sort Field Index
- Dim iPageIndex As Integer '-- Current Page Index
- Dim iDocIndex As Integer '-- Current Document Index
-
- Private Sub btnChooseFields_Click()
- '------------------------------------
- '--- btnChooseFields_Click ----------
- '-- When the Choose Fields is chosen we load the Choose Fields form. After
- '-- It's done we re-paint the query grid to take into account any changes made.
- frmChooseFields.Show 1
- If Not GetIncludeFlag(iSortIndex) Then
- iSortIndex = 0
- End If
- UpdateFieldsList
- RePaint
- End Sub
- Private Sub btnReQuery_Click()
- '------------------------------------
- '--- btnReQuery_Click ---------------
- '-- When the user presses this button we just want to requery the database.
- UpdateDatabase
- End Sub
- Private Sub ctlDocList_Click()
- '------------------------------------
- '--- ctlDocList_Click ---------------
- '-- When the user clicks a document name we check to see if it's different
- '-- than our internal index iDocIndex. If so we update the page list and the
- '-- internal index.
- If iDocIndex <> ctlDocList.ListIndex Then '-- If Different Indexes...
- iDocIndex = ctlDocList.ListIndex '-- Update Internal Index
- Call UpdatePageList '-- Update Page List
- End If
- End Sub
- Private Sub ctlPageList_Click()
- '------------------------------------
- '--- ctlDocList_Change --------------
- '-- When the user clicks a page name we check to see if it's different
- '-- than our internal index iPageIndex. If so we requery the database and
- '-- size the columns.
- If iPageIndex <> ctlPageList.ListIndex Then
- iPageIndex = ctlPageList.ListIndex '-- Update Page Index
- ReQuery CurDocIndex(), CurPageIndex()
- RePaint
- End If
- End Sub
- Private Sub ctlQueryGrid_SelChange()
- '------------------------------------
- '--- ctlQueryGrid_SelChange ---------
- If (ctlQueryGrid.SelEndCol >= ctlQueryGrid.SelStartCol) Then
- If (ctlQueryGrid.SelEndRow >= ctlQueryGrid.SelStartRow) Then
- EditCopy.Enabled = True
- Exit Sub
- End If
- End If
- EditCopy.Enabled = False
- End Sub
- Private Sub ctlSortField_Click()
- '------------------------------------
- '--- cstSortField_Click -------------
- '-- When the user clicks a sort field name we check to see if it's different
- '-- than our internal index iSortIndex. If so we process the change and update
- '-- the internal index.
- If iSortIndex <> ctlSortField.ListIndex Then
- iSortIndex = ctlSortField.ListIndex
- SetSort iSortIndex
- RePaint
- End If
- End Sub
- Private Function CurDocIndex() As Integer
- '------------------------------------
- '--- CurDocIndex --------------------
- '-- Simply returns the collection index of the current document. Note, it
- '-- returns the collection index, not the control index.
- Dim iIndex As Integer
- iIndex = ctlDocList.ListIndex
- CurDocIndex = GetCollIndex(iIndex)
- End Function
- Private Function CurPageIndex() As Integer
- '------------------------------------
- '--- CurPageIndex -------------------
- '-- Simply returns the index of the current page. However, it returns the
- '-- collection index, not the page controls index.
- CurPageIndex = ctlPageList.ListIndex + 1 '-- Return Index
- End Function
- Private Sub EditCopy_Click()
- '------------------------------------
- '--- EditCopy_Click -----------------
- '-- Copies the highlighted selection on the grid to the clipboard.
- Dim iRow As Integer, iCol As Integer, Temp As String
- Dim iOldRow As Integer, iOldCol As Integer
- Dim sFieldSep As String
- sFieldSep = g_FieldSeps(g_iFieldSepIdx)
- iOldRow = ctlQueryGrid.Row '-- Save Last Row And Column
- iOldCol = ctlQueryGrid.Col
- If g_bIncFieldNames Then '-- Include Field Names
- ctlQueryGrid.Row = 0 '-- Move To Field Row
- For iCol = ctlQueryGrid.SelStartCol To ctlQueryGrid.SelEndCol
- ctlQueryGrid.Col = iCol
- If iCol <> ctlQueryGrid.SelStartCol Then
- Temp = Temp + sFieldSep
- End If
- Temp = Temp + ApplyTextDel(ctlQueryGrid.Text)
- Next iCol
- Temp = Temp + Chr$(13) + Chr$(10) '-- Append CR/LF
- End If
- For iRow = ctlQueryGrid.SelStartRow To ctlQueryGrid.SelEndRow
- ctlQueryGrid.Row = iRow
- For iCol = ctlQueryGrid.SelStartCol To ctlQueryGrid.SelEndCol
- ctlQueryGrid.Col = iCol
- If iCol <> ctlQueryGrid.SelStartCol Then
- Temp = Temp + sFieldSep
- End If
- Temp = Temp + ApplyTextDel(ctlQueryGrid.Text)
- Next iCol
- Temp = Temp + Chr$(13) + Chr$(10) '-- Append CR/LF
- Next iRow
- ctlQueryGrid.Row = iOldRow '-- Restore Last Row And Column
- ctlQueryGrid.Col = iOldCol
- Clipboard.Clear '-- Clear Clipboard Contents
- Clipboard.SetText Temp '-- Put Text On Clipboard
- End Sub
- Private Sub EditSelectAll_Click()
- '------------------------------------
- '--- EditSelectAll_Click ------------
- '-- Selects all data on the grid.
- ctlQueryGrid.SelStartCol = ctlQueryGrid.FixedCols
- ctlQueryGrid.SelStartRow = ctlQueryGrid.FixedRows
- ctlQueryGrid.SelEndCol = ctlQueryGrid.Cols - 1
- ctlQueryGrid.SelEndRow = ctlQueryGrid.Rows - 1
- End Sub
- Private Sub ExportSetup_Click()
- '------------------------------------
- '--- ExportSetup_Click --------------
- '-- Displays the export setup dialog.
- frmExportSetup.Show 1
- End Sub
- Private Sub FileExit_Click()
- '------------------------------------
- '--- FileExit_Click -----------------
- '-- When the user chooses to quit we unload the main form and end.
- Unload frmMainWindow '-- Unload Main Frame
- End '-- End Program
- End Sub
- Private Sub FileExport_Click()
- '------------------------------------
- '--- FileExport_Click ---------------
- On Error GoTo ExportErrHandler
- Dim Temp As String
- Const OFN_HIDEREADONLY = &H4&
- Const OFN_OVERWRITEPROMPT = &H2&
- frmSaveAs.CMDialog1.CancelError = True
- frmSaveAs.CMDialog1.Flags = OFN_HIDEREADONLY Or OFN_OVERWRITEPROMPT
- frmSaveAs.CMDialog1.Action = 2
- Temp = frmSaveAs.CMDialog1.filename
- ExportToFile Temp
- Exit Sub
- ExportErrHandler:
- Exit Sub
- Resume Next
- End Sub
- Private Sub Form_Activate()
- '------------------------------------
- '--- frmMainWindow:Form_Activate ----
- '-- When the window is activated we always update the database in case the
- '-- user has made any changes in Visio. Need to add a flag to not update after
- '-- internal form changes.
- 'Remmed by TDS - must check for internal activates (i.e. About form unloaded)
- 'UpdateDatabase '-- Update Database Lists
- End Sub
- Private Sub Form_Load()
- '------------------------------------
- '--- frmMainWindow:Form_Load --------
- '-- Handles application initialization. All we do at first is update the
- '-- field list. The document and page lists should be handled by the window
- '-- Activate event.
- iSortIndex = 0 '-- Default To Name Sort
- iDocIndex = -1 '-- Default To No Doc
- iPageIndex = -1 '-- Default To No Page
- EditCopy.Enabled = False '-- Disable Copy Option
- InitExportOptions '-- Initialize Export Vars
- UpdateFieldsList '-- Update Sort Field List
- End Sub
- Private Sub Form_Unload(Cancel As Integer)
- End
- End Sub
- Private Sub HelpAbout_Click()
- frmAboutDialog.Show 1 '-- Show Help About
- End Sub
- Private Sub UpdateDatabase()
- '------------------------------------
- '--- UpdateDatabase -----------------
- '-- Updates the internal database of valid Visio document which are loaded.
- '-- Should be called whenever the focus is set or application is activated to
- '-- make sure the controls reflect Visio's open documents. Only call
- '-- UpdateDocList because it's click event updates the page list anyways.
- StatusLineMsg "Querying Visio Documents..."
- UpdateValidDocList '-- Update Valid Documents
- StatusLineMsg "Updating Document List..."
- UpdateDocList '-- Update Document List Box
- ClearStatusLine
- End Sub
- Private Sub UpdateDocList()
- '------------------------------------
- '--- UpdateDocList ------------------
- '-- Handles updating the document drop down list on the main form. Uses the
- '-- Valid Document Interface for retrieving document names. By setting
- '-- the list box index we guarantee a Click event will occur and iDocIndex
- '-- to be updated by the boxes Click handler. When this happens it chains
- '-- down to the page list as well.
- Dim I As Integer
- iDocIndex = -1 '-- Force ReQuery
- ctlDocList.Clear '-- Clear Document List
- StatusLineMsg "Updating Document List..." '-- Update Status Line
- If DocCount() > 0 Then '-- Any Documents...
- For I = 0 To DocCount() - 1 '-- Loop Through Docs...
- ctlDocList.AddItem StripPath(GetDocName(I)) '-- Add Name
- Next I
-
- ctlDocList.ListIndex = 0 '-- Select First Document
- '-- And Get
- Else
- ctlDocList.ListIndex = -1 '-- No Doc Selected
- End If
- ClearStatusLine '-- Clear Status Line
- End Sub
- Private Sub UpdateFieldsList()
- '------------------------------------
- '--- UpdateFieldsList ---------------
- '-- Fills in the main form's Sort Field list box.
- Dim I As Integer
- ctlSortField.Clear '-- Clear List
- For I = 0 To IncludeCount() - 1 '-- Loop Through Used Fields...
- ctlSortField.AddItem IncludeNames(I) '-- Add Next Field Name
- Next I
- ctlSortField.ListIndex = 0 '-- Select First Field
- End Sub
- Private Sub UpdatePageList()
- '------------------------------------
- '--- UpdatePageList -----------------
- '-- Updates the page drop down list names. Uses the Valid Document Interface
- '-- to retrieve the current document. By setting the page index to -1 we force
- '-- a requery when the list box's Click handler gets called.
- Dim I As Integer, iPageCount As Integer, iCurDoc As Integer
- Dim pagsPageList As Visio.Pages, docCurDoc As Visio.DOCUMENT
- iPageIndex = -1 '-- Force ReQuery
- ctlPageList.Clear '-- Clear Page List
- iCurDoc = ctlDocList.ListIndex '-- Get Current Doc Index
- If iCurDoc = -1 Then Exit Sub '-- If No Document Exit
- StatusLineMsg "Updating Page List..." '-- Updating Page List
- iCurDoc = GetCollIndex(iCurDoc) '-- Get Collection Index
- AppConnect
- Set docCurDoc = g_appVisio.Documents(iCurDoc) '-- Get Current Document
- iPageCount = docCurDoc.Pages.Count '-- Get Page Count
- If iPageCount > 0 Then '-- Any Documents....
- Set pagsPageList = docCurDoc.Pages '-- Get Page List
- For I = 1 To iPageCount '-- Loop Through Pages...
- ctlPageList.AddItem pagsPageList(I).Name '-- Add Name
- Next I
- ctlPageList.ListIndex = 0 '-- Set To Active Doc
- Else
- ctlPageList.ListIndex = -1 '-- No Selection
- End If
- ClearStatusLine '-- Clear Status Line
- End Sub
-