Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Thobz am 31.07.07 - 14:18:20

Titel: If Abfrage im Notes Script wirkungslos...
Beitrag von: Thobz am 31.07.07 - 14:18:20
Hallo,

mit dem folgenden Code Schnipsel stimmt irgendwas nicht.
Die 1. If Abfrage funktioniert einwandfrei, aber die 2. scheint immer wahr
zu sein und somit läuft er dort auch immer rein.
Obwohl 'neu' in einigen Fällen größer als 'alt' ist.
Habt ihr eine Idee woran das liegt ? 
Die Werte sind okay, hab ich mir schon per MsgBox anzeigen lassen.



       Dim neu As Variant
         Dim alt As Variant
         neu=doc.KBETR(0)
         alt=doc.KBETRV(0)
         
         
         Browser=Evaluate("@ClientType")
         
         If Browser(0)="None" Then
            If  alt > neu  Then
               strAenderung = GetWareninfoBezeich( Doc.AEART(0), False ) + doc.KBETRV(0) + " " +           
                    doc.KONWAV(0) + " --> " + doc.KBETR(0) + " "  +doc.KONWA(0) 
                                End If
         End If



gruß Thobz
Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: DAU-in am 31.07.07 - 14:25:18
Sind die Werte als Strings gespeichert?
Dann sieht das zwar richtig aus, aber das mit dem '>' geht in die Hose.

Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: klaussal am 31.07.07 - 14:27:32
Ich würde die beiden Felder als "Long" definieren. Da stehen ja wohl Zahlen drinne.
Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: Glombi am 31.07.07 - 14:28:21
Dim neu As Variant
Dim alt As Variant

Was soll das? Stehen da Zahlen, Text oder Datumswerte drin?
Sind die Felder immer gefüllt?

Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: Thobz am 31.07.07 - 14:43:44
Hallo,

also in den Werten sind Zahlen, zum Beispiel 99.00 oder 139.90.
Also wenn ich sie als Long deklariere, bekomme ich die Meldung "TypeMismatch".
Die Felder sind auch immer gefüllt...


gruß Thobz
Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: klaussal am 31.07.07 - 14:45:56
Ist ja klar:

Zitat
strAenderung = GetWareninfoBezeich( Doc.AEART(0), False ) + doc.KBETRV(0) + " " +...

An dieser Stelle müssen die Zahlen wieder in Text umgewandelt werden.
Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: Thobz am 31.07.07 - 14:49:11
Hallo Klaus,

könntest du das genauer erklären.. ?
Bin noch ziemlich neu in der Notes Entwicklung :-).
Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: klaussal am 31.07.07 - 14:52:10
@text ist dein Freund (siehe dazu Designer-Hilfe).
Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: Thobz am 31.07.07 - 14:56:33
Da komme ich jetzt nicht mit,
ohne die beiden If-Abfragen ( also der Ur-Zustand)
funktioniert ja alles wunderbar.
Ich möchte nur die beiden Felder prüfen, ob eins größer ist und wenn ja
soll er einfach nichts machen. Wieso muss ich da wieder was in Text umwandeln ???
Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: klaussal am 31.07.07 - 15:03:52
If  alt > neu  Then
               strAenderung = GetWareninfoBezeich( Doc.AEART(0), False ) + Cstr(doc.KBETRV(0)) + " " +           
                    doc.KONWAV(0) + " --> " + Cstr(doc.KBETR(0)) + " "  +doc.KONWA(0) 
End If

Der Vergleich auf "grösser" muss hier mit Feldern vom Typ Long gemacht werden, sonst geht das daneben.

Ins Feld strAenderung gehört wohl Text rein. Also muss dafür das Zahlenfeld wieder in Text umgewandelt werden.

Fazit: Besuch einen Lehrgang oder kauf dir ein Buch !
Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: dirk_2909 am 31.07.07 - 15:04:35
In den beiden feldern sind Zahlen gespeichert.
Du musst auch diese beiden Zahlen vergleichen.

deine Variable "strAenderung" erwartet aber einen String!!! also: Entweder Zahlen als String casten oder den Zeichenkettenoperator "&" verwenden!!

Code
Dim neu As Double
         Dim alt AsDouble
         neu= cdbl( doc.KBETR(0) )
         alt= cdbl( doc.KBETRV(0) )
         
         
         Browser=Evaluate("@ClientType")
         
         If Browser(0)="None" Then
            If  alt > neu  Then
               strAenderung = GetWareninfoBezeich( Doc.AEART(0), False ) & doc.KBETRV(0) & " " &           
                    doc.KONWAV(0) & " --> " & doc.KBETR(0) & " "  & doc.KONWA(0) 
     else
Print "??"
             End If
         End If
Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: klaussal am 31.07.07 - 15:06:40
Das mit dem "+" bzw. "&" hatte ich übersehen. Lt. Bernhard soll man das & nehmen, ansonsten gibt es "lustige Effekte".....
Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: Driri am 31.07.07 - 15:09:06
Der Hinweis mit @Text ist hier aber irreführend für einen Anfänger. Es handelt sich ja um LotusScript, also wäre - wie Dirk es auch schon angedeutet hat - CStr die bessere Wahl.

If  alt > neu  Then
               strAenderung = GetWareninfoBezeich( Doc.AEART(0), False ) + CStr(doc.KBETRV(0)) + " " +           
                    doc.KONWAV(0) + " --> " + CStr(doc.KBETR(0)) + " "  +doc.KONWA(0)
End If
Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: dirk_2909 am 31.07.07 - 15:09:32
@Klauss: noch ein kleiner Hinweis -> "@Text(d..."  ???  es handelt sich doch um LS  ;) 

Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: dirk_2909 am 31.07.07 - 15:10:07
oohh - Ingo war schneller ..  ;D
Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: klaussal am 31.07.07 - 15:10:23
Asche auf mein Haupt.... :'(

Klar, muss Cstr heissen...
Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: tks am 31.07.07 - 15:11:08
Und da Thobz schreibt:
Da komme ich jetzt nicht mit,
ohne die beiden If-Abfragen ( also der Ur-Zustand)
funktioniert ja alles wunderbar.
Ich möchte nur die beiden Felder prüfen, ob eins größer ist und wenn ja
soll er einfach nichts machen. Wieso muss ich da wieder was in Text umwandeln ???
sind die Felder KBETR und KBETRV wohl eher vom Typ Text. Und damit ist der Vergleich mit '>' wieder nix.
Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: dirk_2909 am 31.07.07 - 15:11:23
..bleibt ja in der Region ;-)


cstr Muss nicht !!
Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: dirk_2909 am 31.07.07 - 15:13:16
Wen er es so wie in meinem Beispiel macht, sollte es funktionieren.
Da wird der Inhalt in Double umgewandelt und dann verglichen.
und mit dem "&" muss er nichts mehr zurückkonvertieren?!
Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: Thobz am 31.07.07 - 15:23:45
Hallo Dirk,

danke für deine Antwort.
Hat mir sehr geholfen, bzw jetzt funktioniert es.
Hab es sogar verstanden :-) .

@Klaus : Also ich zähle ca.20 Bücher hinter mit zum Thema Notes Entwicklung.
              Soweit ich mich erinnern habe ich an 2 IBM Kursen teilgenommen,
              und ich dachte ein Forum hätte den Sinn sich gegenseitig zu helfen
              und Themen zu diskutieren ? Sonst mach ein Forum gerade für Anfänger
              irgendwie kein Sinn ??!!
Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: klaussal am 31.07.07 - 15:32:04
Zitat
Sonst mach ein Forum gerade für Anfänger irgendwie kein Sinn ??!!

Doch. Wir versuchen hier "Hilfe zur Selbsthilfe" zu geben. Vorgefertigte Lösungen haben den Nachteil, dass dann oftmals nur kopiert wird, ohne sich zu fragen, was falsch war.

Und wenn man 20 Bücher gelesen hat, sollte man doch wissen, das ein Vergleich zweier String-Werte was anderes ergibt als ein Vergleich zweier Zahlenwerte.
Titel: Re: If Abfrage im Notes Script wirkungslos...
Beitrag von: Thobz am 31.07.07 - 15:36:14
Hallo,

da muss ich dir ja recht geben !
Allerdings hab ich diese 20 Bücher nich komplett gelesen, nur teilweise :-).
Ja das 2 String Werte was anderes als 2 Zahlenwerte sind is mir bewusst, ich konnte nur
den Lösungsansatz einfach nicht entdecken.

Aber egal.... Finde das Forum auf jeden Fall Klasse, weil man hier immer schnelle und gute Antworten bekommt.