Imports System.Data Imports System.IO Imports System.Windows.Forms Imports System.Xml Imports System.Xml.Xsl Module modGenerateWebSite 'Private Const cstrOrganLitWebPath As String = "F:\Data\Shared\JREUSS Web page\OrganLit\" 'Private Const cstrXSLPath As String = "F:\VBDOTNETPROJECTS\OrganLit\" Private Const cstrOrganLitWebPath As String = "Z:\REUSS Web page\organlit\" Private Const cstrXSLPath As String = "Z:\VBDOTNETPROJECTS\OrganLit\" Public Sub GenerateWebSite() Try MyGlobals.FlushCachedObjects() Dim lstrOrganLitWebPath As String lstrOrganLitWebPath = cstrOrganLitWebPath Dim lstrXMLFileName As String lstrXMLFileName = lstrOrganLitWebPath & "OrganLit.xml" Dim lstrXSLPath As String lstrXSLPath = cstrXSLPath GenerateXML(lstrXMLFileName) GenerateHymnTuneBasedPage(lstrOrganLitWebPath, lstrXSLPath, lstrXMLFileName) GenerateNonHymnTuneBasedPage(lstrOrganLitWebPath, lstrXSLPath, lstrXMLFileName) GenerateComposerPage(lstrOrganLitWebPath, lstrXSLPath, lstrXMLFileName) GenerateBookPage(lstrOrganLitWebPath, lstrXSLPath, lstrXMLFileName) GenerateHymnTuneNameIndex(lstrOrganLitWebPath, lstrXSLPath, lstrXMLFileName) GenerateHymnIndex(lstrOrganLitWebPath, lstrXSLPath, lstrXMLFileName) GenerateBookIndex(lstrOrganLitWebPath, lstrXSLPath, lstrXMLFileName) GenerateComposerIndex(lstrOrganLitWebPath, lstrXSLPath, lstrXMLFileName) GenerateRootIndex(lstrOrganLitWebPath, lstrXSLPath, lstrXMLFileName) File.Delete(lstrXMLFileName) MyGlobals.FlushCachedObjects() MessageBox.Show("Done") Catch ex As Exception MessageBox.Show("Error in GenerateWebSite:" & ControlChars.CrLf & ex.ToString) End Try End Sub Private Sub GenerateXML(ByVal lstrXMLFileName As String) Try Dim objXMLWriter As New XmlTextWriter(lstrXMLFileName, System.Text.Encoding.UTF8) objXMLWriter.Formatting = Formatting.Indented objXMLWriter.WriteStartDocument() objXMLWriter.WriteStartElement("OrganLit") GenerateXMLForHymnTunes(objXMLWriter) GenerateXMLForHymnTuneNames(objXMLWriter) GenerateXMLForComposers(objXMLWriter) GenerateXMLForInstrumentations(objXMLWriter) GenerateXMLForPublishers(objXMLWriter) GenerateXMLForHymnals(objXMLWriter) GenerateXMLForHymns(objXMLWriter) GenerateXMLForBooks(objXMLWriter) GenerateXMLForWorks(objXMLWriter) objXMLWriter.WriteEndElement() objXMLWriter.WriteEndDocument() objXMLWriter.Close() Catch ex As Exception MessageBox.Show("Error in GenerateWebSite:" & ControlChars.CrLf & ex.ToString) End Try End Sub Private Sub GenerateXMLForHymnTunes(ByRef objXMLWriter As XmlTextWriter) Try Dim lintTuneCountOnPage As Integer Dim lintPageCount As Integer Dim ldbcmdHymnTuneCommand As New SqlClient.SqlCommand ldbcmdHymnTuneCommand.CommandText = "sel_hymn_tune_all" ldbcmdHymnTuneCommand.CommandType = CommandType.StoredProcedure Dim ldbdsHymnTunes As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdHymnTuneCommand) Dim ldbrwHymnTune As DataRow lintTuneCountOnPage = 0 lintPageCount = 0 objXMLWriter.WriteStartElement("HymnTunes") For Each ldbrwHymnTune In ldbdsHymnTunes.Tables(0).Rows lintTuneCountOnPage = lintTuneCountOnPage + 1 If lintTuneCountOnPage = 1 Then lintPageCount = lintPageCount + 1 End If Dim strHymnTuneBookmark As String = "Tune" & lintTuneCountOnPage Dim ldbcmdHymnTuneNameCommand As New SqlClient.SqlCommand objXMLWriter.WriteStartElement("HymnTune") objXMLWriter.WriteElementString("HymnTuneID", CType(ldbrwHymnTune.Item("hymn_tune_id"), Guid).ToString) objXMLWriter.WriteElementString("WebPageNumber", CType(lintPageCount, String)) objXMLWriter.WriteElementString("WebPageBookmark", CType(lintTuneCountOnPage, String)) objXMLWriter.WriteEndElement() 'If lintTuneCountOnPage = 50 Then ' lintTuneCountOnPage = 0 'End If Next ldbdsHymnTunes.Clear() objXMLWriter.WriteEndElement() Catch ex As Exception MessageBox.Show("Error in GenerateXMLForHymnTunes:" & ControlChars.CrLf & ex.ToString) End Try End Sub Private Sub GenerateXMLForHymnTuneNames(ByRef objXMLWriter As XmlTextWriter) Try Dim lobjHymnTuneNameCollection As System.Collections.Generic.List(Of clsHymnTuneName) = clsHymnTuneName.GetAllHymnTuneNames Dim lobjHymnTuneName As clsHymnTuneName objXMLWriter.WriteStartElement("HymnTuneNames") For Each lobjHymnTuneName In lobjHymnTuneNameCollection lobjHymnTuneName.WriteXML(objXMLWriter) Next objXMLWriter.WriteEndElement() Catch ex As Exception MessageBox.Show("Error in GenerateXMLForHymnTuneNames:" & ControlChars.CrLf & ex.ToString) End Try End Sub Private Sub GenerateXMLForComposers(ByRef objXMLWriter As XmlTextWriter) Try Dim lobjComposerCollection As System.Collections.Generic.List(Of clsComposer) = clsComposer.GetAllComposers Dim lobjComposer As clsComposer objXMLWriter.WriteStartElement("Composers") For Each lobjComposer In lobjComposerCollection lobjComposer.WriteXML(objXMLWriter) Next objXMLWriter.WriteEndElement() Catch ex As Exception MessageBox.Show("Error in GenerateXMLForComposers:" & ControlChars.CrLf & ex.ToString) End Try End Sub Private Sub GenerateXMLForInstrumentations(ByRef objXMLWriter As XmlTextWriter) Try Dim lobjInstrumentationCollection As System.Collections.Generic.List(Of clsInstrumentation) = clsInstrumentation.GetAllInstrumentations Dim lobjInstrumentation As clsInstrumentation objXMLWriter.WriteStartElement("Instrumentations") For Each lobjInstrumentation In lobjInstrumentationCollection lobjInstrumentation.WriteXML(objXMLWriter) Next objXMLWriter.WriteEndElement() Catch ex As Exception MessageBox.Show("Error in GenerateXMLForInstrumentations:" & ControlChars.CrLf & ex.ToString) End Try End Sub Private Sub GenerateXMLForPublishers(ByRef objXMLWriter As XmlTextWriter) Try Dim lobjPublisherCollection As System.Collections.Generic.List(Of clsPublisher) = clsPublisher.GetAllPublishers Dim lobjPublisher As clsPublisher objXMLWriter.WriteStartElement("Publishers") For Each lobjPublisher In lobjPublisherCollection lobjPublisher.WriteXML(objXMLWriter) Next objXMLWriter.WriteEndElement() Catch ex As Exception MessageBox.Show("Error in GenerateXMLForPublishers:" & ControlChars.CrLf & ex.ToString) End Try End Sub Private Sub GenerateXMLForHymnals(ByRef objXMLWriter As XmlTextWriter) Try Dim lobjHymnalCollection As System.Collections.Generic.List(Of clsHymnal) = clsHymnal.GetAllHymnals Dim lobjHymnal As clsHymnal objXMLWriter.WriteStartElement("Hymnals") For Each lobjHymnal In lobjHymnalCollection lobjHymnal.WriteXML(objXMLWriter) Next objXMLWriter.WriteEndElement() Catch ex As Exception MessageBox.Show("Error in GenerateXMLForHymnals:" & ControlChars.CrLf & ex.ToString) End Try End Sub Private Sub GenerateXMLForHymns(ByRef objXMLWriter As XmlTextWriter) Try Dim lobjHymnCollection As System.Collections.Generic.List(Of clsHymn) = clsHymn.GetAllHymns Dim lobjHymn As clsHymn objXMLWriter.WriteStartElement("Hymns") For Each lobjHymn In lobjHymnCollection lobjHymn.WriteXML(objXMLWriter) Next objXMLWriter.WriteEndElement() Catch ex As Exception MessageBox.Show("Error in GenerateXMLForHymns:" & ControlChars.CrLf & ex.ToString) End Try End Sub Private Sub GenerateXMLForBooks(ByRef objXMLWriter As XmlTextWriter) Try Dim lobjBookCollection As System.Collections.Generic.List(Of clsBook) = clsBook.GetAllBooks Dim lobjBook As clsBook objXMLWriter.WriteStartElement("Books") For Each lobjBook In lobjBookCollection lobjBook.WriteXML(objXMLWriter) Next objXMLWriter.WriteEndElement() Catch ex As Exception MessageBox.Show("Error in GenerateXMLForBooks:" & ControlChars.CrLf & ex.ToString) End Try End Sub Private Sub GenerateXMLForWorks(ByRef objXMLWriter As XmlTextWriter) Try Dim lobjWorkCollection As System.Collections.Generic.List(Of clsWork) = clsWork.GetAllWorks Dim lobjWork As clsWork objXMLWriter.WriteStartElement("Works") For Each lobjWork In lobjWorkCollection lobjWork.WriteXML(objXMLWriter) Next objXMLWriter.WriteEndElement() Catch ex As Exception MessageBox.Show("Error in GenerateXMLForWorks:" & ControlChars.CrLf & ex.ToString) End Try End Sub Private Sub GenerateHymnTuneBasedPage(ByVal lstrOrganLitWebPath As String, ByVal lstrXSLPath As String, ByVal lstrXMLFileName As String) Try Dim ldbcmdHymnTuneCommand As New SqlClient.SqlCommand ldbcmdHymnTuneCommand.CommandText = "sel_hymn_tune_name_distinct_id" ldbcmdHymnTuneCommand.CommandType = CommandType.StoredProcedure Dim ldbdsHymnTunes As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdHymnTuneCommand) Dim ldbrwHymnTune As DataRow For Each ldbrwHymnTune In ldbdsHymnTunes.Tables(0).Rows Dim strHymnTuneID As String strHymnTuneID = CType(ldbrwHymnTune.Item("hymn_tune_id"), Guid).ToString Dim strHymnTuneBookmark As String = "Tune" & strHymnTuneID Dim ldbcmdHymnTuneNameCommand As New SqlClient.SqlCommand Dim xslt As New System.Xml.Xsl.XslCompiledTransform xslt.Load(lstrXSLPath & "OrganLitHymnTuneBasedByTune.xsl") Dim objArgList As New System.Xml.Xsl.XsltArgumentList objArgList.AddParam("HymnTuneID", "", strHymnTuneID) Dim objTextWriter As New System.IO.FileStream(lstrOrganLitWebPath & GeneratePageNameForHymnTune(strHymnTuneID), FileMode.Create) xslt.Transform(lstrXMLFileName, objArgList, objTextWriter) objTextWriter.Close() objTextWriter.Dispose() objTextWriter = Nothing Next ldbdsHymnTunes.Clear() Catch ex As XsltException MessageBox.Show("Error in GenerateHymnTuneBasedPage:" & ControlChars.CrLf & ex.ToString) Catch ex As Exception MessageBox.Show("Error in GenerateHymnTuneBasedPage:" & ControlChars.CrLf & ex.ToString) End Try End Sub Private Function GeneratePageNameForHymnTune(ByVal strHymnTuneID As String) As String Return "hymntuneworks-" + strHymnTuneID + ".htm" End Function Private Sub GenerateNonHymnTuneBasedPage(ByVal lstrOrganLitWebPath As String, ByVal lstrXSLPath As String, ByVal lstrXMLFileName As String) Try Dim xslt As New System.Xml.Xsl.XslCompiledTransform xslt.Load(lstrXSLPath & "OrganLitNonHymnTuneBased.xsl") xslt.Transform(lstrXMLFileName, lstrOrganLitWebPath & "nonhymntuneworks.htm") Catch ex As XsltException MessageBox.Show("Error in GenerateNonHymnTuneBasedPage:" & ControlChars.CrLf & ex.ToString) Catch ex As Exception MessageBox.Show("Error in GenerateNonHymnTuneBasedPage:" & ControlChars.CrLf & ex.ToString) End Try End Sub Private Sub GenerateComposerPage(ByVal lstrOrganLitWebPath As String, ByVal lstrXSLPath As String, ByVal lstrXMLFileName As String) Try Dim xslt As New System.Xml.Xsl.XslCompiledTransform xslt.Load(lstrXSLPath & "OrganLitWorksByComposer.xsl") xslt.Transform(lstrXMLFileName, lstrOrganLitWebPath & "worksbycomposer.htm") Catch ex As XsltException MessageBox.Show("Error in GenerateComposerPage:" & ControlChars.CrLf & ex.ToString) Catch ex As Exception MessageBox.Show("Error in GenerateComposerPage:" & ControlChars.CrLf & ex.ToString) End Try End Sub Private Sub GenerateBookPage(ByVal lstrOrganLitWebPath As String, ByVal lstrXSLPath As String, ByVal lstrXMLFileName As String) Try Dim xslt As New System.Xml.Xsl.XslCompiledTransform xslt.Load(lstrXSLPath & "OrganLitWorksByBook.xsl") xslt.Transform(lstrXMLFileName, lstrOrganLitWebPath & "worksbybook.htm") Catch ex As XsltException MessageBox.Show("Error in GenerateBookPage:" & ControlChars.CrLf & ex.ToString) Catch ex As Exception MessageBox.Show("Error in GenerateBookPage:" & ControlChars.CrLf & ex.ToString) End Try End Sub Private Sub GenerateHymnTuneNameIndex(ByVal lstrOrganLitWebPath As String, ByVal lstrXSLPath As String, ByVal lstrXMLFileName As String) Try Dim xslt As New System.Xml.Xsl.XslCompiledTransform xslt.Load(lstrXSLPath & "OrganLitIndexByHymnTuneName.xsl") xslt.Transform(lstrXMLFileName, lstrOrganLitWebPath & "indexbyhymntunename.htm") Catch ex As XsltException MessageBox.Show("Error in GenerateHymnTuneNameIndex:" & ControlChars.CrLf & ex.ToString) Catch ex As Exception MessageBox.Show("Error in GenerateHymnTuneNameIndex:" & ControlChars.CrLf & ex.ToString) End Try End Sub Private Sub GenerateHymnIndex(ByVal lstrOrganLitWebPath As String, ByVal lstrXSLPath As String, ByVal lstrXMLFileName As String) Try Dim xslt As New System.Xml.Xsl.XslCompiledTransform xslt.Load(lstrXSLPath & "OrganLitIndexByHymn.xsl") xslt.Transform(lstrXMLFileName, lstrOrganLitWebPath & "indexbyhymn.htm") Catch ex As XsltException MessageBox.Show("Error in GenerateHymnIndex:" & ControlChars.CrLf & ex.ToString) Catch ex As Exception MessageBox.Show("Error in GenerateHymnIndex:" & ControlChars.CrLf & ex.ToString) End Try End Sub Private Sub GenerateBookIndex(ByVal lstrOrganLitWebPath As String, ByVal lstrXSLPath As String, ByVal lstrXMLFileName As String) Try Dim xslt As New System.Xml.Xsl.XslCompiledTransform xslt.Load(lstrXSLPath & "OrganLitIndexByBook.xsl") xslt.Transform(lstrXMLFileName, lstrOrganLitWebPath & "indexbybook.htm") Catch ex As XsltException MessageBox.Show("Error in GenerateBookIndex:" & ControlChars.CrLf & ex.ToString) Catch ex As Exception MessageBox.Show("Error in GenerateBookIndex:" & ControlChars.CrLf & ex.ToString) End Try End Sub Private Sub GenerateComposerIndex(ByVal lstrOrganLitWebPath As String, ByVal lstrXSLPath As String, ByVal lstrXMLFileName As String) Try Dim xslt As New System.Xml.Xsl.XslCompiledTransform xslt.Load(lstrXSLPath & "OrganLitIndexByComposer.xsl") xslt.Transform(lstrXMLFileName, lstrOrganLitWebPath & "indexbycomposer.htm") Catch ex As XsltException MessageBox.Show("Error in GenerateComposerIndex:" & ControlChars.CrLf & ex.ToString) Catch ex As Exception MessageBox.Show("Error in GenerateComposerIndex:" & ControlChars.CrLf & ex.ToString) End Try End Sub Private Sub GenerateRootIndex(ByVal lstrOrganLitWebPath As String, ByVal lstrXSLPath As String, ByVal lstrXMLFileName As String) File.Copy(lstrXSLPath & "index.htm", lstrOrganLitWebPath & "index.htm", True) End Sub 'Public Sub GenerateWebSite() ' Dim lcolWebHymnTuneBookmarkCollection As New Hashtable ' Dim lblnSuccess As Boolean ' Dim llngTuneArraySubCount As Long ' Dim lstrLastHymnalName As String ' Dim llngHymnTunePageToUse As Long ' Dim llngHymnTuneNameCount As Long ' Dim lstrOrganLitWebPath As String ' Dim lstrLastComposerName As String ' Dim llngPageCount As Long ' Dim llngHymnCount As Long ' Dim lstrBookmarkToUse As String ' Dim lblnFirstHymnTuneNameForTune As Boolean ' Dim objOutputFile As StreamWriter ' lstrOrganLitWebPath = "C:\Documents and Settings\Jon\My Documents\JReuss Web page\OrganLit\" ' Dim ldbcmdHymnTuneCommand As New SqlClient.SqlCommand ' ldbcmdHymnTuneCommand.CommandText = "sel_hymn_tune_all" ' ldbcmdHymnTuneCommand.CommandType = CommandType.StoredProcedure ' Dim ldbdsHymnTunes As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdHymnTuneCommand) ' Dim ldbrwHymnTune As DataRow ' llngTuneArraySubCount = 0 ' llngPageCount = 0 ' For Each ldbrwHymnTune In ldbdsHymnTunes.Tables(0).Rows ' llngTuneArraySubCount = llngTuneArraySubCount + 1 ' If llngTuneArraySubCount = 1 Then ' llngPageCount = llngPageCount + 1 ' objOutputFile = New StreamWriter(lstrOrganLitWebPath & "OrganLitPage" & llngPageCount & ".htm") ' WriteWebPageStart(objOutputFile) ' WriteAsHeadingText(objOutputFile, "Partial Listing of Hymn Tunes") ' WriteParagraphBreak(objOutputFile) ' End If ' Dim strHymnTuneBookmark As String = "Tune" & llngTuneArraySubCount ' lcolWebHymnTuneBookmarkCollection.Add(CType(ldbrwHymnTune.Item("hymn_tune_id"), Guid), New clsWebHymnTuneBookmark(CType(ldbrwHymnTune.Item("hymn_tune_id"), Guid), llngPageCount, strHymnTuneBookmark)) ' WriteBookmarkTarget(objOutputFile, strHymnTuneBookmark) ' Dim ldbcmdHymnTuneNameCommand As New SqlClient.SqlCommand ' ldbcmdHymnTuneNameCommand.CommandText = "sel_hymn_tune_name_by_hymn_tune_id" ' ' Set up parameter for stored procedure ' Dim prmHymnTuneNameID As New SqlClient.SqlParameter ' prmHymnTuneNameID.ParameterName = "@hymn_tune_id" ' prmHymnTuneNameID.SqlDbType = SqlDbType.UniqueIdentifier ' 'prmHymnTuneNameID.Size = 5 ' prmHymnTuneNameID.Value = CType(ldbrwHymnTune.Item("hymn_tune_id"), Guid) ' ldbcmdHymnTuneNameCommand.Parameters.Add(prmHymnTuneNameID) ' ldbcmdHymnTuneNameCommand.CommandType = CommandType.StoredProcedure ' Dim ldbdsHymnTuneNames As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdHymnTuneNameCommand) ' Dim ldbrwHymnTuneName As DataRow ' lblnFirstHymnTuneNameForTune = True ' For Each ldbrwHymnTuneName In ldbdsHymnTuneNames.Tables(0).Rows ' If lblnFirstHymnTuneNameForTune Then ' If ldbdsHymnTuneNames.Tables(0).Rows.Count > 1 Then ' WriteAsBoldText(objOutputFile, "Tune Name (with potential alternate names or spellings):") ' WriteLineBreak(objOutputFile) ' WriteAsBoldText(objOutputFile, " " & CType(ldbrwHymnTuneName.Item("hymn_tune_name"), String)) ' WriteLineBreak(objOutputFile) ' Else ' WriteAsBoldText(objOutputFile, "Tune Name: " & CType(ldbrwHymnTuneName.Item("hymn_tune_name"), String)) ' WriteLineBreak(objOutputFile) ' End If ' lblnFirstHymnTuneNameForTune = False ' Else ' WriteAsBoldText(objOutputFile, " " & CType(ldbrwHymnTuneName.Item("hymn_tune_name"), String)) ' WriteLineBreak(objOutputFile) ' End If ' Next ' ldbdsHymnTuneNames.Clear() ' lstrSQL = "sel_hymn_info_by_hymn_tune_id '" & ldbrwHymnTune("hymn_tune_id") & "'" ' lblnSuccess = GetDBData(ldbDatabase, lsnaHymn, "SS", lstrSQL) ' If lblnSuccess Then ' If Not lsnaHymn.EOF Then ' llngHymnCount = 0 ' Do Until lsnaHymn.EOF ' llngHymnCount = llngHymnCount + 1 ' Select Case llngHymnCount ' Case 1 ' WriteAsBoldText(objOutputFile,"Hymn(s): " & lsnaHymn("hymnal_abbreviation") & lsnaHymn("hymn_number") & " " & lsnaHymn("hymn_name")) ' WriteLineBreak(objOutputFile) ' Case Else ' WriteAsBoldText(objOutputFile, " " & lsnaHymn("hymnal_abbreviation") & lsnaHymn("hymn_number") & " " & lsnaHymn("hymn_name")) ' WriteLineBreak(objOutputFile) ' End Select ' lsnaHymn.MoveNext() ' Loop ' End If ' lsnaHymn.Close() ' End If ' lsnaHymn = Nothing ' lstrSQL = "sel_work_info_by_hymn_tune_id '" & ldbrwHymnTune("hymn_tune_id") & "'" ' lblnSuccess = GetDBData(ldbDatabase, lsnaWork, "SS", lstrSQL) ' If lblnSuccess Then ' If Not lsnaWork.EOF Then ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' Selection.TypeText(Text:="Work(s):") ' WriteLineBreak(objOutputFile) ' Do Until lsnaWork.EOF ' 'If Trim$(("" & lsnaWork("composer_name"))) <> Trim$(("" & lsnaWork("book_info_composer_name"))) Then ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' Selection.TypeText(Text:=lsnaWork("composer_name") & " ") ' 'End If ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' Selection.TypeText(Text:="""" & lsnaWork("work_name")) ' If Trim$("" & lsnaWork("opus_info")) <> "" Then ' Selection.TypeText(Text:=" - " & Trim$(lsnaWork("opus_info"))) ' End If ' Selection.TypeText(Text:="""" & " ") ' Selection.Font.Italic = True ' Selection.Font.Bold = False ' Selection.TypeText(Text:=lsnaWork("book_info_book_title") & " ") ' If Trim$(("" & lsnaWork("book_info_composer_name"))) = "" Then ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' Selection.TypeText(Text:="(Collection) ") ' Else ' If Trim$(("" & lsnaWork("composer_name"))) <> Trim$(("" & lsnaWork("book_info_composer_name"))) Then ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' Selection.TypeText(Text:=lsnaWork("book_info_composer_name") & " ") ' End If ' End If ' If Not IsNull(lsnaWork("page_number")) Then ' If lsnaWork("page_number") <> 0 Then ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' Selection.TypeText(Text:="p." & lsnaWork("page_number")) ' End If ' End If ' WriteLineBreak(objOutputFile) ' lsnaWork.MoveNext() ' Loop ' End If ' lsnaWork.Close() ' End If ' lsnaWork = Nothing ' WriteParagraphBreak(objOutputFile) ' If llngTuneArraySubCount = 30 Then ' llngTuneArraySubCount = 0 ' objOutputFile.Close() ' End If ' Next ' If llngTuneArraySubCount > 0 Then ' objOutputFile.Close() ' End If ' ldbdsHymnTunes.Clear() ' lstrSQL = "sel_hymn_info_all" ' lblnSuccess = GetDBData(ldbDatabase, lsnaHymn, "SS", lstrSQL) ' If lblnSuccess = False Then ' MsgBox("Error getting data - quitting") ' Exit Sub ' End If ' If Not lsnaHymn.EOF Then ' Documents.Add(Template:="Normal", NewTemplate:=False, DocumentType:=1) ' Selection.Font.Name = "Times New Roman" ' Selection.Font.Size = 18 ' Selection.Font.Italic = False ' Selection.Font.Bold = True ' Selection.TypeText(Text:="OrganLit Hymns") ' WriteParagraphBreak(objOutputFile) ' Selection.Font.Size = 12 ' lstrLastHymnalName = "" ' Do Until lsnaHymn.EOF ' If lstrLastHymnalName <> lsnaHymn("hymnal_name") Then ' Selection.TypeParagraph() ' Selection.Font.Italic = False ' Selection.Font.Bold = True ' Selection.TypeText(Text:=lsnaHymn("hymnal_name")) ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' WriteParagraphBreak(objOutputFile) ' lstrLastHymnalName = lsnaHymn("hymnal_name") ' End If ' llngHymnTunePageToUse = 0 ' If Not IsNull(lsnaHymn("hymn_tune_id")) Then ' GetPageNumberAndBookmarkForTune(lsnaHymn("hymn_tune_id"), llngHymnTunePageToUse, lstrBookmarkToUse) ' End If ' If llngHymnTunePageToUse = 0 Then ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' Selection.TypeText(Text:=lsnaHymn("hymnal_abbreviation") & lsnaHymn("hymn_number") & " " & lsnaHymn("hymn_name")) 'no hyperlink ' Else ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' ActiveDocument.Hyperlinks.Add(Anchor:=Selection.Range, _ ' Address:="OrganLitPage" & llngHymnTunePageToUse & ".htm", _ ' SubAddress:=lstrBookmarkToUse, _ ' ScreenTip:="", _ ' TextToDisplay:=lsnaHymn("hymnal_abbreviation") & lsnaHymn("hymn_number") & " " & lsnaHymn("hymn_name")) ' End If ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' WriteLineBreak(objOutputFile) ' lsnaHymn.MoveNext() ' Loop ' ActiveDocument.SaveAs(FileName:=lstrOrganLitWebPath & "indexbyhymn.htm", _ ' FileFormat:=wdFormatFilteredHTML, _ ' LockComments:=False, Password:="", AddToRecentFiles:=False, _ ' WritePassword:="", ReadOnlyRecommended:=False, _ ' EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, _ ' SaveFormsData:=False, SaveAsAOCELetter:=False) ' ActiveDocument.Close() ' End If ' lsnaHymn.Close() ' lsnaHymn = Nothing ' lstrSQL = "sel_hymn_tune_name_all" ' lblnSuccess = GetDBData(ldbDatabase, ldbrwHymnTune, "SS", lstrSQL) ' If lblnSuccess = False Then ' MsgBox("Error getting data - quitting") ' Exit Sub ' End If ' If Not ldbrwHymnTune.EOF Then ' Documents.Add(Template:="Normal", NewTemplate:=False, DocumentType:=1) ' Selection.Font.Name = "Times New Roman" ' Selection.Font.Size = 18 ' Selection.Font.Italic = False ' Selection.Font.Bold = True ' Selection.TypeText(Text:="OrganLit Hymn Tunes") ' WriteParagraphBreak(objOutputFile) ' Selection.Font.Size = 12 ' lstrLastHymnalName = "" ' Do Until ldbrwHymnTune.EOF ' llngHymnTunePageToUse = 0 ' If Not IsNull(ldbrwHymnTune("hymn_tune_id")) Then ' GetPageNumberAndBookmarkForTune(ldbrwHymnTune("hymn_tune_id"), llngHymnTunePageToUse, lstrBookmarkToUse) ' End If ' If llngHymnTunePageToUse = 0 Then ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' Selection.TypeText(Text:=ldbrwHymnTune("hymn_tune_name")) 'No hyperlink ' Else ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' ActiveDocument.Hyperlinks.Add(Anchor:=Selection.Range, _ ' Address:="OrganLitPage" & llngHymnTunePageToUse & ".htm", _ ' SubAddress:=lstrBookmarkToUse, _ ' ScreenTip:="", _ ' TextToDisplay:=ldbrwHymnTune("hymn_tune_name")) ' End If ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' WriteLineBreak(objOutputFile) ' ldbrwHymnTune.MoveNext() ' Loop ' ActiveDocument.SaveAs(FileName:=lstrOrganLitWebPath & "indexbyhymntune.htm", _ ' FileFormat:=wdFormatFilteredHTML, _ ' LockComments:=False, Password:="", AddToRecentFiles:=False, _ ' WritePassword:="", ReadOnlyRecommended:=False, _ ' EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, _ ' SaveFormsData:=False, SaveAsAOCELetter:=False) ' ActiveDocument.Close() ' End If ' ldbrwHymnTune.Close() ' ldbrwHymnTune = Nothing ' 'non-hymn tune based works ' lstrSQL = "sel_work_info_all_non_tune_based" ' lblnSuccess = GetDBData(ldbDatabase, lsnaWork, "SS", lstrSQL) ' If lblnSuccess = False Then ' MsgBox("Error getting data - quitting") ' Exit Sub ' End If ' Documents.Add(Template:="Normal", NewTemplate:=False, DocumentType:=1) ' Selection.Font.Name = "Times New Roman" ' Selection.Font.Size = 18 ' Selection.Font.Italic = False ' Selection.Font.Bold = True ' Selection.TypeText(Text:="OrganLit Works Not Based on Hymn Tunes") ' WriteParagraphBreak(objOutputFile) ' Selection.Font.Size = 12 ' If Not lsnaWork.EOF Then ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' Do Until lsnaWork.EOF ' 'If Trim$(("" & lsnaWork("composer_name"))) <> Trim$(("" & lsnaWork("book_info_composer_name"))) Then ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' Selection.TypeText(Text:=lsnaWork("composer_name") & " ") ' 'End If ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' Selection.TypeText(Text:="""" & lsnaWork("work_name")) ' If Trim$("" & lsnaWork("opus_info")) <> "" Then ' Selection.TypeText(Text:=" - " & Trim$(lsnaWork("opus_info"))) ' End If ' Selection.TypeText(Text:="""" & " ") ' Selection.Font.Italic = True ' Selection.Font.Bold = False ' Selection.TypeText(Text:=lsnaWork("book_info_book_title") & " ") ' If Trim$(("" & lsnaWork("book_info_composer_name"))) = "" Then ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' Selection.TypeText(Text:="(Collection) ") ' Else ' If Trim$(("" & lsnaWork("composer_name"))) <> Trim$(("" & lsnaWork("book_info_composer_name"))) Then ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' Selection.TypeText(Text:=lsnaWork("book_info_composer_name") & " ") ' End If ' End If ' If Not IsNull(lsnaWork("page_number")) Then ' If lsnaWork("page_number") <> 0 Then ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' Selection.TypeText(Text:="p." & lsnaWork("page_number") & " ") ' End If ' End If ' WriteLineBreak(objOutputFile) ' lsnaWork.MoveNext() ' Loop ' End If ' lsnaWork.Close() ' lsnaWork = Nothing ' ActiveDocument.SaveAs(FileName:=lstrOrganLitWebPath & "nonhymntuneworks.htm", _ ' FileFormat:=wdFormatFilteredHTML, _ ' LockComments:=False, Password:="", AddToRecentFiles:=False, _ ' WritePassword:="", ReadOnlyRecommended:=False, _ ' EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, _ ' SaveFormsData:=False, SaveAsAOCELetter:=False) ' ActiveDocument.Close() ' 'Works By Composer ' lstrSQL = "sel_work_info_all_composer_order" ' lblnSuccess = GetDBData(ldbDatabase, lsnaWork, "SS", lstrSQL) ' If lblnSuccess = False Then ' MsgBox("Error getting data - quitting") ' Exit Sub ' End If ' Documents.Add(Template:="Normal", NewTemplate:=False, DocumentType:=1) ' Selection.Font.Name = "Times New Roman" ' Selection.Font.Size = 18 ' Selection.Font.Italic = False ' Selection.Font.Bold = True ' Selection.TypeText(Text:="OrganLit Works By Composer") ' WriteParagraphBreak(objOutputFile) ' Selection.Font.Size = 12 ' If Not lsnaWork.EOF Then ' 'Documents.Add Template:="C:\OFS\WORDTEMPLATES\Normal.dot", NewTemplate:= _ ' ' False ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' Do Until lsnaWork.EOF ' If lstrLastComposerName <> lsnaWork("composer_name") Then ' 'With ActiveDocument.Bookmarks ' ' .Add Range:=Selection.Range, Name:="Composer" & lsnaWork("Composer.ComposerId") ' ' .DefaultSorting = wdSortByName ' ' .ShowHidden = False ' 'End With ' Selection.TypeParagraph() ' Selection.Font.Italic = False ' Selection.Font.Bold = True ' Selection.TypeText(Text:=lsnaWork("composer_name")) ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' WriteLineBreak(objOutputFile) ' lstrLastComposerName = lsnaWork("composer_name") ' End If ' Selection.Font.Italic = True ' Selection.Font.Bold = False ' Selection.TypeText(Text:=lsnaWork("book_info_book_title") & " ") ' If Trim$(("" & lsnaWork("book_info_composer_name"))) = "" Then ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' Selection.TypeText(Text:="(Collection) ") ' Else ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' Selection.TypeText(Text:=lsnaWork("book_info_composer_name") & " ") ' End If ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' Selection.TypeText(Text:="""" & lsnaWork("work_name")) ' If Trim$("" & lsnaWork("opus_info")) <> "" Then ' Selection.TypeText(Text:=" - " & Trim$(lsnaWork("opus_info"))) ' End If ' Selection.TypeText(Text:="""" & " ") ' If Not IsNull(lsnaWork("page_number")) Then ' If lsnaWork("page_number") <> 0 Then ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' Selection.TypeText(Text:="p." & lsnaWork("page_number") & " ") ' End If ' End If ' WriteLineBreak(objOutputFile) ' lsnaWork.MoveNext() ' Loop ' End If ' lsnaWork.Close() ' lsnaWork = Nothing ' ActiveDocument.SaveAs(FileName:=lstrOrganLitWebPath & "worksbycomposer.htm", _ ' FileFormat:=wdFormatFilteredHTML, _ ' LockComments:=False, Password:="", AddToRecentFiles:=False, _ ' WritePassword:="", ReadOnlyRecommended:=False, _ ' EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, _ ' SaveFormsData:=False, SaveAsAOCELetter:=False) ' ActiveDocument.Close() ' ldbDatabase.Close() ' ldbDatabase = Nothing ' 'Create main index page ' Documents.Add(Template:="Normal", NewTemplate:=False, DocumentType:=1) ' Selection.Font.Name = "Times New Roman" ' Selection.Font.Size = 18 ' Selection.Font.Italic = False ' Selection.Font.Bold = True ' Selection.TypeText(Text:="Organ Literature Index") ' WriteParagraphBreak(objOutputFile) ' Selection.Font.Size = 12 ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' ActiveDocument.Hyperlinks.Add(Anchor:=Selection.Range, _ ' Address:="indexbyhymn.htm", _ ' SubAddress:="", _ ' ScreenTip:="", _ ' TextToDisplay:="Index by Hymn") ' WriteParagraphBreak(objOutputFile) ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' ActiveDocument.Hyperlinks.Add(Anchor:=Selection.Range, _ ' Address:="indexbyhymntune.htm", _ ' SubAddress:="", _ ' ScreenTip:="", _ ' TextToDisplay:="Index by Hymn Tune") ' WriteParagraphBreak(objOutputFile) ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' ActiveDocument.Hyperlinks.Add(Anchor:=Selection.Range, _ ' Address:="nonhymntuneworks.htm", _ ' SubAddress:="", _ ' ScreenTip:="", _ ' TextToDisplay:="Organ Works Not Based on Hymn Tunes") ' WriteParagraphBreak(objOutputFile) ' Selection.Font.Italic = False ' Selection.Font.Bold = False ' ActiveDocument.Hyperlinks.Add(Anchor:=Selection.Range, _ ' Address:="worksbycomposer.htm", _ ' SubAddress:="", _ ' ScreenTip:="", _ ' TextToDisplay:="Organ Works By Composer") ' ActiveDocument.SaveAs(FileName:=lstrOrganLitWebPath & "index.htm", _ ' FileFormat:=wdFormatFilteredHTML, _ ' LockComments:=False, Password:="", AddToRecentFiles:=False, _ ' WritePassword:="", ReadOnlyRecommended:=False, _ ' EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, _ ' SaveFormsData:=False, SaveAsAOCELetter:=False) ' ActiveDocument.Close() ' MessageBox.Show("Pages have been created") 'End Sub 'Private Sub GetPageNumberAndBookmarkForTune(ByVal lguidInputTuneNameId As Guid, ByVal lcolWebHymnTuneBookmarkCollection As Hashtable, ByRef llngPageNumber As Long, ByRef lstrBookmark As String) ' llngPageNumber = 0 ' lstrBookmark = "" ' If lcolWebHymnTuneBookmarkCollection.ContainsKey(lguidInputTuneNameId) Then ' Dim objWebHymnTuneBookmark As clsWebHymnTuneBookmark = CType(lcolWebHymnTuneBookmarkCollection.Item(lguidInputTuneNameId), clsWebHymnTuneBookmark) ' llngPageNumber = objWebHymnTuneBookmark.HymnTunePage ' lstrBookmark = objWebHymnTuneBookmark.HymnTuneBookmark ' End If 'End Sub 'Private Sub WriteAsNormalText(ByRef objOutputFile As StreamWriter, ByVal strText As String) ' objOutputFile.Write(strText) 'End Sub 'Private Sub WriteAsItalicText(ByRef objOutputFile As StreamWriter, ByVal strText As String) ' objOutputFile.Write("") ' objOutputFile.Write(strText) ' objOutputFile.Write("") 'End Sub 'Private Sub WriteAsBoldText(ByRef objOutputFile As StreamWriter, ByVal strText As String) ' objOutputFile.Write("") ' objOutputFile.Write(strText) ' objOutputFile.Write("") 'End Sub 'Private Sub WriteAsBoldItalicText(ByRef objOutputFile As StreamWriter, ByVal strText As String) ' objOutputFile.Write("") ' objOutputFile.Write(strText) ' objOutputFile.Write("") 'End Sub 'Private Sub WriteAsHeadingText(ByRef objOutputFile As StreamWriter, ByVal strText As String) ' objOutputFile.Write("

") ' objOutputFile.Write(strText) ' objOutputFile.Write("

") 'End Sub 'Private Sub WriteLineBreak(ByRef objOutputFile As StreamWriter) ' objOutputFile.Write("

") 'End Sub 'Private Sub WriteParagraphBreak(ByRef objOutputFile As StreamWriter) ' objOutputFile.Write("

") 'End Sub 'Private Sub WriteWebPageStart(ByRef objOutputFile As StreamWriter) ' 'objOutputFile.Write("") 'End Sub 'Private Sub WriteBookmarkTarget(ByRef objOutputFile As StreamWriter, ByVal strBookmarkName As String) ' objOutputFile.Write("Do bookmark stuff here") ' objOutputFile.Write(strBookmarkName) 'End Sub End Module