🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Vorlage mit Macro läuft nicht mehr

Alles zur Programmierung im LibreOffice.
Antworten
lifux
Beiträge: 3
Registriert: Di 28. Jan 2014, 18:03

Vorlage mit Macro läuft nicht mehr

Beitrag von lifux » Di 28. Jan 2014, 19:07

Hallo Community,
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
Der Fehler ist:

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

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2539
Registriert: Fr 10. Dez 2010, 10:01

Re: Vorlage mit Macro läuft nicht mehr

Beitrag von karolus » Mi 29. Jan 2014, 01:08

Hallo

Nein es ist kein Bug sondern nur eine Änderung der API
Siehe http://api.libreoffice.org/docs/idl/ref ... 1Date.html

und http://de.openoffice.info/viewtopic.php ... ct#p237106

Melde dich nochmal wenn du es nicht alleine schaffst.

Karolus
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

lifux
Beiträge: 3
Registriert: Di 28. Jan 2014, 18:03

Re: Vorlage mit Macro läuft nicht mehr

Beitrag von lifux » Mi 29. Jan 2014, 16:10

Hallo Karolus,

vielen Dank für die schnelle Antwort.

Wie ich schon schrieb bin ich in der Programmierung überhaupt nicht bewandert. Was ich verstanden habe ist,
dass sich die Definition des Feldes Date gegenüber früher geändert hat. Aber wo in welcher Zeile, oder wie durch welche Befehle,
habe ich nicht durchschaut. Ich habe mich den ganzen Tag bemüht die Syntax der Programmierung zu verstehen, aber leider
habe ich noch keine Erleuchtung.

Ich wäre dir sehr dankbar wenn Du mir sagen könntest was in welchen Zeilen geändert werden muss.

Wenn es dann läuft könnte man die Version zu den Vorlagen aufnehmen, da sicherlich andere die Vorlage ebenfalls benutzen bzw.
noch benutzen wollen.

Gruß
lifux

pmoegenb

Re: Vorlage mit Macro läuft nicht mehr

Beitrag von pmoegenb » Mi 29. Jan 2014, 17:09

Das Projekt EÜR für OpenOffice und LibreOffice wurde eingestellt. Eine Alternative findest Du hier.

lifux
Beiträge: 3
Registriert: Di 28. Jan 2014, 18:03

Re: Vorlage mit Macro läuft nicht mehr

Beitrag von lifux » Mi 29. Jan 2014, 18:11

Hallo Peter,

vielen Dank für deinen Hinweis, aber viele mir bekannten Nutzer und auch ich, können leider nicht so schnell auf ein neues Projekt umsteigen,
da die Jahresabschlüsse anliegen.

Ist Dir bekannt ob JES weiterentwickelt wird, sodass man langfristig einen Umstieg planen kann?

Gruß lifux


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten