ich habe seit Jahren die Vorlage "Einnahme-/Überschußrechnung" aus den Libreoffice-Vorlagen
http://dvd.de.libreofficebox.org/vorlag ... beispiele/ (EÜR als Vorlage) im Einsatz.
Nach dem Releasewechsel zu 4.1.4.2 bekomme ich bei Eingabe eines Belegs einen Fehler aus der Funktion neuBeleg
Code: Alles auswählen
function neuBeleg(nr as string,inc as integer,optional fmtstr as string) as string
dim iJahr As Integer
dim iJLen as integer
dim iMon As Integer
dim iMLen as integer
dim iNr As Integer
dim iNLen as integer
dim sJFmt as string
dim sMFmt as string
dim sNFmt as string
dim sResult as string
if isMissing(fmtstr) then
' Formatdefinitionen holen
iJLen=oCCTab.getCellRangeByName(cStatColumn+cJFmtRow).value
iMLen=oCCTab.getCellRangeByName(cStatColumn+cMFmtRow).value
iNLen=oCCTab.getCellRangeByName(cStatColumn+cNFmtRow).value
else
'Lib: Tools, Mod: strings,CountCharsinString(BigString, LocChar as String, ByVal StartPos as Integer) as Integer
iJLen=CountCharsinString(fmtstr,"J",1)
iMLen=CountCharsinString(fmtstr,"M",1)
iNLen=CountCharsinString(fmtstr,"n",1)
end if
'Jahr max. 4stellig
if iJLen > 4 then
iJLen=4
end if
'Monat max. 4stellig
if iMLen > 4 then
iJLen=4
end if
'Formatstrings erstellen
sJFmt=string(iJLen,"0")
sMFmt=string(iMLen,"0")
sNFmt=string(iNLen,"0")
sFormatInfo=string(iJLen,"J") & string(iMLen,"M") & string(iNLen,"n")
'Gibts schon eine Belegnummer?
if nr = "" then 'Nein, erstelle Neue aus aktuellem Datum
iJahr=year(date())
iJahr=val(mid(str(iJahr),len(str(iJahr))-iJLen+1,iJLen))
iMon=month(date())
iNr=inc
if iNr <= 0 then
iNr=1
end if
sResult=format(str(iJahr),sJFmt)&format(str(iMon),sMFmt)&format(str(iNr),sNFmt)
else 'Ja, arbeite mit dem uebergebenen Wert
'Nach einer Aenderung der Formatparameter paßt vermutlich
'das Format nicht mehr. Eine automatische Korrektur ist
'kaum möglich, da sich nicht feststellen läßt, welcher
'der 3 Teilstrings falsch ist. Nur die absolute Laenge
'läßt sich einfach vergleichen. Dabei kann es immer noch
'sein, daß sich zufaellig die gleiche Laenge ergibt.
if iJLen+iMLen+iNLen > 0 then ' alle Längen = 0 -> selbstvergebene Nummern, keine Prüfung
if len(nr) <> iJLen+iMLen+iNLen then
msgbox "Das Format der Belegnummer paßt nicht." + chr(13) + "Format: " & sFormatInfo & ", Nummer: " & nr
end if
end if
'Die Teilstrings aus der alten Nummer oder dem eingestellten Datum extrahieren
if oD1.getControl("datum").date<19990101 then
iJahr=val(left(nr,iJLen))
iMon=val(mid(nr,iJLen+1,iMLen))
else
iJahr=left(oD1.getControl("datum").date,4)
iJahr=val(right(iJahr,iJLen))
iMon=val(right(mid(oD1.getControl("datum").date,5,2),iMLen))
end if
iNr=val(right(nr,iNLen))+inc
'iNr kann nicht 0 sein
if iNr <= 0 then
iNr=1
end if
sResult=format(str(iJahr),sJFmt)&format(str(iMon),sMFmt)&format(str(iNr),sNFmt)
end if
neuBeleg=sResult
end function
BASIC-Laufzeitfehler.
Falscher Wert für Eigenschaft
und tritt bei Zeile 440
if oD1.getControl("datum").date<19990101 then
auf.
Leider bin ich nicht in der Programmierung bewandert, sodass ich den Fehler selbst nicht umgehen bzw. umprogrammieren kann.
Gibt es Hilfe,
oder sollte es wirklich ein harter Bug sein der nicht zu umgehen ist,
oder muss ich zurück auf eine Version 3.x.x.?
Ich benötige die Daten zur Erstellung meiner Einkommensteuer und kann daher nicht sehr lange auf ein neues Release warten.
Für Hilfe wäre ich sehr dankbar.
Güße lifux