Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/LibreOffice/wizards/source/template/   (Office von Apache Version 25.8.3.2©)  Datei vom 5.10.2025 mit Größe 7 kB image not shown  

Quelle  ModuleAgenda.xba   Sprache: unbekannt

 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
<!--
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
-->
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="ModuleAgenda" script:language="StarBasic">' All variables must be declared before use
Option Explicit

' Used for "disabling" the cancel button of the dialog
Public DialogExited As Boolean
Dim DlgAgenda_gMyName as String
Public TemplateDialog as Object
Public DialogModel as Object
Public sTrueContent as String
Public Bookmarkname as String



Sub Initialize()
' User sets the type of minutes
        BasicLibraries.LoadLibrary( "Tools" )
 TemplateDialog = LoadDialog("Template", "TemplateDialog")
 DialogModel = TemplateDialog.Model
 DialogModel.Step = 1
 LoadLanguageAgenda()
 DialogModel.OptAgenda2.State = TRUE
 GetOptionValues()
 DialogExited = FALSE
 TemplateDialog.Execute
End Sub


Sub LoadLanguageAgenda()
 If InitResources("'Template'") Then
  DlgAgenda_gMyName = GetResText("AgendaDlgName")
  DialogModel.CmdCancel.Label = GetResText("STYLES_2")
  DialogModel.CmdAgdGoon.Label = GetResText("STYLES_3")
'  DlgAgenda_gMsgNoCancel$ = GetResText("AgendaDlgNoCancel")
  DialogModel.FrmAgenda.Label = GetResText("AgendaDlgFrame")
  DialogModel.OptAgenda1.Label = GetResText("AgendaDlgButton1")
  DialogModel.OptAgenda2.Label = GetResText("AgendaDlgButton2")
'  DialogModel.OptAgenda1.State = 1
 End If
End Sub


Sub ModifyTemplate()
Dim oDocument, oBookmarks, oBookmark, oBookmarkCursor, oTextField as Object
Dim i as Integer

  oDocument = ThisComponent
 oBookMarks = oDocument.Bookmarks

 On Local Error Goto NOBOOKMARK
 TemplateDialog.EndExecute
 DialogExited = TRUE
 oBookmarkCursor = CreateBookmarkCursor(oDocument, BookmarkName)
 oBookmarkCursor.Text.insertString(oBookmarkCursor,"",True)
 ' Delete all the Bookmarks except for the one named "NextTopic"
 For i = oBookmarks.Count-1 To 0 Step -1
  oBookMark = oBookMarks.GetByIndex(i)
  If oBookMark.Name <> "NextTopic" Then
   oBookMark.Dispose()
  End If
 Next i
 oBookMarkCursor = CreateBookmarkCursor(oDocument, "NextTopic")
 If Not IsNull(oBookMarkCursor) Then
  oTextField = oBookMarkCursor.TextField
'  oTextField.TrueContent =  sTrueContent
  oTextField.Content = sTrueContent
 End If

 NOBOOKMARK:
 If Err <> 0 Then
  RESUME NEXT
 End If
End Sub


Sub NewTopic
' Add a new topic to the agenda
Dim oDocument, oBookmarks, oBookmark, oBookmarkCursor, oTextField as Object
Dim oBaustein, oAutoText, oAutoGroup as Object
Dim i as Integer

   oDocument = ThisComponent
 oBookMarkCursor = CreateBookMarkCursor(oDocument, "NextTopic")
 oTextField = oBookMarkCursor.TextField
 oAutoText = CreateUnoService("com.sun.star.text.AutoTextContainer")
 If oAutoText.HasbyName("template") Then
  oAutoGroup = oAutoText.GetbyName("template")
  If oAutoGroup.HasbyName(oTextField.Content) Then
   oBaustein = oAutoGroup.GetbyName(oTextField.Content)
   oBaustein.ApplyTo(oBookMarkCursor)
  Else
   Msgbox("AutoText '" & oTextField.Content & "' is not existing. Cannot insert additional topic!")
  End If
 Else
  Msgbox("AutoGroupField template is not existing. Cannot insert additional topic!", 16, DlgAgenda_gMyName )
 End If
End Sub



' Add initials, date and time at bottom of agenda, disable and hide command buttons
Sub FinishAgenda
Dim BtnAddAgendaTopic As Object
Dim BtnFinishAgenda As Object
Dim oUserField, oDateTimeField as Object
Dim oBookmarkCursor as Object
Dim oFormats, oLocale as Object
Dim iDateTimeKey as Integer

        BasicLibraries.LoadLibrary( "Tools" )
  oDocument = ThisComponent

 oUserField = oDocument.CreateInstance("com.sun.star.text.TextField.ExtendedUser")
 oUserField.UserDatatype = com.sun.star.text.UserDataPart.SHORTCUT

 oDateTimeField = oDocument.CreateInstance("com.sun.star.text.TextField.DateTime")

 ' Assign Standardformat to Datetime-Textfield
 oFormats = oDocument.Numberformats
 oLocale = oDocument.CharLocale
 iDateTimeKey = oFormats.GetStandardFormat(com.sun.star.util.NumberFormat.DATETIME,oLocale)
 oDateTimeField.NumberFormat = iDateTimeKey

 oBookmarkCursor = CreateBookmarkCursor(oDocument, "NextTopic")
 oBookmarkCursor.Text.InsertTextContent(oBookmarkCursor,oUserField,False)
 oBookmarkCursor.Text.InsertString(oBookmarkCursor," ",False)
 oBookmarkCursor.Text.InsertTextContent(oBookmarkCursor,oDateTimeField,False)
 BtnAddAgendaTopic = getControlModel(oDocument, "BtnAddAgendaTopic")
 BtnFinishAgenda = getControlModel(oDocument, "BtnFinishAgenda")
 If Not IsNull(BtnAddAgendaTopic) Then BtnAddAgendaTopic.Enabled = FALSE
 If Not IsNull(BtnFinishAgenda) Then BtnFinishAgenda.Enabled = FALSE
End Sub


Function CreateBookMarkCursor(oDocument as Object,sBookmarkName as String)
 oBookMarks = oDocument.Bookmarks
 If oBookmarks.HasbyName(sBookmarkName) Then
  oBookMark = oBookMarks.GetbyName(sBookmarkName)
  CreateBookMarkCursor = oBookMark.Anchor.Text.CreateTextCursorByRange(oBookMark.Anchor)
 Else
  Msgbox "Bookmark " & sBookmarkName &  " is not defined!"
 End If
End Function



Sub DeleteButtons
Dim AgendaFinished As Boolean
Dim BtnAddAgendaTopic As Object
Dim BtnFinishAgenda As Object

  oDocument = ThisComponent

 BtnAddAgendaTopic = getControlModel(oDocument, "BtnAddAgendaTopic")
 BtnFinishAgenda = getControlModel(oDocument, "BtnFinishAgenda")

 ' If buttons could be accessed: If at least one button is disabled, then agenda is finished
 AgendaFinished = FALSE
 If Not IsNull(BtnAddAgendaTopic) Then
  AgendaFinished = (AgendaFinished Or (BtnAddAgendaTopic.Enabled = FALSE))
 End If

 If Not IsNull(BtnFinishAgenda) Then
  AgendaFinished = (AgendaFinished Or (BtnFinishAgenda.Enabled = FALSE))
 End If

 ' Delete Buttons, empty rows at end of document & macro bindings if agenda is finished
 If AgendaFinished Then
  DisposeControl(oDocument, "BtnAddAgendaTopic")
  DisposeControl(oDocument, "BtnFinishAgenda")

  oBookmarkCursor = CreateBookMarkCursor(oDocument,"NextTopic")
  oBookMarkCursor.GotoEnd(True)
  oBookmarkCursor.Text.insertString(oBookmarkCursor,"",True)

  AttachBasicMacroToEvent(oDocument,"OnNew", "")
  AttachBasicMacroToEvent(oDocument,"OnSave", "")
  AttachBasicMacroToEvent(oDocument,"OnSaveAs", "")
  AttachBasicMacroToEvent(oDocument,"OnPrint", "")
 End If
End Sub



Sub GetOptionValues(Optional aEvent as Object)
Dim CurTag as String
Dim Taglist() as String
 If Not IsMissing(aEvent) Then
  CurTag = aEvent.Source.Model.Tag
 Else
  If DialogModel.OptAgenda1.State = TRUE Then
   CurTag = DialogModel.OptAgenda1.Tag
  Else
   CurTag = DialogModel.OptAgenda2.Tag
  End If  
 End If
 Taglist() = ArrayoutOfString(CurTag, ";")
 Bookmarkname = TagList(0)
 sTrueContent = TagList(1)
End Sub

</script:module>

[ Dauer der Verarbeitung: 0.17 Sekunden  (vorverarbeitet)  ]