schon wieder : addNewByName

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: schon wieder : addNewByName

Beitrag von komma4 »

Gast hat geschrieben:Die Namensbereiche werden zwar angelegt, jedoch rechnet calc nicht mit diesen Bereichen. Zumindestens nicht in den Dokumenten, welche aus der von mir erstellten Vorlage erzeugt werden.
...habe mir Deinen Code nicht angeschaut - nur ein paar Anmerkungen:

* Deine Optionen stehen auf "automatisch berechnen"?
* Du hast bei den Berechnungen Bereiche verwendet? Und nach Änderungen in den Datenbereichen per Code "Bereich aktualisieren" aufgerufen?
* bei der Verwendung von Calc-Daten in "Serienbriefen" kommt es leider immer noch zu einem Bug, dass OOo eine geöffnete Verbindung cached und deshalb nicht direkt in den Dokumenten updated. [seit 1.1.x gemeldetes issue, Target=3.0; Workaround: schliessen (inkl. Schnellstarter); Nummer müsste ich raussuchen]. Werden die Dokumente auch nach einem kompletten Neustart nicht korrekt erstellt?

HTH
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
gschuckar
****
Beiträge: 140
Registriert: Fr, 24.02.2006 14:27

[gelöst]Re: schon wieder : addNewByName

Beitrag von gschuckar »

komma4 hat geschrieben:
Gast hat geschrieben:Die Namensbereiche werden zwar angelegt, jedoch rechnet calc nicht mit diesen Bereichen. Zumindestens nicht in den Dokumenten, welche aus der von mir erstellten Vorlage erzeugt werden.
...habe mir Deinen Code nicht angeschaut - nur ein paar Anmerkungen:

* Deine Optionen stehen auf "automatisch berechnen"?
Ja
* Du hast bei den Berechnungen Bereiche verwendet? Und nach Änderungen in den Datenbereichen per Code "Bereich aktualisieren" aufgerufen?
Nein, das mach ich jetzt gleich mal. Der Punkt ist mir nicht bekannt.
* bei der Verwendung von Calc-Daten in "Serienbriefen" kommt es leider immer noch zu einem Bug, dass OOo eine geöffnete Verbindung cached und deshalb nicht direkt in den Dokumenten updated. [seit 1.1.x gemeldetes issue, Target=3.0; Workaround: schliessen (inkl. Schnellstarter); Nummer müsste ich raussuchen]. Werden die Dokumente auch nach einem kompletten Neustart nicht korrekt erstellt?
Genau, auch nach einem kompletten neustart werden die Dokumente nicht korrekt erstellt.

HTH
Gruß
Gerd Schuckar
Zuletzt geändert von gschuckar am Di, 09.10.2007 23:43, insgesamt 1-mal geändert.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: schon wieder : addNewByName

Beitrag von komma4 »

gschuckar hat geschrieben:Genau, auch nach einem kompletten neustart werden die Dokumente nicht korrekt erstellt.
Aber die Bereiche werden "angelegt", wie Du schreibst????
Dann können doch nur die neuen Werte nicht im bezogenen Bereich sein...?!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
gschuckar
****
Beiträge: 140
Registriert: Fr, 24.02.2006 14:27

Re: schon wieder : addNewByName

Beitrag von gschuckar »

komma4 hat geschrieben:
gschuckar hat geschrieben:Genau, auch nach einem kompletten neustart werden die Dokumente nicht korrekt erstellt.
Aber die Bereiche werden "angelegt", wie Du schreibst????
Dann können doch nur die neuen Werte nicht im bezogenen Bereich sein...?!
Sind sie aber. Schau Dir doch mal die Files im Ordner Haus ohne den Code zu installieren an. Es gibt dort ein file, das funktioniert. Auf der Titelseite werden die berrechneten daten korrekt angezeigt. Das funktionierende File hat den Namen 'EnergieTestHauptWophnung.ods'
Gruß
Gerd
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: schon wieder : addNewByName

Beitrag von komma4 »

gschuckar hat geschrieben:Sind sie aber. Schau Dir doch mal die Files im Ordner Haus ohne den Code zu installieren an. Es gibt dort ein file, das funktioniert.

Gerd,

was soll das bringen eine "funktionierende Datei" anzuschauen...???
Schau Du dir mal die Unterschiede zu einer nicht funktionierenden Datei an: wenn es prinzipiell -bei einer Datei- funktioniert, dann sitzt der Fehler vor'm Bildschirm. Ist nicht böse gemeint, weisst Du hoffentlich.


Egal: muss nun mal gerade weg, meine Frau hat gerufen!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
gschuckar
****
Beiträge: 140
Registriert: Fr, 24.02.2006 14:27

Re: schon wieder : addNewByName

Beitrag von gschuckar »

komma4 hat geschrieben: was soll das bringen eine "funktionierende Datei" anzuschauen...???
Schau Du dir mal die Unterschiede zu einer nicht funktionierenden Datei an: wenn es prinzipiell -bei einer Datei- funktioniert, dann sitzt der Fehler vor'm Bildschirm. Ist nicht böse gemeint, weisst Du hoffentlich.
Ja, ich weis. ich hab ja auch schon an mir gezweifelt:-). Aber mal im Ernst. An der funktionierenden Datei kannst Du(könnt Ihr) erkenne(n), was ich meine. Das Kuriose ist, das die nicht funktionierende Datei genauso aufgebaut ist und eben nicht funktioniert. Vielleicht drücke ich mich ja auch etwas komisch aus.
Nehmen wir den Code mal weg. Der ist ja nur für die Dateneingabe, kan man auch by hand machen, zuständig. Mit jeder Eingabe wächst der Datenbereich um eine Zeile. Dieser ist nicht benannt. Benannt sind die Spalten im Datenbereich, die ich für die entsprechenden Berrechnungen benötige. Also z.Bsp. ablese_jahr, ablese_monat, verbrauch_gas, etc. Die Formel auf der Titelseite:=SUMMEWENN(ablese_jahr;"=2007";verbrauch_gas) benutzt in der funktionierenden Datei genau diese Namen und rechnet wie gewünscht. In der nicht funktionierenden werden die Spalten eben mit Code benannt. In den Bereichen stehen Werte. Und mit diesen wird eben leider nicht gerrechnet. Lösche ich die vom Code erstellten Namen und lege diese manuell neu fest, dann funktioniert das Ganze.
Gruß
Gerd Schuckar
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: schon wieder : addNewByName

Beitrag von komma4 »

Gast hat geschrieben:habe ich diesem Posting ein zip Archiv beigelegt
PEBKAC
Kein Archiv zu sehen...
gschuckar hat geschrieben:Lösche ich die vom Code erstellten Namen und lege diese manuell neu fest, dann funktioniert das Ganze.
ergo liegt der Fehler bei der Vergabe des Namens: Gross-/Kleinschreibung beachtet, angehängtes Leerzeichen, ...?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
gschuckar
****
Beiträge: 140
Registriert: Fr, 24.02.2006 14:27

Re: schon wieder : addNewByName

Beitrag von gschuckar »

komma4 hat geschrieben:
Gast hat geschrieben:habe ich diesem Posting ein zip Archiv beigelegt
PEBKAC
Kein Archiv zu sehen...
ergo liegt der Fehler bei der Vergabe des Namens: Gross-/Kleinschreibung beachtet, angehängtes Leerzeichen, ...?
Sorry, ich lese gerade: Die datei ist zu groß.
Ich komprimiere das mal und melde mich wieder
Gruß
Gerd
gschuckar
****
Beiträge: 140
Registriert: Fr, 24.02.2006 14:27

Re: schon wieder : addNewByName

Beitrag von gschuckar »

Hallo Leute,
also, ich versuche eine andere Lösung zu finden. Im Englischen Forum hatte schon mal jemand genau das gleiche Problem, nachzulesen unter 'NamedRange and calculateAll' . Es wurde keine Lösung gefunden. Vielen Dank an alle, die versucht haben zu helfen.
Gruß
Gerd Schuckar
gschuckar
****
Beiträge: 140
Registriert: Fr, 24.02.2006 14:27

[gelöst]Re: schon wieder : addNewByName

Beitrag von gschuckar »

Hallo Leute,
Das folgendeCodefragment ist falsch:

Code: Alles auswählen

Rem iActRow sei z.Bsp 7
with thisDocument.NamedRanges
	if .hasByName("ablese_datum") then
		.removeByName("ablese_datum")
	end if
	.addNewByName("ablese_datum","$Ablesungen.$A3:$A" & iActRow,oCellAdress,0)	
end with
Richtig muss es sein:

Code: Alles auswählen

Rem iActRow sei z.Bsp 7
with thisDocument.NamedRanges
	if .hasByName("ablese_datum") then
		.removeByName("ablese_datum")
	end if
	.addNewByName("ablese_datum","$Ablesungen.$A$3:$A$" & iActRow,oCellAdress,0)	
end with
Die fehlenden Dollarzeichen sind der Knusus Knacktus
Puh, war das ne Geburt
Gruß
Gerd Schuckar
Antworten