Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: schikoli am 02.12.05 - 14:18:53
-
Hallo,
kann mir bitte jemand mit diesem Script weiterhelfen:
Ich möchte meine Felder des Dokumentes Unternehmensdatenblatt mit den Daten aus einem anderen Dokument (Firmen) füllen.
Ich habe in in der Ansicht Firmen eine Action-Button eingerichtet, der die ausgewählten Daten nach Unternehmensdatenblatt "importieren soll".
Leider öffnet sich nur die Maske Unternehmensdatenblatt aber ohne Daten!
Was muss ich in diesem Script ändern?
LG
Sub Click(Source As Button)
' Button für Ansichten
On Error Goto Errhandle
Dim ses As New NotesSession
Dim ws As New NotesUIWorkspace
Dim curDoc As NotesDocument
Dim uidoc As NotesUIDocument
Dim item As NotesItem
Dim form As String
Dim default As String
Dim values(6) As Variant
Dim fillField(19) As String
Dim fillFieldFormat(19) As String
'--------------------------------------------------
' Data
values(0)="Unternehmensdatenblatt"
'Daten
fillField(0)="Firma"
fillFieldFormat(0)="txt"
fillField(1)="Anschrift"
fillFieldFormat(1)="txt"
fillField(2)="PLZ"
fillFieldFormat(2)="txt"
fillField(3)="Ort"
fillFieldFormat(3)="txt"
fillField(4)="Region"
fillFieldFormat(4)="txt"
fillField(5)="Homepage_1"
fillFieldFormat(5)="rtxt"
fillField(6)="Projekte"
fillFieldFormat(6)="txt"
fillField(7)="Bedarf"
fillFieldFormat(7)="txt"
fillField(8)="Branche_1"
fillFieldFormat(8)="txt"
fillField(9)="MA"
fillFieldFormat(9)="txt"
fillField(10)="Umsatz"
fillFieldFormat(10)="txt"
fillField(11)="Entwicklung"
fillFieldFormat(11)="txt"
fillField(12)="Klassifizierung_Firma"
fillFieldFormat(12)="txt"
fillField(13)="Status"
fillFieldFormat(13)="txt"
fillField(14)="Datum"
fillFieldFormat(14)="txt"
fillField(15)="KW"
fillFieldFormat(15)="txt"
'vertriebsrelevante Informationen
fillField(16)="Vertriebsinformationen"
fillFieldFormat(16)="txt"
' ----------------------------------------------------------------------
Set db = ses.CurrentDatabase
Set curDoc = ses.DocumentContext
If Not curDoc Is Nothing Then
default = curDoc.GetFirstItem("Form").Text
Else
default = ""
End If
form = ws.Prompt( PROMPT_OKCANCELLIST, "Neues Dokument anlegen", "Bitte wählen Sie für das neue Dokument die zutreffende Kategorie:", default, values )
If Not form="" Then
Set uidoc = ws.ComposeDocument( "", "", form )
Else
Messagebox "Abbruch durch den Benutzer.",,"Abbruch"
End If
End
Errhandle:
Messagebox "Button Neu ohne Inhalt: Fehler " & Err() & " in Zeile " & Cstr(Erl) & ": " & Error(),16,"Fehler"
Dim currentLog As NotesLog
Set currentLog = New NotesLog( "NewProtocolEntryLog" )
Call currentLog.OpenFileLog( "n:\mh\db\logs\address.txt" )
Call currentLog.LogError(Err(), "Button Neu ohne Inhalt: Fehler " & Err() & " in Zeile " & Cstr(Erl) & ": " & Error() & " User: " & ses.CommonUserName)
Call currentLog.Close
Resume TheEnd
TheEnd:
End Sub
-
Leider öffnet sich nur die Maske Unternehmensdatenblatt aber ohne Daten!
In dem geposteten Code finde ich nicht einmal den Ansatz von dem, was Du eigentlich vorhast.
Einen LS-Kursus können wir im Rahmen des Forums leider nicht bieten.
Bernhard
-
okay, trotzdem danke
-
Was muss ich in diesem Script ändern?
Erst mal mindestens 2/3 des Scriptes wegschmeissen.
Die Übernahme von Feldwerten kann ungefähr so aussehen. Die Feldnamen musst du natürlich anpassen.
...
Dim newdoc As NotesDocument
...
Set db = ses.CurrentDatabase
Set curDoc = ses.DocumentContext
If Not curDoc Is Nothing Then
default = curDoc.GetFirstItem("Form").Text
Else
default = ""
End If
form = ws.Prompt( PROMPT_OKCANCELLIST, "Neues Dokument anlegen", "Bitte wählen Sie für das neue Dokument die zutreffende Kategorie:", default, values )
If Not form="" Then
Set newdoc = New NotesDocument(db) ' Neues Dokument im Backend anlegen
newdoc.Form = form 'Maskennamen setzen
'Ab hier werden die Feldinhalte aus dem markierten Dokument übernommen
newdoc.Feldname1 = curdoc.Feldname1
newdoc.Feldname2 = curdoc.Feldname2
newdoc.Feldname3 = curdoc.Feldname3
newdoc.Feldname4 = curdoc.Feldname4
newdoc.Feldname5 = curdoc.Feldname5
...
Set uidoc = ws.EditDocument(True, newdoc) 'Dokument zur weiteren Bearbeitung im Frontend öffnen
Else
Messagebox "Abbruch durch den Benutzer.",,"Abbruch"
End If
Exit Sub 'Wenn Routine ohne Fehler durchgelaufen ist, wird beendet
Errhandle:
...
Das ist logischerweise auch noch kein fertiges Script. Das können wir nicht liefern. Mich beschleicht das Gefühl, dass du noch nicht sonderlich viel in Script gemacht hast, oder? Das ist ja auch keine Schande, auch wir haben mal klein angefangen. Aber wenn du effektiv Script programmieren willst/musst, dann musst du dich einarbeiten und mit kleinen Sachen anfangen. Besorge die Literatur und/oder belege einen entsprechenden Lehrgang. Ein guter Einstieg ist aber auch die Designer-Hilfe. Nimm die Beispiele, arbeite sie durch, passe sie an und schaue was passiert. Bei Fragen stehen wir hier gerne zur Verfügung.
Axel