[gelöst]Benutzerdaten aus LotusNotes
Moderator: Moderatoren
[gelöst]Benutzerdaten aus LotusNotes
Hallo,
mein Problem: ich möchte gerne, dass die Benutzerdaten für Briefvorlagen oder ähnliches nicht aus OOo übernommen werden sondern, dass OOo die Benutzerdaten aus einer Lotus Notes Datenbank übernimmt.
Und das alles natürlich in einer Vorlage, damit mehrere Leute damit arbeiten können.
kann mir damit jemand helfen???
mein Problem: ich möchte gerne, dass die Benutzerdaten für Briefvorlagen oder ähnliches nicht aus OOo übernommen werden sondern, dass OOo die Benutzerdaten aus einer Lotus Notes Datenbank übernimmt.
Und das alles natürlich in einer Vorlage, damit mehrere Leute damit arbeiten können.
kann mir damit jemand helfen???
Zuletzt geändert von MoC08 am Di, 22.07.2008 15:54, insgesamt 3-mal geändert.
Re: Benutzerdaten aus LotusNotes
Mein derzeitiger Code sieht so aus:
Wenn Notes nicht geöffnet ist wird es dadurch auch geöffnet aber leider ohne irgendetwas und man kann auch nichts machen.
Ich habe es auch so probiert:
[c
Dann bekomm ich einen fehler wegen dem Initialize
Code: Alles auswählen
sub main
Dim oleService as Object
Dim oWS as Object
oleService = createUnoService("com.sun.star.bridge.oleautomation.Factory")
oWS = oleService.createInstance("Notes.NotesSession")
oWS.GetValue("UserName")
end sub
Ich habe es auch so probiert:
[c
Code: Alles auswählen
b main
Dim oleService as Object
Dim oWS as Object
oleService = createUnoService("com.sun.star.bridge.oleautomation.Factory")
oWS = oleService.createInstance("Lotus.NotesSession")
oWS.Initialize
oWS.GetValue("UserName")
end sub
Re: Benutzerdaten aus LotusNotes
So habe eine neue Richtung eingeschlagen, aber dazu brauche ich eure Hilfe und zwar kann ich mit Lotus Notes Variablen in eine .ini datei schreiben.... ist es möglich per Macro auf diese Datei zuzugreifen die 4 oder 5 Variablen auszulesen und dann an bestimmter Stelle in einer Vorlage einzufügen???
Wenn ja könnte ich etwas Code-Hilfe gebrauchen, da ich nicht wirklich viel Ahnung vom Macro-programmieren habe....
MFG
MoC08
EDIT: habe mit Hilfe der SUchfunktion etwas gefunden, damit kann ich die ini-Datei auslesen, nur wie komm ich jetzt an die Werte ran???
Hier der Code (frech kopiert vonviewtopic.php?f=18&t=1245&start=0&st=0& ... =ini+datei)
Wenn ja könnte ich etwas Code-Hilfe gebrauchen, da ich nicht wirklich viel Ahnung vom Macro-programmieren habe....
MFG
MoC08
EDIT: habe mit Hilfe der SUchfunktion etwas gefunden, damit kann ich die ini-Datei auslesen, nur wie komm ich jetzt an die Werte ran???
Hier der Code (frech kopiert vonviewtopic.php?f=18&t=1245&start=0&st=0& ... =ini+datei)
Code: Alles auswählen
Sub IniLesen
' 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 'die berühmte Zählvariable i
'Initialiserung
'----------------------------------------
W_Anzahl = 0 'Die Anzahl der eingelesenen Werte ist momentan ja noch nicht groß
On Error GoTo Fehler 'Fehler führen hiermit zum Abbruch (zum Debuggen auskommentieren)
'Jetzt geht es los, ich versuche die Daten einzulesen und muss diese dazu erst einmal öffnen:
'--------------------------------------------------------------------------------------------
DateiNr = freefile 'freie Dateinummer ermitteln
'Fehler führen hiermit zum Abbruch (zum Debuggen auskommentieren)
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, "WindowSizeBrowseDForms")
loop until Position > 0
'Wenn ich nicht mit EOF abgeflogen bin, geht es hier weiter
'Nun werden die Werte und Wertenamen extrahiert und in das Datenarray übernommen
'-------------------------------------------------------------------------------
do 'dazu ist eine Schleife die beste Wahl der Waffen
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 hoch
ReDim Preserve Werte(W_Anzahl,1) 'Array vergrößern
else 'ansonsten könnte es sein, dass eine fehlerhafte Zeile vorgekommen ist, oder die nächste sektion beginnt
Position = Instr (Zeile, "[") + Instr (Zeile, "]") 'daher prüfe ich mal, ob die beien markanten Zeichen für eine neue Sektion vorkommen
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
msgbox
Exit Sub
Re: Benutzerdaten aus LotusNotes/Neuer Lösungsweg => Macro-Hilfe
Hier die Lösung:
In Notes selber wird mittels folgenden Code die Variablen in der notes.ini Datei gespeichert:(Start=Start ist der Startpunkt für OOo um die Variablen zu übernehmen)
Dann wird die ini von OOo geöffnet die Werte in Variablen konvertiert und letzt endlich durch SearchAndReplace in der Vorlage ersetzt:
[[/code]
In Notes selber wird mittels folgenden Code die Variablen in der notes.ini Datei gespeichert:(Start=Start ist der Startpunkt für OOo um die Variablen zu übernehmen)
Code: Alles auswählen
@Environment("Start";"Start");
@Environment("Uname";@Name([CN];@UserName));
[
Code: Alles auswählen
ub 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)
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
Re: [gelöst]Benutzerdaten aus LotusNotes
Codet ihr im Notes?
Wie das denn?
Wie das denn?
red2sign verwendet WinXP Prof. und OO3 [Developers Snapshot (BEB300m3) Build: 9328]
Re: [gelöst]Benutzerdaten aus LotusNotes
Irgendwie versteh ich deine Frage nicht so ganz....