WRITER: Verknüpfungen zu CALC beim Öffnen aktualisieren

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

Moderator: Moderatoren

KingEisbaer
**
Beiträge: 31
Registriert: Mi, 02.01.2013 18:46

WRITER: Verknüpfungen zu CALC beim Öffnen aktualisieren

Beitrag von KingEisbaer »

Hallo,

Habe das Problem das folgendes Makro nicht funktioniert:

Code: Alles auswählen

sub main
sFile = "E:\Arbeitsplan GH Test.odt" ' Windows
sURL = ConvertToURL(sFile)
oDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Array())
End sub
Das Write-Dokument wird richtig aus einen Calc-Dokument geöffnet mit dem Makro. Nun aber das Problem:
Das Write-Dokument hat Verknüpfungen, die mit dem öffnen des Macro nicht aktualisiert werden? Wieso werden die nicht aktualisiert.
Die Verknüpfungen beziehen sich auf das Calc-Dokument, woraus das Write-Dokument mit dem Macro geöffnet wird.

Außerdem soll das Write-Dokument im Hintergrund geöffnet werden, aktualisiert werden und unter einem neuen Namen abgespeichert werden. Der Name zum Abspeichern soll aus zwei Verknüpfungen des Write-Dokument zusammengesetzt werden.

Kann mir jemand beim Anpassen des Makros helfen.


Moderation,4: verschoben in BASIC-Unterbereich, wo alle Makro-Fragen hin gehören; Betreff angepasst
Systeminformationen
Betriebssystem: Windows 7 Ultimative
OpenOffice Version: 3.4.1
F3K Total
********
Beiträge: 3723
Registriert: Mo, 28.02.2011 17:49

Re: WRITER: Verknüpfungen zu CALC beim Öffnen aktualisieren

Beitrag von F3K Total »

Versuche mal dies:

Code: Alles auswählen

sub S_open_linked_Writer
    thisComponent.store
    dim args(0) as  new com.sun.star.beans.PropertyValue
    args(0).Name = "UpdateDocMode"
    args(0).Value = 1
    sFile = "E:\Arbeitsplan GH Test.odt" ' Windows
    sURL = ConvertToURL(sFile)
    oDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, args)
End sub
GR
KingEisbaer
**
Beiträge: 31
Registriert: Mi, 02.01.2013 18:46

Re: WRITER: Verknüpfungen zu CALC beim Öffnen aktualisieren

Beitrag von KingEisbaer »

Danke funktioniert
Systeminformationen
Betriebssystem: Windows 7 Ultimative
OpenOffice Version: 3.4.1
KingEisbaer
**
Beiträge: 31
Registriert: Mi, 02.01.2013 18:46

Re: WRITER: Verknüpfungen zu CALC beim Öffnen aktualisieren

Beitrag von KingEisbaer »

Hallo nun habe ich noch folgendes Problem:

Code: Alles auswählen

REM  *****  BASIC  *****
sub S_open_linked_Writer
    thisComponent.store
    dim args(0) as  new com.sun.star.beans.PropertyValue
    args(0).Name = "UpdateDocMode"
    args(0).Value = 1
    sFile = "E:\Arbeitsplan Vorlage.odt" ' Windows
    sURL = ConvertToURL(sFile)
    oDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, args)

'Speichern
   dim dummy()
   datei="E:\TEST.odt"
   dateiurl=converttourl(datei)
   odoc=thisComponent
   odoc.storeasurl(dateiurl,dummy())
rem oder
rem    odoc.storetourl(dateiurl,dummy())
End Sub
Dieses Makro wird aus einer Calc-Tabelle ausgeführt und öffnet ein Write-Dokument, was Verknüpfungen zu der Calc-Tabelle hat.
Dies funktioniert auch soweit, aber das Makro mit dem speichern, speichert das Calc-Dokument. Aber es soll das Write-Dokument unter einen anderen Namen speichern.
Die beiden Funktionen sollen aber eben nur mit einmal ausführen des Makro erledigt werden. Dabei soll aber der Name zum Speichern des Write.Dokument aus dem Write-Dokument geholt werden.

Hoffe es kann mir einer helfen beim anpassen des Makros.

Gruß
KingEisbaer
Systeminformationen
Betriebssystem: Windows 7 Ultimative
OpenOffice Version: 3.4.1
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: WRITER: Verknüpfungen zu CALC beim Öffnen aktualisieren

Beitrag von Karolus »

Hallo
Überschreibe die Variable 'odoc' eben nicht mit:

Code: Alles auswählen

odoc = thisComponent
Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
KingEisbaer
**
Beiträge: 31
Registriert: Mi, 02.01.2013 18:46

Re: WRITER: Verknüpfungen zu CALC beim Öffnen aktualisieren

Beitrag von KingEisbaer »

Okay danke und was muss dort hin um das andere dokument zu speicher? Oder bleibt das leer.
Systeminformationen
Betriebssystem: Windows 7 Ultimative
OpenOffice Version: 3.4.1
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: WRITER: Verknüpfungen zu CALC beim Öffnen aktualisieren

Beitrag von Karolus »

Hallo
Ausprobieren bitte!

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
KingEisbaer
**
Beiträge: 31
Registriert: Mi, 02.01.2013 18:46

Re: WRITER: Verknüpfungen zu CALC beim Öffnen aktualisieren

Beitrag von KingEisbaer »

Konnte jetzt erst testen, aber hat geklappt.

Code: Alles auswählen

odoc = thisComponent
den einfach komplett weglassen.

Kann mir eventuell noch einer helfen, wie man den Code

Code: Alles auswählen

REM  *****  BASIC  *****
sub S_open_linked_Writer
    thisComponent.store
    dim args(0) as  new com.sun.star.beans.PropertyValue
    args(0).Name = "UpdateDocMode"
    args(0).Value = 1
    sFile = "E:\Arbeitsplan Vorlage.odt" ' Windows
    sURL = ConvertToURL(sFile)
    oDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, args)

'Speichern
   dim dummy()
   datei="E:\TEST.odt"
   dateiurl=converttourl(datei)
   odoc.storeasurl(dateiurl,dummy())
rem oder
rem    odoc.storetourl(dateiurl,dummy())
End Sub
anpassen kann, damit teile des Dateinamen direkt aus dem Dokument geholt und abspeichert werden können. Es handelt sich um Dokumente die wochenweise erstellt werden und unter dem Wochendatum abgespeichert werden sollen. Das Wochendatum steht im Dokument. Das Wochendatum soll aber dem Dokumenten-Namen hinzugefügt werden.
Beispiel: Wochenarbeitsplan xx.xx.xxx bis xx.xx.xxx.
Das x steht für das jeweilige aktuelle Datum, was in dem Dokument steht. Sprich, das x verändert sich immer im Datum, nur das Wort Wochenarbeitsplan bleibst bestehen.

Es handelt sich um OpenOffice Write-Dokument.

Danke
Systeminformationen
Betriebssystem: Windows 7 Ultimative
OpenOffice Version: 3.4.1
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: WRITER: Verknüpfungen zu CALC beim Öffnen aktualisieren

Beitrag von balu »

Hallo KingEisbaer,

ich fasse mich kurz.
Dieses Makro wird aus einer Calc-Tabelle ausgeführt
teile des Dateinamen direkt aus dem Dokument geholt und abspeichert werden können
Wenn Du schon in Calc bist, dann mach dich mit diesen Punkten vertraut:
7.1.1 Wie bekomme ich Zugriff zu einer Zelle?
7.1.10 Wie kann man Werte einer Zelle lesen und schreiben?

Dann dürfte das jetzt auch zu verstehen sein.

Code: Alles auswählen

Dim sFileName1 as String
Dim sDatum as String
sFileName1 = "Wochenarbeitsplan_"
sDatum = DateValue(thisComponent.Sheets(0).getCellRangeByName("B7").String)
Print sFileName1 & sDatum
DateValue siehe OnlineHilfe (F1).
Print ist nur als Bildschirmausgabenbeispiel gedacht, um dir zu zeigen wie verkettet wird. Du kannst dann Print durch einen Variablennamen für den Dateinamen ersetzen.

Ich hoffe das es dir hilft.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
KingEisbaer
**
Beiträge: 31
Registriert: Mi, 02.01.2013 18:46

Re: WRITER: Verknüpfungen zu CALC beim Öffnen aktualisieren

Beitrag von KingEisbaer »

Hallo,

leider verstehe ich das nicht wie ich beide Codes miteinander verbinde???
der ist zum abspeichern des Dokuments

Code: Alles auswählen

'Speichern
   dim dummy()
   datei="E:\TEST.odt"
   dateiurl=converttourl(datei)
   odoc.storeasurl(dateiurl,dummy())
rem oder
rem    odoc.storetourl(dateiurl,dummy())
und der soll dafür sein, damit der Dateiname aus dem Dokument genommen wird.

Code: Alles auswählen

Dim sFileName1 as String
Dim sDatum as String
sFileName1 = "Wochenarbeitsplan_"
sDatum = DateValue(thisComponent.Sheets(0).getCellRangeByName("B7").String)
Print sFileName1 & sDatum
aber wenn ich sie untereinander schreibe passiert nichts. Er speichert immer noch mit den alten Dateinamen??
Leider ist es mein erstes mal, das ich ein makro selber schreibe.

Danke
Systeminformationen
Betriebssystem: Windows 7 Ultimative
OpenOffice Version: 3.4.1
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: WRITER: Verknüpfungen zu CALC beim Öffnen aktualisieren

Beitrag von balu »

Hallo KingEisbaer,
Leider ist es mein erstes mal, das ich ein makro selber schreibe.
Na dann wolln ma dir a bisserl helfen.

Auch wenn ich dir nur 2 Links gepostet hatte, so solltest Du dir die Seite, die die beiden links enthalten, mal etwas genauer anschauen. Oder um es dir einfacher zu machen: Guckst Du hier
Die Seiten von Dannenhöfer sind wirklich zu empfehlen. Nur musst Du dich halt damit auch befassen. Und was storeasurl und storetourl betrifft, so schau mal dort z.B. bei "6. Speichern/Öffnen/Drucken von Dateien" rein.


Nun zu den Code. Der müsste jetzt theoretisch wie folgt aussehen.

Code: Alles auswählen

Dim sFileName1 as String
Dim sDatum as String
Dim sNeuerName as String
dim dummy()

	sFileName1 = "Wochenarbeitsplan_"
	sDatum = DateValue(thisComponent.Sheets(0).getCellRangeByName("B7").String)
	sNeuerName = "E:\" & sFileName1 & sDatum & ".odt"

		print sNeuerName

	dateiurl = converttourl(sNeuerName)
		print dateiurl
	odoc.storeAsURL(dateiurl,dummy())
Theoretisch deshalb, weil Du ihn noch an deine Bedürfnisse anpassen musst. Sprich: In welchem Tabellenblatt befindet sich die Zelle mit dem Datum?
Und die beiden Print Anweisungen dienen nur zur Kontrolle, die kannst und darfst Du natürlich löschen.

Kommst Du nun weiter?



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
juetho
******
Beiträge: 617
Registriert: Di, 20.04.2010 15:46
Wohnort: Berlin

Re: WRITER: Verknüpfungen zu CALC beim Öffnen aktualisieren

Beitrag von juetho »

(Das Folgende war meine Antwort zu seiner neuen, unpassenden Frage Makros anpssen.)
KingEisbaer hat geschrieben:Das Makro soll das Write-Dokument unter dem Namen "Wochenarbeitsplan" + Datum (was aus dem Calc-Dokument geholt wird) neu abgespeichert werden.
Das funktioniert leider nicht.
Immer diese unnötigen Nachfragen. Was genau funktioniert nicht, und woran erkennst du das?
* Wird keine Datei gespeichert?
* Wird der falsche Dateiname gewählt?
* Oder das falsche Dateiformat?
* Oder der falsche Dateiinhalt?
* Gibt es eine Fehlermeldung? Wenn ja: welche und bei welcher Zeile?
* Und vorsichtshalber gleich noch: Welches Programm, welche Version, welches Betriebssystem + Version?

Nach dem neuen Dateinamen fehlt ein Speichern-Befehl. Das ist hoffentlich nicht der eigentliche Fehler, sondern hängt nur mit deinen Versuchen zusammen.

Jürgen
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
KingEisbaer
**
Beiträge: 31
Registriert: Mi, 02.01.2013 18:46

Re: WRITER: Verknüpfungen zu CALC beim Öffnen aktualisieren

Beitrag von KingEisbaer »

Danke hat super geklappt. :D :D :D
Systeminformationen
Betriebssystem: Windows 7 Ultimative
OpenOffice Version: 3.4.1
Antworten