Ich habe da was zusammengebastelt, um über einen selbst eingefügten Menüpunkt via Dialog/ListBox das Erstellen von Kopfzeilen in Calc nach einem bestimmten Muster zu automatisieren. Funktioniert soweit schon mal.
Mittels der Befehle "additem" und "removeitems" kann ich die vorgegebenen Listen-Einträge der ListBox auch nach Belieben abändern. Diese Änderungen gelten aber nur, bis ich den Dialog wieder schliesse. Beim nächsten Öffnen des Dialogs, geschweige denn beim nächsten Start von Openoffice, sind wieder die ursprünglich vordefinierten Einträge vorhanden.
Ich möchte aber neue Projekt hinzufügen können, die für längere Zeit vordefiniert bestehen/gespeichert bleiben und dann irgendwann bei Nichtgebrauch wieder gelöscht werden.
Habe ich per Makro die Möglichkeit, die vordefinierten Werte unter "Listen-Einträge" in "Dialog/ListBox" bleibend zu verändern?
Für einen Schubs in die richtige Richtung wäre ich sehr dankbar.
Gruss, eve
(absoluter beginner)
Code: Alles auswählen
' dialog "global" definieren, damit in den einzelnen makros klar ist worum das es geht
Private kopfDialog
Sub kopfdialogdefinieren
kopfDialog = LoadDialog( "Standard" , "projektauswahlkopfzeile" )
End Sub
' dialog kopfzeile starten via eingefügtem menüpunkt
Sub kopfzeilendialog
DialogLibraries.LoadLibrary( "Standard" )
kopfDialog = CreateUnoDialog( DialogLibraries.Standard.projektauswahlkopfzeile )
kopfDialog.Execute()
end sub
'inputbox für neues projekt mit entsprechendem button starten und projekt an bestehende liste anhängen
'funktioniert im moment nur, bis der dialog geschlossen wird, beim nächsten aufruf
'ist wieder die ursprüngliche auswahl eingetragen
Private bauvorhaben
sub neuesprojekt
bauvorhaben = InputBox("neues Projekt hinzufügen:",, "b a u v o r h a b e n")
Dim nCount As Integer
kopfDialogModel = kopfDialog.getModel()
kopflistbox = kopfDialog.getControl("projektliste")
nCount = kopflistbox.getItemCount()
kopflistbox.addItem( bauvorhaben, nCount )
end sub
'ausgewähltes projekt mit entsprechendem button löschen
sub projektweg
kopfDialogModel = kopfDialog.getModel()
kopflistbox = kopfDialog.getControl("projektliste")
'auswahl = kopfDialog.getControl("auswahl")
kopflistbox.removeItems(SelectItemPos, 1)
'Dim objList As Object
'lstEntries = Dlg.getControl("lstEntries")
'lstSelection = Dlg.getControl("lstSelection")
'If lstEntries.SelectedItem > 0 Then
'lstSelection.AddItem(lstEntries.SelectedItem, 0)
'lstEntries.removeItems(lstEntries.SelectItemPos, 1)
end sub
'dialogkopfzeile abbrechen-button schliesst einfach nur das dialogfeld
Sub abbrechen
kopfDialogModel = kopfDialog.getModel()
kopfDialog.endexecute()
End Sub
'über den ok-button die gewünschte kopfzeile erstellen mit den richtigen schriftformatierungen
sub kopfzeileerstellen
'variablen setzen
Dim document As Object
Dim StyleFamilies As Object
Dim PageStyles As Object
Dim DefPage As Object
Dim HText As Object
Dim HContent As Object
Dim projekt As String
Dim datei as Object
Dim seitenzahl as Object
Dim seitentotal as Object
Dim ordner as String
document = StarDesktop.CurrentComponent
StyleFamilies = document.StyleFamilies
PageStyles = StyleFamilies.getByName("PageStyles")
DefPage = PageStyles.getByName("Default")
datei = document.createInstance("com.sun.star.text.TextField.FileName")
datei.setPropertyValue("FileFormat",1)
seitenzahl = document.createInstance("com.sun.star.text.TextField.PageNumber")
seitentotal = document.createInstance("com.sun.star.text.TextField.PageCount")
kopfDialogModel = kopfDialog.getModel()
kopflistbox = kopfDialog.getControl("projektliste")
projekt = kopflistbox.SelectedItem
'ordnerabfrage
ordner = InputBox("in welchem ordner befindet sich die datei?",, "offerten")
'kopfzeile aufschalten und definieren
DefPage.HeaderIsOn = True
DefPage.HeaderIsShared = True
HContent = DefPage.RightPageHeaderContent
'links
kopflinksText = HContent.LeftText
oCursor = kopflinksText.createTextCursor()
kopflinksText.String = "k / "
oCursor.setPropertyValue("CharFontName", "Helvetica Neue")
oCursor.setPropertyValue("CharHeight", 7)
oCursor.setPropertyValue("CharWeight", 70)
kopflinksText.insertString(oCursor, projekt , FALSE)
kopflinksText.insertString(oCursor," / "& ordner & " / ", FALSE)
'dateiname anhängen
kopflinksText.insertTextContent(oCursor, datei , FALSE)
kopflinksText.insertString(oCursor, Chr(13) & Chr(13) & Chr(13) & Chr(13) & Chr(13), FALSE)
'mittle leer
kopfmitteText = HContent.CenterText
kopfmitteText.String = ""
'rechts
kopfrechtsText = HContent.RightText
oCursor = kopfrechtsText.createTextCursor()
kopfrechtsText.String = "vorname nachname"
oCursor.setPropertyValue("CharFontName", "Helvetica Neue")
oCursor.setPropertyValue("CharHeight", 7)
oCursor.setPropertyValue("CharWeight", 90)
oCursor = kopfrechtsText.createTextCursor()
kopfrechtsText.insertString(oCursor,Chr(13),FALSE)
oCursor.setPropertyValue("CharFontName", "Helvetica Neue")
oCursor.setPropertyValue("CharHeight", 7)
oCursor.setPropertyValue("CharWeight", 70)
kopfrechtsText.insertString(oCursor,"adresse" & Chr(13) & "ort" & Chr(13) & "telefon" & Chr(13) & Chr(13),FALSE)
'seitenzahlen anfügen
kopfrechtsText.insertTextContent(oCursor, seitenzahl , FALSE)
kopfrechtsText.insertString(oCursor,"/", FALSE)
kopfrechtsText.insertTextContent(oCursor, seitentotal , FALSE)
DefPage.RightPageHeaderContent = HContent
'fusszeile ausschalten
DefPage.FooterIsOn = False
'dialog schliessen
kopfDialogModel = kopfDialog.getModel()
kopfDialog.endexecute()
end sub