Da man sich die Lösung des Problems Rechnungsnummer sehr mühsam in diesem Forum erarbeiten muss, schreib ich fix ein kleines Tutorial für alle Nachfolgenden. Fakt ist: Es gibt eine praktikable Lösung.
Kurzbeschreibung der Lösung:Die Rechnungsnummer liegt in einer Datei. Per Script wird die Nummer ausgelesen und in ein Textfeld in TextMaker eingefügt. Das Script wird über einen Button in TextMaker ausgeführt. Dadurch wird mit dem Mausklick alles erledigt.
Tutorial:1. Rechnungsvorlage erstellen.
Dort ein Textfeld mit dem Namen "rechnungsnummer" erstellen (Objekt > Neues Formularobjekt > Textfeld, im Objektmodus die Objekteigenschaften ändern > Eigenschaften > Name).
Ich habe außerdem ein Textfeld "datum" angelegt, in dem ich das Rechnungsdatum im Script gleich mit generiere. Schließlich gehört die Erstellung der Rechnungsnummer und das Datum zusammen.
2. BasicMaker öffnen und folgendes Script einfügen:
Code:
Sub GlobalNumbering
' Hier Pfad und Dateiname zur Datei mit der Rechnungsnummer aendern:
rechnungsdatei = "d:\_bastimedia\bastimedia\Vorlagen\Rechnungsnummer.txt"
Dim tm As Object
Set tm = CreateObject("TextMaker.Application")
If tm.Documents.Count = 0 Then
MsgBox "Sie haben kein Dokument geoeffnet!"
Stop
End If
Open rechnungsdatei For Input As #1
Input #1, num
Close #1
T1 = Now
' Hier wird die Rechnungsnummer generiert. Das Format laesst sich leicht aendern:
rechnungsnummer = Format(num,"00") & "/" & Year(T1)
tm.ActiveDocument.FormFields("rechnungsnummer").TextInput.Text = rechnungsnummer
' Die folgende Zeile traegt das aktuelle Datum in das entsprechende Feld ein.
' Auf Wunsch diese Zeile durch entfernen des Hochkommas aktivieren:
tm.ActiveDocument.FormFields("datum").TextInput.Text = Format(Day(T1),"00") & "." & Format(Month(T1),"00") & "." & Year(T1)
num = num + 1
Open rechnungsdatei For Output As #1
Print #1, num
Close #1
Set tm = Nothing
MsgBox "Rechnungsnummer & Datum eingefuegt!"
End Sub
Das Script den eigenen Wünschen evtl. anpassen und speichern, z.B. als C:\Rechnungsnummer.bas
3. Rechnungsnummer-Datei anlagen.
Im Beispiel oben wäre das die Datei "c:\Rechnungsnummer.txt". Lässt sich natürlich nach belieben ändern. In der Datei muss zu Beginn eine 1 (oder auch andere Zahl) stehen. Dies ist dann die erste Rechnungsnummer.
4. Button in Textmaker erzeugen.
Rechtsklick auf die gewünschte Toolbar > Anpassen...
Gruppe "Benutzer" auswählen
Als Befehl einen beliebigen freien Befehl auswählen
Auf Bearbeiten... klicken
Die Befehlszeile lautet: BasicMaker.exe /s "C:\Rechnungsnummer.bas"
Beschreibung und Symboldatei sind frei wählbar
5. FERTIG
Ein Klick auf das Symbol in der Toolbar fügt die nächste Rechnungsnummer ein (WICHTIG: BasicMaker sollte dabei geschlossen sein!).
Anpassungen / Erweiterungen:Die Vorschrift zur Erzeugung lässt sich ziemlich frei programmieren. Ich verwende das Format XX/JAHR als z.B. 43/2011.
Im Script oben ist die Zeile zum einfügen des aktuellen Datums noch deaktiviert. Das ist aber eine feine Sache. Zumal man mit dem Datum im Textdokument auch noch rechnen kann. Um zum Beispiel das Zahlungsziel in 14 Tagen einzufügen reicht folgende Berechnung (F2 zum Einfügen einer drücken):
Code:
NTOD(DTON(DATUM)+14)
DATUM ist hierbei der Name des Textfeldes, worauf auch BasicMaker zugreift.
Am Anfang des Jahres muss je nach Rechnungsnummernsystem die Datei manuell auf 1 gesetzt werden.
Ich hoffe, die Anleitung ist verständlich und hilfreich. Fehler korrigiere ich gern.
Das Script läuft mit SMOffice 2008 und 2010.