Autor Thema: Lotus Script  (Gelesen 1841 mal)

Offline schikoli

  • Frischling
  • *
  • Beiträge: 15
Lotus Script
« 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
« Letzte Änderung: 02.12.05 - 14:34:53 von schikoli »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Lotus Script
« Antwort #1 am: 02.12.05 - 14:45:20 »
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

Offline schikoli

  • Frischling
  • *
  • Beiträge: 15
Re: Lotus Script
« Antwort #2 am: 02.12.05 - 14:49:04 »
okay, trotzdem danke

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Lotus Script
« Antwort #3 am: 02.12.05 - 15:27:56 »
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
   
Ohne Computer wären wir noch lange nicht hinterm Mond!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz