Autor Thema: Aktion bei Feldwertänderung  (Gelesen 1985 mal)

Offline hmarco

  • Aktives Mitglied
  • ***
  • Beiträge: 114
  • Geschlecht: Männlich
  • Notes ist nicht nur für Notizen
Aktion bei Feldwertänderung
« am: 08.01.03 - 08:28:35 »
Hallo und erstmal ein frohes neues Jahr,

ich habe ein Feld namens Kilometerstand.

Wenn ich dieses Feld ändere möchte ich, dass er in ein anderes Feld das heutige Datum rein schreibt und dass Notes in ein anderes Feld den aktuellen Benutzer reinschreibt.

Jetzt habe ich jedoch das Problem, wie ich in einer @If-Anweisung die Bedingung, Wenn Feld "Kilometerstand" geändert wurde dann tue dies, unterbringe.

Kann mir da vielleicht jemand einen Tipp geben.

Mfg Marco
1 5.0.8 Server mit ~ 40 Benutzern
1 5.0.5 Server für Tests
Bald hoffentlich auch noch einen Notes 6 Server

klaussal

  • Gast
Re:Aktion bei Feldwertänderung
« Antwort #1 am: 08.01.03 - 08:49:41 »
moin moin,

im postopen-event den km-stand in ein hidden-feld rüberziehen.
bei querysave abfragen, ob sich der km-stand geändert hat. wenn ja, benutzer eintragen, etc...
aber es führen viele wege nach rom. das war mal ein denkansatz auf die schnelle. ;)

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:Aktion bei Feldwertänderung
« Antwort #2 am: 08.01.03 - 12:55:12 »
Hi,

hier noch eine andere Alternative:

im Declaration-Abschnitt der Maske eine Variable deklarieren.

Diese mit PostOpen-Event mit dem Feldwert füllen und im QuerySave-Event abfragen ob Feldinhalt und Variable unterschiedlich sind, wenn ja, dann die entsprechenden Aktionen auslösen.

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

Offline hmarco

  • Aktives Mitglied
  • ***
  • Beiträge: 114
  • Geschlecht: Männlich
  • Notes ist nicht nur für Notizen
Re:Aktion bei Feldwertänderung
« Antwort #3 am: 17.01.03 - 13:18:35 »
Hallo,

hatte ein wenig länger gedauert, hatte noch soviel anderen Kram zu tun.  Habe heute übrigens meine Network+-Prüfung bestanden.

Also ich habe ein Feld "Kilometerstand" und das wird im Post-Open so in eine Variable names "kmcopy" kopiert:

Sub Postopen(Source As Notesuidocument)
   Dim doc As NotesDocument
   Set kmcopy = doc.GetFirstItem("Kilometerstand")
End Sub


Die Variabel sind übrigens im Declerations:

Dim kmcopy As NotesItem
Dim kmcopy2 As NotesItem
Dim item As NotesItem


Jedoch sagt er mir dabei immer "Object variable not set", wenn ich ein Dokument öffne.

Jetzt stellt sich mir die Frage wie bei den meisten Anwendern:
Bin ich nicht doch einfach nur zu blöd dazu?!  ;D

Mfg Marco
1 5.0.8 Server mit ~ 40 Benutzern
1 5.0.5 Server für Tests
Bald hoffentlich auch noch einen Notes 6 Server

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:Aktion bei Feldwertänderung
« Antwort #4 am: 17.01.03 - 13:28:06 »
Hi,

erstmal herzlich Glückwunsch zur bestandenen Prüfung.

Du mußt auch die doc - Variable belegen. Ändere mal den Code im PostOpen-Event wie folgt ab.

Sub Postopen(Source As Notesuidocument)
   Dim doc As NotesDocument

   Set doc = Source.Document
   Set kmcopy = doc.GetFirstItem("Kilometerstand")
End Sub


Axel




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

klaussal

  • Gast
Re:Aktion bei Feldwertänderung
« Antwort #5 am: 17.01.03 - 13:36:51 »
im queropen den kilometerstand in einem versteckten feld sichern und im querysave alten mit neuem kilometerstand vergleichen. wenn geändert wurde, dann benutzer in feld xyz schreiben. ;)

Offline hmarco

  • Aktives Mitglied
  • ***
  • Beiträge: 114
  • Geschlecht: Männlich
  • Notes ist nicht nur für Notizen
Re:Aktion bei Feldwertänderung
« Antwort #6 am: 17.01.03 - 13:41:01 »
Hallo Axel,

da hätte ich auch selber drauf kommen müssen. Fürs nächste Mal weiß ich Bescheid.

Sach mal noch 'ne Frage.

Die Variablen kmcopy und kmcopy2 wie kann ich die mit if vergleichen?

ich habe es so gemacht:

If kmcopy <> kmcopy2 Then

Will er jedoch nicht schlucken. Sagt Type Mismatch. Sind jedoch beides Zahlenfelder.

Der Wert vom kmcopy ist ja noch vom PostOpen und der Wert von kmcopy2 wird beim ausführen des Queryclose ausgelesen. Beides sind Zahlenwerte wieso sagt er hierbei wenn ich Speichern will Type Mismatch.

Mfg Marco
1 5.0.8 Server mit ~ 40 Benutzern
1 5.0.5 Server für Tests
Bald hoffentlich auch noch einen Notes 6 Server

Offline hmarco

  • Aktives Mitglied
  • ***
  • Beiträge: 114
  • Geschlecht: Männlich
  • Notes ist nicht nur für Notizen
@Kaussal
« Antwort #7 am: 17.01.03 - 13:43:59 »
Hi Kaussal,

ich kann ich alternativ auch noch ausprobieren. Jedoch denke ich, dassichfast fertig bin, wenn dieses If-Statement funktionieren würde. Siehe oben.

Mfg Marco
1 5.0.8 Server mit ~ 40 Benutzern
1 5.0.5 Server für Tests
Bald hoffentlich auch noch einen Notes 6 Server

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:Aktion bei Feldwertänderung
« Antwort #8 am: 17.01.03 - 14:13:02 »
Hi,

deine beiden Variablen sind vom Typ Item. Die kannst du nicht mit IF vergleichen.

Du mußt die Feldinhalte nehmen. Das muss so aussehen:

Globale Variable:

Dim kmcopy As String

PostOpen-Event:

Sub Postopen(Source As Notesuidocument)
  Dim doc As NotesDocument

  Set doc = Source.Document
  kmcopy = doc.Kilometerstand(0)

End Sub

QueryClose:

...

  Set doc = Source.Document
  If kmcopy <> doc.Kilometerstand(0) Then 'Prüfung der Feldinhalte
      'Wenn unterschiedlich, tu das hier
  Else
      'Wenn nicht, dann lass es
  End If

...


Ich hab's mit Stringvariable, also für Textfeld gemacht. Evt. mußt du den Variablentyp anpassen.

Axel
 








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

Offline hmarco

  • Aktives Mitglied
  • ***
  • Beiträge: 114
  • Geschlecht: Männlich
  • Notes ist nicht nur für Notizen
Re:Aktion bei Feldwertänderung
« Antwort #9 am: 21.01.03 - 10:54:56 »
Hi,

das geht ja. Ich hatte war nur noch einen Overflow,
weil ich Integer verwendet habe, da habe ich dann
zum Spaß mal Double eingetragen und jetzt läuft es.  :D :D :D

Vielen Dank für eure Hilfe.

Mfg Marco
1 5.0.8 Server mit ~ 40 Benutzern
1 5.0.5 Server für Tests
Bald hoffentlich auch noch einen Notes 6 Server

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz