Hallo!
Ich möchte Den Inhalt von Textfeldern per Button-Klick speichern. undzwar so, das Notes auch nicht mehr fragt beim schliessen. Wie muss ich mir das vorstellen unter Notes? Gibt es da nen paar Zeilen Code?
MfG
Matthias Nordwig
Hallo!
Ich möchte Den Inhalt von Textfeldern per Button-Klick speichern. undzwar so, das Notes auch nicht mehr fragt beim schliessen. Wie muss ich mir das vorstellen unter Notes? Gibt es da nen paar Zeilen Code?
MfG
Matthias Nordwig
Ok hat sich erledigt. Ich habs mir gerade selbst beantwortet. Steht alles in meinem schlauen Büchlein.
OK! Ich bin jetzt doch auf ein Problem gestoßen.
Das ist mein Code:
Dim workspace As New notesuiworkspace
Dim docCur As notesuidocument
Set docCur = workspace.currentdocument
docCur.save
Dieser Code speichert auch tatsächlich ab. Allerdings erzeugt er dabei immer ein neues Dokument.
Ich möchte jedoch alles an einen Zeiger binden. Also das Dokument immer an der selben Stelle abspeichern. Wie ist das realisierbar?
Dein Code-Auszug ist i.O.
Kann es sein, dass in der Maske beim Speichern noch anderer Code ausgeführt wird?
Schau auch mal in den Masken-Eigenschaften, was bei der Versionskontrolle eingestellt ist.
Gruß
Dirk
Hi!
Ja den hier führe ich noch beim Event "Entering" des Feldes "Pfad" aus, dessen um das gespeicherte auch sichtbar werden zu lassen:
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As notesdocumentcollection
Dim nd As notesdocument
Dim ws As New notesUiWorkspace
Dim docCur As notesdocument
'--------------------------------------------------------------
'Arbeitsfläche in Lotus
Set docCur = ws.currentdocument.document
Set db = session.currentdatabase
Set view = db.GetView("Eingangx")
Set dc = db.AllDocuments
'--------------------------------------------------------------
For i=1 To dc.count
Set nd=dc.getNthDocument(i)
If nd.form(0)="Felder" Then
docCur.Pfad=nd.Pfad
End If
Next
Alles anzeigen
verwende anstelle der For-Schleife und GetNthDocument besser eine While-Schleife und GetNextDocument. Ist schneller. GetNthDocument beginnt bei jedem Aufruf mit 0 zu zählen
set doc = dc.GetFirstDocument
While not doc is Nothing
...
set doc = dc.getNextDocument(doc)
Wend
Hast Du mal nach der Masken-Eigenschaft gesehen?
Gruß
Dirk
Versionskontrolle steht bei mir auf "keine".
Wozu ist die denn überhaupt gedacht?
schau mal in die Designer-Hilfe unter "Felder zur Versionskontrolle" und "Versionskontrolle", dort ist es im Detail erklärt.
Gruß
Dirk
Ok. Ich weis jetzt was das ist. Aber keine Versionskontrolle müsste ja dann meine Wahl sein. Ich habe es ausserdem mit "Neue Versionen werden Antworten" und "Manuell-Dateio..."
probiert. Klappt aber trotzdem net. Er speichert zwar ab und lädt auch beim Laden die richtigen Werte. Aber er erzeugt beim Abspeichern noch immer neue Dokumente.
Aber die Schleife hab ich eingebaut ^^.
Vielleicht nochmal zur Erklärung: Ich möchte den Pfad ganz simpel abspeicehrn, so das der User einen Pfad auswählen kann dieser Pfad soll der Standartpfad zum Abspeichern von Werten in einer Excel-Datei sein. Und wenn ich folgenden Code ausführe:
(Man beachte dazu die MsgBox dann muss man net allet durchlesen )
Sub Initialize()
Const RowStart = 1, ColStart = 3
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As notesdocumentcollection
Dim nd As notesdocument
Dim workspace As New notesuiworkspace
Dim docCur As notesuidocument
Dim xl As Variant
Dim xlWbk As Variant
Dim sh As Variant
Dim i As Integer
'--------------------------------------------------------------
'Arbeitsfläche in Lotus
Set db = session.currentdatabase
Set dc = db.AllDocuments
Set docCur = workspace.currentdocument
'--------------------------------------------------------------
Print "Starte Excel..."
'--------------------------------------------------------------
'Erzeugen der Excelverbindung
Set xl = CreateObject("Excel.Application")
Set xlWbk = xl.Workbooks.Add
'--------------------------------------------------------------
'--------------------------------------------------------------
' Eintragen der Werte in Excel
Dim j As Integer
j=1
xlWbk.ActiveSheet.Cells(RowStart,1)="Lieferantennr."
xlWbk.ActiveSheet.Cells(RowStart,2)="Lieferant"
For i=1 To dc.count
Set nd=dc.getNthDocument(i)
If nd.form(0)="frmBEWERTUNG" Then
If j=1 Then
xlWbk.ActiveSheet.Cells(RowStart, colstart)=nd.crit1
xlWbk.ActiveSheet.Cells(RowStart, colstart+1)=nd.crit2
xlWbk.ActiveSheet.Cells(RowStart, colstart+2)=nd.crit3
xlWbk.ActiveSheet.Cells(RowStart, colstart+3)=nd.crit4
xlWbk.ActiveSheet.Cells(RowStart, colstart+4)=nd.crit5
xlWbk.ActiveSheet.Cells(RowStart, colstart+5)=nd.crit6
xlWbk.ActiveSheet.Cells(RowStart, colstart+6)=nd.crit7
End If
xlWbk.ActiveSheet.Cells(rowstart+j, colstart) =nd.note1
xlWbk.ActiveSheet.Cells(rowstart+j, colstart+1) =nd.note2
xlWbk.ActiveSheet.Cells(rowstart+j, colstart+2) =nd.note3
xlWbk.ActiveSheet.Cells(rowstart+j, colstart+3) =nd.note4
xlWbk.ActiveSheet.Cells(rowstart+j, colstart+4) =nd.note5
xlWbk.ActiveSheet.Cells(rowstart+j, colstart+5) =nd.note6
xlWbk.ActiveSheet.Cells(rowstart+j, colstart+6) =nd.note7
j=j+1
Elseif nd.form(0)="Felder" Then
Msgbox(nd.Pfad(0))
End If
Next
'--------------------------------------------------------------
Print "Excel Dokument erstellt"
'--------------------------------------------------------------
' Excel-Datei sichtbar machen
xlWbk.SaveAs ("C:\Documents and Settings\wsy5440\Desktop\test2.xls")
xl.Visible = True
'--------------------------------------------------------------
DONE:
Exit Sub
End Sub
Alles anzeigen
Dann gibt er mir Alle Pfade aus die ich schoneinmal gespeichert hatte. (Die Pfade lasse ich natürlich nur testweise ausgeben.)
... ja ich weis das der Code noch net optimal ist ^^. Die Optimierung kommt später. Ich will erstmal das es läuft.
Nichts desto trotz sind Änderungsvorschläge stets willkommen. Nimmt mir ja Arbeit ab.