Autor Thema: Wo ist bloß der Fehler?  (Gelesen 4758 mal)

Offline zyrak2003

  • Frischling
  • *
  • Beiträge: 19
Wo ist bloß der Fehler?
« am: 11.01.08 - 14:49:00 »
Ich habe folgendes Script. Funktioniert auch alles soweit, aber am Ende soll das Dokument (nach dem Speichern) geschlossen werden. Passiert aber nicht:

Sub Click(Source As Button)
   Dim s As New Notessession
   Dim db As NotesDatabase
   Dim dbAdr As NotesDatabase
   Dim view As NotesView
   Dim doc As NotesDocument
   Dim docAdr As NotesDocument
   
   Dim ws As New NotesUIWorkspace
   Set doc=ws.CurrentDocument.Document
   
   Dim ID As String
   Dim servername As String
   Dim dbname As String
   
   Servername="xxx"
   DBname="xxx.nsf"
      
   Set dbAdr=s.GetDatabase(Servername, DBname)
   
   If Not dbAdr.IsOpen Then
      Msgbox "Die Datenbank konnte nicht geöffnet werden." & Chr(13) & "Der Vorgang wird abgebrochen!"
      Exit Sub
   End If
   
   Set view=dbadr.GetView("LUDocID")
   id=doc.AdrDocID(0)
   Set docAdr=view.GetDocumentByKey(ID)
   docAdr.FirstName=doc.FirstName(0)
   docAdr.LastName=doc.LastName(0)
   docAdr.StreetAddress=doc.StreetAddress(0)
   docAdr.Anrede=doc.Anrede(0)
   docAdr.Zip=doc.Zip(0)
   docAdr.City=doc.City(0)
   docAdr.Country=doc.Country(0)
   docAdr.save True, False
   doc.Save True, False
   doc.close
   
End Sub

Danke für einen Tipp!

Offline ZaLudtske

  • Senior Mitglied
  • ****
  • Beiträge: 319
  • Geschlecht: Männlich
  • carpe diem
Re: Wo ist bloß der Fehler?
« Antwort #1 am: 11.01.08 - 14:51:59 »
Hallo,

für die notesdocument-Klasse gibt es keine Methode close.

Du mußt entweder das Document mit
Code
set doc = nothing


oder

Code
delete doc 


schliessen.


mfg

rainer
Rainer Zaske

MCSD - C#

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Wo ist bloß der Fehler?
« Antwort #2 am: 11.01.08 - 14:57:47 »
NotesDocument != NotesUIDocument

"Schließen" und damit die Methode "Close" gibts nur beim UIDocument (UserInterface...)!

HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Re: Wo ist bloß der Fehler?
« Antwort #3 am: 11.01.08 - 15:22:05 »
Hi,

genau!

und ausserdem würde ich dir 2 dinge vorschlagen:
1. verwende noch in Opitons:
Code
Option Declare  
dann bekommst du bereits im Desinger eine Fehlermeldung wo es nicht passt.

2. ein Errorhandling:
gleich am Anfang:
Code
on error goto Hell
und am Ende, noch vor end sub
Code
Hell:
      if Not err() = 0 then
	Messagebox "Fehler #" & Cstr(err()) &  " " & Error() & " in Zeile: " & cstr(erl())
	Exit sub  ' oder: exit function ' oder resume
     End if

Gruss, Pete(r)
pete(r)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Wo ist bloß der Fehler?
« Antwort #4 am: 11.01.08 - 15:27:59 »
Abgesehen davon ist LotusScript bzw. Notes sehr gnädig, was "garbage collection" angeht: Ein "Close" eines Backend-Dokuments ist vollkommen unnötig, da es mit der Terminierung des Moduls sowieso im Orkus verschwindet.

Bernhard

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Wo ist bloß der Fehler?
« Antwort #5 am: 11.01.08 - 16:33:05 »
Abgesehen davon ist LotusScript bzw. Notes sehr gnädig, was "garbage collection" angeht
Meine profesorale Viertelstunde vergib mir heute.
Also das ist ziemlich binär:
entweder hat eine Programmiersprache einen automatischen Garbage Collector Mechanismus wie z.B. Lotus Script, Ruby, Basic oder Java oder eben nicht (wie C). Der Begriff der Gnade ist in diesem Zusammenhang irreführend. Wenn es close() geben würde, könnte man es als Objekt-Lebenszyklus Methode kategorisieren; in keinem Fall als ist es ein Destruktor zur Speicherfreigabe.

Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Wo ist bloß der Fehler?
« Antwort #6 am: 11.01.08 - 17:06:41 »
Natürlich ist Dir vergeben, Axel, und natürlich hast Du Recht. Ich wollte es nur nicht kompliziert machen für einen offensichtlich blutigen Anfänger  ;) Dass ein (nicht vorhandenes) Close oder Set to Nothing auch keinen Platz im Raum für Aufschnitt und Margarine (RAM) freigibt, habe ich mir schon verkniffen.

Bernhard

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Wo ist bloß der Fehler?
« Antwort #7 am: 11.01.08 - 18:04:11 »
... was soll denn passieren, du speicherst dein doc und nicht das docAdr
Zitat
doc.Save True, False

Toni
Grüßle Toni :)

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Re: Wo ist bloß der Fehler?
« Antwort #8 am: 11.01.08 - 21:23:53 »
Hi,

@All: ich glaub es war wohl so gemeint, dass zyrak2003 das Dokument des Anwenders, also das NotesUIDocument schliessen wollte ....  ::)
Nicht irgendwelche NotesDocument recyclen oder Speicherbelegung freigeben....

@zyrak2003:
Ergänze mal die fetten Teile in Deinem Script:
und lösche die durchgestrichenen.

Ich habe folgendes Script. Funktioniert auch alles soweit, aber am Ende soll das Dokument (nach dem Speichern) geschlossen werden.

'...
   Dim UIdoc As notesUIdocument
   Dim doc As NotesDocument
   Dim docAdr As NotesDocument
   
   Dim ws As New NotesUIWorkspace
   Set UIdoc=ws.CurrentDocument
   Set doc=ws.CurrentDocument.Document
   
'...   
   docAdr.save True, False
   ' doc.Save True, False
        call UIDoc.Save()
   ' doc.close
        call UIDoc.close()
   
End Sub


Gruss, Pete(r)
pete(r)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Wo ist bloß der Fehler?
« Antwort #9 am: 11.01.08 - 21:45:59 »
Toni: Eine Zeile darüber steht docAdr.Save

Pete: Das ist jetzt Kaffeesatzleserei, und was er wirklich will, soll uns der namenlose "zyrak2003" schön selber erklären.

Bernhard

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Wo ist bloß der Fehler?
« Antwort #10 am: 12.01.08 - 10:09:23 »
*uuppps* - habe ich in meiner Eile übersehen...

Toni
Grüßle Toni :)

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Re: Wo ist bloß der Fehler?
« Antwort #11 am: 14.01.08 - 09:08:23 »
Pete: Das ist jetzt Kaffeesatzleserei, und was er wirklich will, soll uns der namenlose "zyrak2003" schön selber erklären.

stimmt - aber so weit bin ich auch schon wieder...
.... wer hat meine Tasse schon wieder leergemacht?

pete(r)

Offline zyrak2003

  • Frischling
  • *
  • Beiträge: 19
Re: Wo ist bloß der Fehler?
« Antwort #12 am: 14.02.08 - 18:47:39 »
Vielen Dank für die Ratschläge. Da ich wirklich blutiger Anfänger auf dem Gebiet Lotus Script bin (vielleicht sogar noch weniger als Anfänger) hab ich mich für ein Seminar angemeldet. Danach werd ich einen weiteren Anlaufversuch unternehmen oder vielleicht selbst die Lösung heraus arbeiten.   :)

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Wo ist bloß der Fehler?
« Antwort #13 am: 15.02.08 - 09:11:37 »
Ich habe folgendes Script. Funktioniert auch alles soweit, aber am Ende soll das Dokument (nach dem Speichern) geschlossen werden. Passiert aber nicht:

So ganz verstanden habe ich noch nicht was du überhaupt machen willst.

Welches Dokument soll den geschlossen werden? Erklär mal ein bisschen genauer.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz