Autor Thema: Optionsfelder in Lotus Script  (Gelesen 12771 mal)

Offline Pir0x

  • Junior Mitglied
  • **
  • Beiträge: 73
Optionsfelder in Lotus Script
« am: 18.08.08 - 08:31:03 »
Hi, ich hab da mal ne Frage und zwar wollte ich jetzt den Inhalt eines optionsfeldes überprüfen und darauf hin ne bestimmte Aktion ausführen

z.b. ein Optionsfeld mit den Inhalten NO|0 und Yes|1  (Name des Optionsfeldes = test)

meine Frage ist jetzt wie man das ganze ins Lotus Script packen muss, meine Idee war
---------------------------------------------------------------
If docProfile.test= "1") Then
         Call doc.Remove(True)
---------------------------------------------------------------
aber so haut das ganze nicht hin, bekomm dann mit dem Debugger immer die Meldung "Object variable not set"  also irgendwas muss da noch komm nach dem
docProfile.test  , die Hilfe  spuckt mir leider kein Ergebniss dafür aus, könnt ihr mir da helfen ?

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re: Optionsfelder in Lotus Script
« Antwort #1 am: 18.08.08 - 08:40:16 »
Hallo,

wenn Du in Formelsprache das Profildokument direkt ansprechen kannst

Code
@GetProfileField(profilename ; fieldname)

so musst Du in Lotus Script zuerst das Profildokument holen.

Code
Set profileDoc = db.GetProfileDocument(profilname)

Erst dann kannst Du auf die Felder zugreifen.

Aber mit docProfile.test = "1" gehts trotzdem nicht, weil in Lotus Script alle Felder potentielle Mehrfachfelder sind und somit indiziert werden müssen. Hier also

Code
If (profileDoc.test(0) = "1") Then Call doc.Remove(True)

Dann klappt das.

Gruß,

Joachim
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

klaussal

  • Gast
Re: Optionsfelder in Lotus Script
« Antwort #2 am: 18.08.08 - 08:40:29 »
If docProfile.test(0) = "1".....

Offline Pir0x

  • Junior Mitglied
  • **
  • Beiträge: 73
Re: Optionsfelder in Lotus Script
« Antwort #3 am: 18.08.08 - 08:47:03 »
also das "Set profileDoc = db.GetProfileDocument(profilname)" war mir klar, hatte ich auch drin, aber allerdings funktioniert das "If (profileDoc.test(0) = "1") Then Call doc.Remove(True)"  auch nicht

klaussal

  • Gast
Re: Optionsfelder in Lotus Script
« Antwort #4 am: 18.08.08 - 08:55:18 »
Was sagt der Debugger ?

Gibt es überhaupt ein ProfileDoc ?

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re: Optionsfelder in Lotus Script
« Antwort #5 am: 18.08.08 - 08:56:17 »
Hallo,

doch, muss gehen, der Code ist korrekt. Vielleicht darfst Du das Dokument nicht löschen? (ACL Häkchen bei Delete Document?) Oder vielleicht hast Du das Dokument gerade im Frontend geöffnet?

Oder gibt es immer noch den "Object Variable not set"-Error? GetProfileDocument gibt immer ein gültiges Dokument zurück, auch wenn noch gar keins existiert. Also hat profileDoc in jedem Fall einen gültigen Wert. Vielleicht ist im Feld "test" eine Zahl? Dann probiers mal mit CStr(profileDoc.test(0)) = "1". Oder - letzte Idee - doc hat keinen Wert. Kannst ja vorher mal mit "If (Not(doc Is Nothing)) ..." prüfen.

Gruß,

Joachim
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

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: Optionsfelder in Lotus Script
« Antwort #6 am: 18.08.08 - 09:00:30 »
Zeigt mal den gesmaten Code. Mit dem Schnipsel kann man nichts anfangen. Das sieht nämlich, mit der Ergänzug von (0) ganz vernüftig aus.

Hast du eine vernüftige Fehlerbehandlung eingebaut.


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

Offline Pir0x

  • Junior Mitglied
  • **
  • Beiträge: 73
Re: Optionsfelder in Lotus Script
« Antwort #7 am: 18.08.08 - 09:07:12 »
also, ich führ das ganze mal bissl weiter aus, diese Abfrage setzt sich aus 2 Bedingungen zusammen,

einmal wird überprüft ob das Document bearbeitet wurde (flagDocProcessed) und einmal halt welches kästchen im Optionsfeld ausgewählt wurde.

"flagDocProcessed" wird auf True gesetzt sobald das Document bearbeitet wurde

wenn ich jetzt sag
-----------------------------------------------------
"IF flagDocProcessed Then Call doc.Remove(True)"
-----------------------------------------------------

funktioniert das ohne Probleme , aber wenn ich das mit einander kombinieren will
------------------------------------------------------------------------------
"If flagDocProcessed And (docProfile.test(0)= "1" )Then Call Docx.Remove(True)"
------------------------------------------------------------------------------
funktioniert das wieder nicht. und im Feld test ist auch keine Zahl, das mit CStr hab ich bereits probiert

edit: Gesamter Code
Zitat
Set docProfile = db.GetProfileDocument("MABP")
While Not(doc Is Nothing)
      flagDocProcessed = False
....
flagDocProcessed=True    
....
Set docx = doc
Set doc = docsUnprocessed.GetNextDocument(doc)
If flagDocProcessed And (docProfile.test(0)= "1" )Then Call Docx.Remove(True)
« Letzte Änderung: 18.08.08 - 09:28:17 von Pir0x »

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re: Optionsfelder in Lotus Script
« Antwort #8 am: 18.08.08 - 09:45:59 »
Hi,

hmm, sieht so aus, als ob Du den Remove zu einem falschen Zeitpunkt machst. Nach dem letzten "GetNextDocument" ist doc Nothing und dann funktioniert die nächste Zeile nicht mehr.

Du kannst doc in einer anderen Variablen zwischenspeichern und dann löschen.

Code
while (Not(doc Is Nothing))
   Set del = Nothing
   ...
   If (... ) Then Set del = doc
   Set doc = docsUnprocessed.GetNextDocument(doc)
   If (Not(del Is Nothig)) Then Call del.Remove(True)
Wend

So müsste es klappen.

Gruß,

Joachim
« Letzte Änderung: 18.08.08 - 09:48:24 von jr »
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Offline Pir0x

  • Junior Mitglied
  • **
  • Beiträge: 73
Re: Optionsfelder in Lotus Script
« Antwort #9 am: 18.08.08 - 09:50:51 »
Hi,

hmm, sieht so aus, als ob Du den Remove zu einem falschen Zeitpunkt machst. Nach dem letzten "GetNextDocument" ist doc Nothing und dann funktioniert die nächste Zeile nicht mehr.

Du kannst doc in einer anderen Variablen zwischenspeichern und dann löschen.

genau so mach ichs ja

Set docx = doc
If flagDocProcessed And (docProfile.test(0)= "1" )Then Call Docx.Remove(True)

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Optionsfelder in Lotus Script
« Antwort #10 am: 18.08.08 - 10:00:06 »
And (docProfile.test(0)= "1" )

gibt es das Item denn?
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline Pir0x

  • Junior Mitglied
  • **
  • Beiträge: 73
Re: Optionsfelder in Lotus Script
« Antwort #11 am: 18.08.08 - 10:04:21 »
jo gibt es

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Optionsfelder in Lotus Script
« Antwort #12 am: 18.08.08 - 10:10:41 »
also, ich führ das ganze mal bissl weiter aus, diese Abfrage setzt sich aus 2 Bedingungen zusammen,

einmal wird überprüft ob das Document bearbeitet wurde (flagDocProcessed) und einmal halt welches kästchen im Optionsfeld ausgewählt wurde.

"flagDocProcessed" wird auf True gesetzt sobald das Document bearbeitet wurde

wenn ich jetzt sag
-----------------------------------------------------
"IF flagDocProcessed Then Call doc.Remove(True)"
-----------------------------------------------------

funktioniert das ohne Probleme , aber wenn ich das mit einander kombinieren will
------------------------------------------------------------------------------
"If flagDocProcessed And (docProfile.test(0)= "1" )Then Call Docx.Remove(True)"
------------------------------------------------------------------------------
funktioniert das wieder nicht. und im Feld test ist auch keine Zahl, das mit CStr hab ich bereits probiert

edit: Gesamter Code


ähh, im ersten remove entfernst du doc und im zweiten remove Docx?
was ist denn Docx jetzt?   :-:

grüsse

dau-in
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re: Optionsfelder in Lotus Script
« Antwort #13 am: 18.08.08 - 10:16:57 »
Hi,

hast recht, sorry, das mit docx hab ich übersehen.

Die Fehlermeldung sagt, dass ein Objekt nicht gesetzt ist und es gibt nur 4 Objekte in Deinem Code, db, doc, docx, und docProfile. Ich würde jetzt mal den Debugger einschalten und nachschauen, welches Objekt nicht gesetzt ist. Oder Du baust bei allen 4 Objekten eine Msgbox ein.

Ich gehe davon aus, dass eins davon Nothing ist. Aber ohne den kompletten Funktionscode kann ich das nicht feststellen.

Gruß,

Joachim
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

klaussal

  • Gast
Re: Optionsfelder in Lotus Script
« Antwort #14 am: 18.08.08 - 10:37:19 »
Zitat
Was sagt der Debugger ?

Anscheinend ist das ein unbekanntes Instrument....

Offline Pir0x

  • Junior Mitglied
  • **
  • Beiträge: 73
Re: Optionsfelder in Lotus Script
« Antwort #15 am: 18.08.08 - 10:52:10 »
sry hatte ich irgendwie überlesen,

jo das docProfile gibt es

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: Optionsfelder in Lotus Script
« Antwort #16 am: 18.08.08 - 10:56:22 »
WAS SAGT DER DEBUGGER !?!?!?!?!?!?!  >:(
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

klaussal

  • Gast
Re: Optionsfelder in Lotus Script
« Antwort #17 am: 18.08.08 - 10:58:14 »
Zitat
WAS SAGT DER DEBUGGER !?!?!?!?!?!?!

Das hatte ich schon in #4 um 8:55 gefragt. Bis jetzt keine Antwort !

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: Optionsfelder in Lotus Script
« Antwort #18 am: 18.08.08 - 11:00:11 »
Ja eh. Aber ev. sind die Großbuchstaben leichter zu lesen. ;)
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 DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Optionsfelder in Lotus Script
« Antwort #19 am: 18.08.08 - 11:07:52 »
sry hatte ich irgendwie überlesen,

jo das docProfile gibt es

und das Docx??????????:(
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz