So ich hab jetzt mal einfach so probiert, da du dich ja nicht gemeldet hast:
shell "C:/Programme/IBM/Lotus/Notes/notes.exe", "C:/Programme/IBM/Lotus/Notes/test.ndl"
die Zeile startet auch tatsächlich notes nur wie komm ich jetzt an die Infos in der DB??
Entschuldige, aber: Du bist kein Programmierer (das wurde jetzt schon klar ...), und das gilt sowohl für IBM Lotus Notes als auch für OpenOffice. Wie stellst Du Dir dann aber vor, wie Du solch eine Programmieraufgabe lösen möchtest? Wir helfen ja gerne, aber hier würde das doch auf "andere machen Deinen Job" hinaus laufen. Diese Sache ist sowieso schon komplex, aber wenn das Null-Wissen dahinter steht ...
Bernhard
PS: Ich stand gerade vor der Entscheidung, unseren 11 Jahre alten und wohlgedienten Zweitwagen noch mal durch den TÜV zu bringen oder verschrotten zu lassen. Einer sagt: Schweller und Auspuff flicken wir selbst (Heimwerker-Szenario. Kosten ungewisss ...). Die freie Werkstatt sagt: Das kriegen wir schon hin. Am Schweller kann man ... und am Auspuff muss nur ... 400 EUR. Sicher durch den TÜV? Danach sicher fahren? (!!!) "Naja, das hält noch ein Jahr!". Hmm.
Die Fachwerkstatt, die den Wagen nun wirklich regelmässig betreut hat (viel gab es nicht zu tun): "Ja nicht wegschmeissen!! Für die Presse viel zu schade! Schweller, Auspuff, Radlager vorne rechts und noch ein paar Kleinigkeiten - der erste Aufwand für das Auto - und dann steht er auch noch die HU 2010 durch und läuft wirklich sicher!". Kosten: 900 EUR. Meine Entscheidung war sehr einfach.
Erstmal habe ich nicht die Möglichkeit eine Entscheidung zu treffen, ich muss es halt machen und zweitens hab ichs zumindest für mich und auch hoffentlich meine Firma ausreichend hinbekommen....
Und zwar habe ich die Tipps von BubbleBoy aufgenommen und hab mit dem Befehl:
Die Variablen in die ini-Datei geschrieben und diese dann mit OOo geöffnet nach dem Startpunkt gesucht und dann simpel über SearchAndReplace in die Vorlage reingeschmissen....
Danke für die kostruktive Hilfe an alle, die hilfreiche Beiträge geschrieben haben und hier ist mein OOo-Code für die Interessierten:
Sub SearchAndDestroy
' Variablendeklaration:
'-----------------------
dim DateiNr as Integer 'Dateinummer für einen freien Dateikanal
dim Zeile as String 'Variable für die aktuell aus der Datei eingelesenen Zeile
dim Position as Integer 'Positionsangabe für die Suche nach Elementen zur Zeilenzerlegung
dim Werte(0,1) as String 'Array für die aus der Ini eingelesenen Werte (1. Element(0) = Name , 2. Element(1) = Wert)
dim W_Anzahl as Integer 'Zähler für die Werteanzahl, die eingelesen wurde
dim i as integer 'Zählvariable
'Initialiserung
'----------------------------------------
W_Anzahl = 0 'Die Anzahl der eingelesenen Werte auf 0 setzten
'ini-Datei öffnen:
'--------------------------------------------------------------------------------------------
DateiNr = freefile 'freie Dateinummer ermitteln
Open "c:\notes.ini" for input as DateiNr 'INI öffnen
'Nun muss die relevante Sektion gefunden werden:
'-----------------------------------------------
do
Line Input #DateiNr, Zeile
Position = Instr (Zeile, "$Start=Start")
loop until Position > 0
'Nun werden die Werte und Wertenamen extrahiert und in das Datenarray übernommen
'-------------------------------------------------------------------------------
do
Line Input #DateiNr, Zeile 'es wird die nächste Zeile eingelesen
Position = Instr (Zeile, "=") 'und die Position des Zeichens = ermittelt
if Position > 0 then 'dann wurde das Zeichen gefunden
Werte (W_Anzahl,0) = mid(Zeile, 1, Position - 1) 'und es kann der Parametername in das Array übernommen werden
Werte (W_Anzahl,1) = mid(Zeile, Position + 1, len(Zeile) 'dazu kommt jetzt noch der Parameterwert in´s Array
W_Anzahl = W_Anzahl + 1 'Wertezähler 1 hoch
ReDim Preserve Werte(W_Anzahl,1) 'Array vergrößern
else 'ansonsten könnte es sein, dass eine fehlerhafte Zeile vorgekommen ist
Position = Instr (Zeile, "[") + Instr (Zeile, "]")
if Position > 1 then exit Do 'dann beginnt vermutlich eine neue Sektion und das Einlesen ist beendet
end if
loop until EOF(DateiNr) 'wenn keine neue Sektion kommt, dann geht es bis zum Dateiende weiter
Close #DateiNr 'die Datei brauche ich jetzt nicht mehr, ich habe alles im Array
Uname = Werte(0,1) 'Variablen für die ausgelesenen Werte setzten
SHname = Werte(1,1)
Ophone = Werte(2,1)
Ofax = Werte(3,1)
Iadr = Werte(4,1)
'ab hier laufen die Suchen
'-------------------------------------------------
Dim oDoc As Object
Dim oSearch As Object, nTimes As Long
oDoc = ThisComponent
aSearch = oDoc.createReplaceDescriptor
with aSearch
.SearchString = "Fname"
.ReplaceString = Uname
.SearchWords = true
end with
nTimes = oDoc.replaceAll(aSearch)
bSearch = oDoc.createReplaceDescriptor
with bSearch
.SearchString = "FSHname"
.ReplaceString = SHname
.SearchWords = true
end with
nTimes = oDoc.replaceAll(bSearch)
cSearch = oDoc.createReplaceDescriptor
with cSearch
.SearchString = "Ftel"
.ReplaceString = Ophone
.SearchWords = true
end with
nTimes = oDoc.replaceAll(cSearch)
dSearch = oDoc.createReplaceDescriptor
with dSearch
.SearchString = "Ffax"
.ReplaceString = Ofax
.SearchWords = true
end with
nTimes = oDoc.replaceAll(dSearch)
eSearch = oDoc.createReplaceDescriptor
with eSearch
.SearchString = "Fadr"
.ReplaceString = Iadr
.SearchWords = true
end with
nTimes = oDoc.replaceAll(eSearch)
End Sub
So hab den passenden Code für OOo, mit dem es zumindest angeblich funktionieren sollte, aber ich scheiter leider bei der Übersetzung in LotusScript....
hier der UrCode:
Dim oOpenProperties(0) as new com.sun.star.beans.PropertyValue
' 0: execute macros with no warning message
oOpenProperties( 0 ).Name = _
"MacroExecutionMode"
oOpenProperties( 0 ).Value = _
com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE_NO_WARN ' value 4
Set objDoc = objDskTop.loadComponentFromUrl(docUrl, "_blank", 0, oOpenProperties() )
und hier meine Übersezung: (bringt Fehlermeldung: Subscript out of range)
Dim SM As Variant
Dim Desktop As Variant
Dim oOpenProperties()
Set SM=CreateObject("com.sun.star.ServiceManager")
Set Desktop=SM.createInstance("com.sun.star.frame.Desktop")
'0: execute macros with no warning message
oOpenProperties(0).Name = "MacroExecutionMode"
oOpenProperties(0).Value = "com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE_NO_WARN" ' value 4
Dim objDocument As Variant
Set objDocument=Desktop.loadComponentFromURL("file:///c:/BriefVorlage01.ott","_blank",0,oOpenProperties())
das öffnen eines OO Dokumentes sieht bei mir so aus:
Dim ooDoc, ooDesk, PropertyValue()
FilePath$ = "... Datei welche geöffnet werden soll ..."
FilePath$ = replace( FilePath$, ":", "|" )
FilePath$ = "file:///" + replace( FilePath$, "\", "/" )
FilePath$ = replace(FilePath$, " ","%20")
Set ooDesk= word.createInstance("com.sun.star.frame.Desktop")
Set ooDoc = ooDesk.loadComponentFromURL(FilePath$, "_default", 0,PropertyValue)
Wenn es nicht am Filepath liegt (: mit | ersetzen), funktioniert es denn bei Dir ohne den Werten in PropertyValue?
Nach doch sehr langem Kampf hab ichs hinbekommen :D
hier der Code:
'öffnet OOo
Dim SM As Variant
Dim Desktop As Variant
Set SM=CreateObject("com.sun.star.ServiceManager")
Set Desktop=SM.createInstance("com.sun.star.frame.Desktop")
'setzt die Makrosicherheit ganz runter
Dim args As Variant
Set args= SM.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
args.Name = "MacroExecutionMode"
args.Value = 4
Dim argsReal(0) As Variant
Set argsReal(0) = args
'öffnet die leere OOo-Vorlage
Dim objDocument As Variant
Set objDocument=Desktop.loadComponentFromURL("file:///c:/Eigene Dateien/BriefVorlage01.ott","_blank",0,argsReal)