Autor Thema: Problem mit If Abfrage im Agenten (LotusScript)  (Gelesen 3026 mal)

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Problem mit If Abfrage im Agenten (LotusScript)
« am: 25.02.08 - 17:38:39 »
Hallo Forum,

bitte helft mir dochmal kurz bei einem Script Problem.

Ich möchte über einen Agenten Masken ausdrucken. Ich habe mehrere Bedingungen mit denen ich eine von 4 Masken anhand der eingegebenen Werte aussuche. Eine davon lautet


'Ausdruck wenn Mitarbeiter mit Leistungszulagen nix bekommt
      If docTemp.Gesamtpunktzahl(0) >=3.071 And docTemp.andereLeistungszulagen(0) = "Ja"  And docTemp.Maximal(0)= 0 Then
         docTemp.form ="AusdrucknixdankZulage"
      End If


Wenn ich bei meinem Agenten nur ein Dokument auswähle, dann funktioniert es einwandfrei.
Wenn ich aber mehrere Dokumente markiere, dann bekomme ich bei dieser Abfrage immer ein Type Mistmatsch  :) welches sich auf den rot markierten Punkt bezieht. Wenn ich den rausnehme klappts, aber ich benötige das für meine Auswahl.

Woran kann das liegen? Es handelt sich um ein numerisches Feld.

Vielen Dank für einen kleinen Tipp eurerseits.

Thomas
      
« Letzte Änderung: 26.02.08 - 22:39:26 von iukhdh »
Thomas von der IuK

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Problem mit If Abfrage im Agenten (LotusScript)
« Antwort #1 am: 25.02.08 - 19:27:18 »
Steigt die Abfrage denn bei jedem Dokument aus? Oder nur bei bestimmten? Ist das Feld "Maximal" denn mit irgendeinem Wert vorbelegt? Wenn das nicht der Fall ist, so wird aus deinem numerischen Feld zunächst ein Textfeld mit
Code
""
als Inhalt. Das wäre zumindest eine Erklärung, die mir spontan einfällt. Daran, dass die Bedingung nun bei einem oder mehreren Dokumenten abgefragt wird, kann es normalerweise nicht liegen. Daher drängt sich mir der Verdacht mit der Vorbelegung auf.
« Letzte Änderung: 25.02.08 - 19:28:56 von MadMetzger »

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: Problem mit If Abfrage im Agenten (LotusScript)
« Antwort #2 am: 25.02.08 - 19:36:28 »
Hallo Markus,

auf der Heimfahrt im Bus ist mir die Erleuchtung gekommen. Genau das was du beschrieben hast muss es sein. Nicht in allen Fällen ist das Feld Maximal belegt. Da muss ich vorab nochmal eine Abfrage dahingehend einfügen, dass dieser Fall abgefangen wird.

Meine Güte, 1 Stunde Denkarbeit im Geschäft und ich komm nicht drauf, 5 min im Bus und mir fällts wie Schuppen aus den Haaren.

Danke für deine Mithilfe, es bestätigt im Grunde meine Vermutung.

Schönen Abend noch

Thomas
Thomas von der IuK

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Problem mit If Abfrage im Agenten (LotusScript)
« Antwort #3 am: 25.02.08 - 22:03:12 »
Das freut mich, dass ich dir helfen konnte... Geht mir oft ähnlich, dass ich ewig über einem Problem brüte, bis ich dann was ganz anderes mache und mir die Erleuchtung kommt. Bin schonmal nachts mit der Lösung für ein Problem aufgewacht und habe seitdem immer Stift und Papier am Bett zum Notieren.

Alternativ zur Überprüfung könntest, sofern dass keine weiteren Seiteneffekte mit anderen Berechnungen hat, das Feld auch mit 0 als Vorgabewert belegen. Dann kannst du dir die Überprüfung ersparen...

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Problem mit If Abfrage im Agenten (LotusScript)
« Antwort #4 am: 26.02.08 - 08:42:08 »
Das ist so das Problem mit der verkürzten Schreibweise. Da passiert so etwas.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

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
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 MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Problem mit If Abfrage im Agenten (LotusScript)
« Antwort #6 am: 26.02.08 - 09:10:49 »
Genau daher kommt sowas wohl... Ich bin da auch schon mehrfach drauf reingefallen... Eigentlich benutze ich die verkürzte Notation gerne, sauberer ist aber wohl schon der Zugriff über Methoden. Das ist sogar "objektorientierter", da es das Verhalten eines Notesdokuments nutzt und nicht die Struktur.

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: Problem mit If Abfrage im Agenten (LotusScript)
« Antwort #7 am: 26.02.08 - 09:56:21 »
Ballaballa  ??? Bahnhof  ???

Was um alles in der Welt meint  ihr mit verkürzter Schreibweise?

Bitte um eine Dummie-Erklärung !
 ;)
Thomas von der IuK

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Problem mit If Abfrage im Agenten (LotusScript)
« Antwort #8 am: 26.02.08 - 10:06:47 »
Das:

docTemp.Maximal(0)= 0

Lang über GetFirstItem oder GetItemValue... Halt die Zugriffsfunktionen der Notesdocumentklasse
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

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: Problem mit If Abfrage im Agenten (LotusScript)
« Antwort #9 am: 26.02.08 - 10:06:51 »
doc.Feldname = ....
Das ist die verkürzte Schreibweise.

doc.ReplaceItemValue("Feldname", wert)
wäre die "lange"
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 iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: Problem mit If Abfrage im Agenten (LotusScript)
« Antwort #10 am: 26.02.08 - 10:27:21 »
Achso, verstehe. Danke für die Erklärung.

 :D
Thomas von der IuK

Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Re: Problem mit If Abfrage im Agenten (LotusScript)
« Antwort #11 am: 26.02.08 - 20:42:14 »
Zum Problem wird die verkürzte Schreibweise doch eigentlich nur, wenn man eine Methode oder Eigenschaft als Feldname verwendet. Das Feld mit dem Namen SIZE (oder Key oder Signer oder ...) kann ich eben nicht in der verkürzten Schreibweise mit doc.Size=35 füllen.

Wirklich verhext kann das werden, wenn ich heute Feldnamen verwende, die in einer zukünftigen Notes-Version zu reservierten Wörtern werden. Also: deutsche Feldwertnamen haben auch einen Vorteil, damit passiert das bestimmt nicht.

Gruß

Norbert
Situs vilate in isse tabernit.

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: Problem mit If Abfrage im Agenten (LotusScript)
« Antwort #12 am: 26.02.08 - 20:59:38 »
Tja Forum,

jetzt hab ich doch noch eine Folgefrage:

Das Problem, dass nichts in dem Feld steht hab ich nun abgefangen, indem ich mit einer IF-Abfrage das Feld auf den Inhalt NULL Abfrage. Klappt.

Aber nun kann es ja auch sein, dass das Feld nicht nix, sondern "" enthält.

Meine obige Abfrage auf "" bezogen also

 if docTemp.Maximal(0)= "" ...

gibt immer Mistmatsch-Fehler.  Das Ganze mit der langen Schreibweise und

if docTemp.GetItemValue( "Maximal" ) = "" ...

ebenso. Liegt das daran, dass es ein Zahlenfeld ist? Oder überseh ich mal wieder etwas?

Gruß
Thomas
Thomas von der IuK

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: Problem mit If Abfrage im Agenten (LotusScript)
« Antwort #13 am: 26.02.08 - 21:09:15 »
Mann! ;)

Du kannst doch nicht eine Zahl mit einem String vergleichen. Wir sind doch hier nicht in JavaScript.

if Cstr(docTemp.GetItemValue( "Maximal" )) = "" ...
« Letzte Änderung: 26.02.08 - 21:11:02 von m3 »
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 flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Problem mit If Abfrage im Agenten (LotusScript)
« Antwort #14 am: 26.02.08 - 21:52:18 »
Mann! ;)

Du kannst doch nicht eine Zahl mit einem String vergleichen. Wir sind doch hier nicht in JavaScript.

if Cstr(docTemp.GetItemValue( "Maximal" )) = "" ...
Meintest du nicht nicht eher
if Cstr(docTemp.GetItemValue( "Maximal" )(0)) = "" ...
 ;D
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 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: Problem mit If Abfrage im Agenten (LotusScript)
« Antwort #15 am: 26.02.08 - 22:19:41 »
Kleinigkeiten! ;)  ;D
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 iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: Problem mit If Abfrage im Agenten (LotusScript)
« Antwort #16 am: 26.02.08 - 22:38:13 »
 :-\
Naja, irgendwie hab ich sowas ja schon vermutet.
Die ganze Zeit ist mir @Text ... im Kopf rumgegangen, aber dass ich mal in der Hilfe da nachgeschaut hätte ... da ist ja ein Verweis auf CStr ...

Wenn ich Euch nicht hätte ...

Vielen Dank, nun kann ich glaub ich gut schlafen  :D
Thomas von der IuK

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz