...nur zur vorsicht..... Habt ihr groß und kleinschreibung beachtet..?
Beiträge von pascal_x
-
-
GetNextDocument-Methode in LotusScript, NotesView-Klasse
GetNextDocument-Methode in LotusScript, NotesViewNavigator-Klasse -
....vielleicht hilft dir Dieser Code weiter..... und schau mal im "Lotus Connectors Guide" der Designer Hilfe nach "oledb"
Code
Alles anzeigenUselsx "*lsxlc" Sub Initialize Dim ses As New Lcsession ' In an LEI Scripted Agent, use the following syntax instead: ' Dim session As New LCSession ("mySession") Dim con As New Lcconnection("oledb") con.provider = "Microsoft.Jet.OLEDB.4.0" ' use Access 2000 database con.server = "C:\AccessData\DogData.mdb" con.metadata = "DogDob" ' Contains dog's name and date of birth. con.Connect Dim confldlst As New Lcfieldlist, count As Long Dim nameFld As LCField, dateOfBirth As LCField con.writeback = True count = con.Select(Nothing, 1, confldlst) ' Get a "handle" to each of the fields in the list returned by Selection. Set nameFld = confldlst.GetField(1) ' locate field by position Set dateOfBirth = confldlst.Lookup("DateOfBirth") ' locate field by name. ' Either works. While (con.Fetch (conFldLst) > 0) Print "Name=" & nameFld.Text(0) & ", " _ "DateOfBirth=" & dateOfBirth.Text(0) ' If this dog's name is Tracy, change it to Tyler. If nameFld.text(0) = "Tracy" Then nameFld.text = "Tyler" ' Now write the change back to the database. Call con.Update(confldlst) Print "Changed name to Tyler." End If Wend con.Action(LCACTION_COMMIT) End Sub
-
... mit der Methode db.search kannst Du doch ein Cutoff-Datum übergeben...
notesDatabase.Search( formula$, notesDateTime, maxDocs% )
Du deklarierst Dir vorher ein neues NotesDate und füllst es mit deinem Datumswert aus der Maske. Dann ziehst Du die 90 Tage ab und übergibst es als Argument.
-
...eine Alternative wäre eine Maske anzulegen die Du nur zum Drucken verwendest. In dieser Maske kannst Du dann das Layout so vornehmen, dass es passt.
-
...stimmt :strike: so funktionierts....
danke..
-
Hi Leute.
Wie kann man am einfachsten mittels Formelsprache abfragen, ob sich eine bestimmte Ansicht in einer gewählten Datenbank befindet?
Viele Grüße von Pascal.
-
Stimmt. So wie Diali es schon am Anfang erwähnte hat es funktioniert. Ich übergebe die UNID von Uidoc1 an Uidoc2 und greife mir Uidoc1 dann per getdocumentbyUNID und editdocument.
Hatte nur vorher vergessen die richtigen Parameter zu übergeben.
Vielen Dank an alle.
-
Ich muss doch aber uidoc1 irgendwie an das neue Dokument übergeben, wenn ich es von dort aus verändern möchte...... und genau hier lag ja mein Problem.....
Ich hab uidoc1 zwar in den globals von uidoc2 deklariert aber es bleibt nothing......
-
....das ist ja mein Problem....-
Das Dokument ist offen aber das 2 daraus erstellte Dokument ist ja im Vordergrund. Heisst also "ws.CurrentDocument" greift das aktuelle. Ich will aber das darunter haben.
Über backend ist es mist solange das Dokument noch im Frontend geöffnet ist. Das gibt dann einen Konflikt.
Am liebsten würde ich das untere Dokument gleich im Speicher behalten solange ich das obere bearbeite. Kann ich das nicht irgendwie mit übergeben während ich das obere Doc erstelle??
-
Hallo Diali.
Ja so wäre das super.... Aber wie greife ich mir das erste Dokument als UIDoc? Mit ws.EditDocument?
-
Hi Leute.
Ich hab da eine etwas verzwickte Situation.
Ich habe ein Notes Dokument aus dem heraus ich mittels einer Aktion ein weiteres Dokument erstelle. Das neue Dokument ist kein Antwortdokument und kann auch nicht in einer DialogBox geöffnet werden.
Wie stelle ich es an, dass das erste Dokument als UiDoc im Speicher bleibt, so dass ich abhängig von den Werten im Neuen Dokument ein paar werte im darunterliegenden Dokument ändern kann??
Viele Grüße von Pascal.
-
...Yo es hat funktioniert!
Allerdings kann man die ProfileDocCollection nur einmal pro NotesSession aufrufen. Wenn man innerhalb derselben Session die Dokumente nochmal bearbeiten möchte funktioniert es nicht..... Muss man also Notes neustarten bevor man die Profildokumente ein zweites mal bearbeitet.
Und wie ich es mir dachte werden die Änderungen nicht an das Profil des momentan angemeldeten Benutzers weitergegeben weil das ja im Cache verweilt. Aber das ist das kleinere Übel. Mein eigenes Profil kann ich ja selbst einstellen.
-
Mein script sieht so aus:
Code
Alles anzeigenSub Click(Source As Button) Dim se As New NotesSession, _ coll As NotesDocumentcollection, _ pd As NotesDocument, _ itm As NotesItem, _ db As NotesDatabase, _ fldName$, fldValue$, i As Integer Set ud = ws.CurrentDocument fldName = "ZuAenderndesFeld" fldValue = "Neuer Wert" Set db = se.CurrentDatabase Set coll = db.GetProfileDocCollection("frUserProfile") Set pd = coll.GetFirstDocument i = 0 While Not (pd Is Nothing) i = i + 1 Set itm = pd.GetFirstItem(fldName) Call pd.ReplaceItemValue(fldName, fldValue) If pd.Save(True, True) = False Then Msgbox "Speichern fehlgeschlagen!", 64, "Fehler" End If Set pd = coll.GetNextDocument(pd) Wend Msgbox Cstr(i) & " Dokumente wurden aktualisiert", 64, "Profile bearbeiten" End Sub
Nachdem ich dieses Script laufenlassen habe starte ich die Datenbank neu und schaue ich mir stichprobenartig einige Profildokumente an. Dazu verwende ich Call ws.EditProfile("Profilmaske", "NameDesProfilinhabers")
-
....ups :idea: .....ist ja peinlich :roll: .......
Danke!
-
Hi Leute.
Wie ja allgemein bekannt ist wird das Benutzerprofil einer Datenbank im Cache ausgelagert. Ich gehe davon aus, dass immer nur das Profil des jeweiligen Users ausgelagert wird. Nun habe ich aber ein Problem.
Ich möchte mit *.getprofiledoccollection und einer Schleife alle Profildokumente in der Datenbank aktualisieren. Leider werden die Änderungen trotz doc.save nicht übernommen. Auch nach nochmaligem Starten der Datenbank ändert sich nichts.
Beim gerade geöffneten Profil könnte ich das ja noch verstehen aber die anderen Profile dürften doch nicht gecached sein oder...??
Hat jemand eine Idee??
Viele Grüße von Pascal.
-
...hmm dachte ich mir schon...:hammer: Trotzdem danke schön.
Dann werd ich mir wohl nen Feld erstellen müssen und es per postopen-script befüllen.... -
Die Zeit die Lotus übernimmt ist immer die Systemzeit auf dem die Datenbank ausgeführt wird. D.h. Wenn Du lokal arbeitest so wird die Systemzeit Deiner Workstation verwendet. Arbeitest Du auf dem Server so wird die Systemzeit vom Server übergeben.
Ich würde also mal schauen ob nicht vielleicht eine von beiden Systemzeiten noch auf Sommerzeit läuft. :roll:
-
Hi Leute.
Ich steh gerade nen wenig auf dem Schlauch. Ich möchte mir per Formel alle Namen anzeigen lassen die einer bestimmten Rolle zugeordnet sind..... z.B. "Zeige alle Mitglieder der Rolle [DAU]"
Viele Grüße von Pascal.
-
Ein Array ist ja nur eine Wertliste die Du mit "InStr" oder "@Contains" abrfagen kannst.