VBDOX - Visual Basic Documentation Generator

Overview
Features
Screenshots
Download
     Languages
     Reports
Demo
How to
Developer
License
Other tools
Contact
Q & A

Google
Web sourceforge.net

VBDOX - Visual Basic Documentation Generator

Developer

Note: For up-to-date information see the VBDOX Document Manager on sourceforge.net

Under construction! Please check this page later.


Overview
Custom Report Manager
Custom Documentation Parser
Properties
Options pages
Error and progress managers
Using the parser
New report language
VBDOX Visual Basic Group Object Model
Reference

Overview

Actually since version 1.0.34 you do not need the sources of VBDOX in order to create custom reports and documentation comment formats. VBDOX versions 1.0 and later have component structure and use external ActiveX modules containing classes implementing:

  • IReportManager - for report managers.
  • IDocParser - for documentation comment parsers.

Custom Report Manager

The implementation of a new report manager is very easy.

  1. Create Visual Basic project for ActiveX DLL;
  2. Set a project reference to the VBDOXCOR.DLL;
  3. Add public (Instancing: MultiUse) class;
  4. Implement IReportManager interface. This interface contains only one method called saveReport, which have the following parameters:
    1. fname - the name of the report file (*.html). This file name is passed to the report manager from the VBDOX.EXE (VBDOXUI). You can change this name. For example if you're creating XML file, you can change the extension.
    2. group - this is the object model of the parsed Visual Basic (VBScript or ASP) source. You can investigate the properties and the method with the Visual Basic Object Browser (View/Object Browser F2). I plan to make detailed documentation.
    3. docParser - reference to a documentation parser to use.
  5. Add your report manager to the list of registered report managers - add its ProgID (projectname.classname) to the "report.manager.list" variable in "vbdox.config" file. This variable contains comma separated list of report managers.

Example:

report.manager.list=VBDOXEXT.clsReportManager,VBDOXEXT.clsReportManagerEx,
VBDOXEXT.clsReportManagerXML,VBDOXSAMPLE.clsSampleReportManager	

Now you can start the VBDOX program, select your report manager and look what happens.

This is the source of an simple report manager:
'*
'*      Copyright (c) 2000, 2001 Mihayl Stamenov <michael.stamenov@web.de>
'*
'* This program is free software; you can redistribute it and/or modify
'* it under the terms of the GNU General Public License as published by
'* the Free Software Foundation; either version 2, or (at your option)
'* any later version.
'*
'* This program is distributed in the hope that it will be useful,
'* but WITHOUT ANY WARRANTY; without even the implied warranty of
'* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
'* GNU General Public License for more details.
'*
'* You should have received a copy of the GNU General Public License
'* along with this program; see the file COPYING.  If not, write to
'* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
'*

''
' Sample Report Manager for VBDOX (VBDOXSAMPLE.clsSampleReportManager)
'
' @version VBDOX Version: 1.0.34 or later
' @author michael.stamenov
' @date 200011015

Option Explicit

Implements VBDOXCOR.IReportManager

Private dp  As VBDOXCOR.IDocParser

Private Sub IReportManager_saveReport(fname As String, group As VBDOXCOR.clsGroup, _
    docParser As VBDOXCOR.IDocParser)
Dim prj     As VBDOXCOR.clsProject
Dim mdl     As VBDOXCOR.clsModule
Dim entry   As VBDOXCOR.clsEntry
Dim file    As Integer

    Set dp = docParser
    
    file = FreeFile
    Open fname For Output Access Write As file
    
    ' Print group name (may not exist)
    Print #file, "<H1>"; group.getName; "</H1>"
    For Each prj In group.projects
        ' Print project name
        Print #file, "<H2>"; prj.getName; "</H2>"
        For Each mdl In prj.modules
            Print #file, "<H3>"; mdl.getName; "</H3>"
            Print #file, "<P>"; dp.getModuleDescription(mdl); "</P>"
            For Each entry In mdl.entries
                Print #file, "<BR/>"; entry.getName; " - "; dp.getDescription(entry)
            Next
        Next
    Next
    
    Close #file

End Sub

' end of file

Custom Documentation Parser


Please write to: michael.stamenov@web.de.




SourceForge Logo