Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Raimund am 10.10.02 - 13:57:28
-
Hi Entwickler,
habe mal wieder ein Problem.
Es sind 2 Agenten, welche die Sprachen etc. ändern.
Beim laden der DB wird im Queryopen bewirkt, dass in der Ansicht "Deutsch" alle Dokumente mit der deutschen Maske hinterlegt werden. Grund; wenn jemand die DB in der englischen Ansicht verlässt, so werden dann leider beim nächsten öfnen der DB in der deutschen Start-Ansicht nicht die Masken ersetzt. Da es automatisch laufen soll, habe ich es so gelöst:
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
Dim s As New NotesSession
Dim db As NotesDatabase
Dim agent As NotesAgent
Set db = s.CurrentDatabase
Set agent = db.GetAgent("German language")
If agent.Run = 0 Then
Messagebox "all documents (forms) are in the German language now",, "Referenzliste"
Else
Messagebox "Agent did not run",, "Failure"
End If
End Sub
Problem!!!
Ich habe noch eine Profil-Maske mit Server-Pfad, DB-Name und der DB-ID, welche notwendig für die Übersetzungen ist.
Öfnet man die DB so wird leider auch diese Profil-Maske mit den Eingabe-Masken ersetzt.
Wie kann ich es vermeiden, dass diese eine Maske nicht von dem Agent ersetzt werden soll??
Agent: "German language"
Sub Initialize
'Die benötigten Objektvariablen werden deklariert
Dim session As New NotesSession
Dim db As NotesDatabase
Dim col As NotesDocumentCollection
Dim doc As NotesDocument
'Die Datenbank ist die aktuelle Datenbank und die markierten Dokumente
'werden in der Dokumentensammlung gespeichert.
Set db = session.CurrentDatabase
Set col = db.AllDocuments
'Alle Dokumente der Sammlung werden bearbeitet und der Maskenname auf Eingabe
'gesetzt. Das Dokument wird gespeichert. Durch die Sammlung wird mit der Methode
'GetNthDocument navigiert.
For i = 1 To col.Count
Set doc = col.GetNthDocument(i)
doc.Form = "DokumentDE"
Call doc.Save(True, False)
Next
End Sub
Gruß
Predator
-
mal nur ein Tip am Rande:
hast Du Dich bereits einmal mit der Domino Global Workbench auseinandergesetzt? Kann ich wirklich empfehlen, weil das was Du machst ist doch eher was eigenes, gebackenes, oder?
Wenn Du die Einarbeitungszeit in dieses Multilanguage Tool von Lotus scheust (ist halb so wild), dann kannst Du auch mit Form Formulas arbeiten.
Und, wenn ich mir den Code so ansehe, dann änderst Du alle doc.Forms in der Ansicht ab, wenn der User wie auch immer deutsch/english ist? Öhm.. :o..hab ich so noch nie gesehen...ist doch eine 1 Datenbank-für-einen User-Lösung oder? Denn was machst Du, wenn 10 user parallel in die DB reingehen? Einen Haufen Save Conflicts erzeugen? Oder habe ich Dich schlicht falsch verstanden?
-
Hi,
wo finde ich dieses "Domino Global Workbench"??
Gruß
Predator
-
http://www-10.lotus.com/ldd/notesua.nsf/0b345eb9d127270b8525665d006bc355/739977041a06b141852569810054b60c?OpenDocument
http://www.lotus.com/products/dmlt.nsf
und der Download hier...sh..IBM Site...
http://www14.software.ibm.com/webapp/download/product.jsp?cat=groupware&fam=&s=s&id=NPAK-542LNH&pf=&k=&q=&dt=&v=&e=&rs=&c=&sr=1&S_TACT=&S_CMP=&presb=n&type=t&postsb=n
-
Hi,
habe eine Lüsung gefunden.
For i = 1 To col.Count
Set doc = col.GetNthDocument(i)
If doc.Form(0) = "profil" Then
Set doc = col.GetNthDocument(i)
Else
doc.form = "DokumentDE"
End If
Call doc.Save(True, False)
Next
Vielen Dank für die Links für Domino Global Workbench
Gruß
Predator