Autor Thema: Beim verlassen eines Feldes Datensatz lesen  (Gelesen 4224 mal)

Offline aba

  • Aktives Mitglied
  • ***
  • Beiträge: 228
  • i want to be a bigger tigger
Beim verlassen eines Feldes Datensatz lesen
« am: 10.01.03 - 14:46:22 »
Ich möchte beim verlassen eines Feldes einen Datensatz aus einer anderen Datenbank lesen.

Jetzt weiß ich leider nicht mit welchem Event das funktioniert!!

Kann mir da jemand helfen???
Gruss Arnd

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:Beim verlassen eines Feldes Datensatz lesen
« Antwort #1 am: 10.01.03 - 14:48:41 »
Der Event heist "Exiting".

Meff ;)
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

Offline aba

  • Aktives Mitglied
  • ***
  • Beiträge: 228
  • i want to be a bigger tigger
Re:Beim verlassen eines Feldes Datensatz lesen
« Antwort #2 am: 10.01.03 - 14:50:59 »
Ok danke! Das hab ich gefunden.
Ich hatte vorher einen Button mit folgendem Befehl.

@SetField( "name"; @DbLookup("" : "NoCache" ; "" : "INOMETA-01!!SIM2 crm 2.0 Adressen.nsf" ; "(kuerzel)"  ; kürzel ; 2 ));
@SetField( "unit"; @DbLookup("" : "NoCache" ; "" : "INOMETA-01!!SIM2 crm 2.0 Adressen.nsf" ; "(kuerzel)"  ; kürzel ; 3 ))

wie baue ich das in diesen Event ein????
Gruss Arnd

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:Beim verlassen eines Feldes Datensatz lesen
« Antwort #3 am: 10.01.03 - 14:58:19 »
Hi aba,

leider kannst Du in diesem Event nur mit Script arbeiten.

Meff ;)
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

Offline aba

  • Aktives Mitglied
  • ***
  • Beiträge: 228
  • i want to be a bigger tigger
Re:Beim verlassen eines Feldes Datensatz lesen
« Antwort #4 am: 10.01.03 - 14:59:49 »
Ja das denke ich mir aber da kann mir nicht zufäälig Meff oder jemand helfen. Da ich mit Script leider noch nicht bewandert bin!!
Gruss Arnd

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:Beim verlassen eines Feldes Datensatz lesen
« Antwort #5 am: 10.01.03 - 15:03:11 »
Fangen wir doch einmal von hinten an. Was willst Du eigentlich machen ? Wenn ich die Formel richtig interpretiere, dann schreibst Du in zwei Felder (name und unit) zwei Werte aus einem View. Kann man das nicht schon früher machen ?

Meff ;)
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

Offline aba

  • Aktives Mitglied
  • ***
  • Beiträge: 228
  • i want to be a bigger tigger
Re:Beim verlassen eines Feldes Datensatz lesen
« Antwort #6 am: 10.01.03 - 15:11:38 »
Also ich habe einen Urlaubsantrag. Die User tragen in diesem Feld ein Kürzel ein. Dieses Kürzel ist in einer Datenbank"SIM2 crm 2.0 Adressen.nsf" hinterlegt sowie auch die beiden Aussagen Unit + Name, die dann ausgelesen werden sollen. Augenblicklich funktioniert das onclick auf einem Button. Aber die User wollen nicht immer auf diesen Button klicken!! Deshalb wenn man diese Feld verlässt sollen diese Daten gelesen werden!!!
Gruss Arnd

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:Beim verlassen eines Feldes Datensatz lesen
« Antwort #7 am: 10.01.03 - 15:13:56 »
Das Problem mit dem Event "Exiting" ist meiner Meinung nach, dass der Anwender halt wirklich das Feld verlassen muss, d.h. der Focus muss verlagert werden. Oft gibt ein Anwender was in ein Feld ein und wartet dann, dass irgendetwas passiert und hier liegt dann der Hase begraben.

Meff
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

Offline aba

  • Aktives Mitglied
  • ***
  • Beiträge: 228
  • i want to be a bigger tigger
Re:Beim verlassen eines Feldes Datensatz lesen
« Antwort #8 am: 10.01.03 - 15:16:54 »
Das stimmt allerdings muß er das Feld verlassen, da er noch Daten wie z.B. von wann bis wann er Urlaub beantragen möchte, eintragen muß. Die User bekommen allerdings auch eine Arbeitsanweisung dazu und wer lesen kann ist klar im Vorteil(sagt mien Chef immer)
Gruss Arnd

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:Beim verlassen eines Feldes Datensatz lesen
« Antwort #9 am: 10.01.03 - 15:26:35 »
Hi aba,

hier ein Beispiel für den Event :

Dim session As New NotesSession
   Dim uiWs As New NotesUIWorkspace
   Dim uiDoc As NotesUIDocument
   Dim curDb As NotesDatabase, searchDb As NotesDatabase
   Dim searchView As NotesView   
   Dim searchDoc As NotesDocument
   Dim i As Integer   
   Dim inText As String
   
   Set curDb = session.CurrentDatabase
   Set searchDb = New NotesDatabase(curDb.Server, "names.nsf") <-- Hier einfach den DB Namen einsetzten
   Set searchView = searchDb.GetView("$VIMPeople") <-- Hier kommt der Name des Views rein
   Set uiDoc = uiWs.CurrentDocument
   
   inText = uiDoc.FieldGetText("Test") <-- Name des Feldes mit dem Suchwert
   
   Set searchDoc = searchView.GetDocumentByKey(inText)
   
   Call uiDoc.FieldSetText("Test1", searchDoc.MailFile(0)) <-- Erster Wert ist das Feld, in welches geschrieben werden soll, zweiter Wert ist der zu schreibene Wert. Das musst Du einfach zweimal machen

Meff ;)
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

Offline aba

  • Aktives Mitglied
  • ***
  • Beiträge: 228
  • i want to be a bigger tigger
Re:Beim verlassen eines Feldes Datensatz lesen
« Antwort #10 am: 10.01.03 - 15:39:01 »
Hallo Meff,

vorab schon mal vielen Dank für die Mühe!

Aber leider habe ich noch zwei Fragen.

1.Welches ist die View ( bezogen auf die Formel die ich oben aufgeführt habe?

2.Set searchDoc = searchView.GetDocumentByKey(inText)
   Muß in Klammern "inText" durch etwas ersetzt werden??

3.Call uiDoc.FieldSetText( "name", searchDoc.MailFile("" : "NoCache" ; "" : "INOMETA-01!!SIM2 crm 2.0 Adressen.nsf" ; "(kuerzel)"  ; kürzel ; 2 ))
so??

Gruss Arnd

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:Beim verlassen eines Feldes Datensatz lesen
« Antwort #11 am: 10.01.03 - 16:01:43 »
Nö, nö,

1. Der Viewname ist (wenn ich Deine Formel richtig verstanden habe) "(kuerzel)".

2. "inText" ist nichts anderes als das Keyword, welches aus dem Feld gelesen wird, in welches der Anwender sein Namenskürzel eingibt.

3. Call uiDoc.FieldSetText("name", searchDoc.das Feld, welches in der 2. Spalte der Ansicht (kuerzel) steht. Die (0) wird benötigt, damit der erste Wert des Feldes genommen wird.


Meff ;)
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

Offline aba

  • Aktives Mitglied
  • ***
  • Beiträge: 228
  • i want to be a bigger tigger
Re:Beim verlassen eines Feldes Datensatz lesen
« Antwort #12 am: 10.01.03 - 16:18:04 »
Super die Formel sieht schon mal gut aus ( ohne Fehler )

Allerdings wenn ich jetzt teste und aus dem rausgehen, kommt folgende Fehlermeldung "Object variable not set"

Watn dat?????
Gruss Arnd

Offline aba

  • Aktives Mitglied
  • ***
  • Beiträge: 228
  • i want to be a bigger tigger
Re:Beim verlassen eines Feldes Datensatz lesen
« Antwort #13 am: 10.01.03 - 16:29:28 »
Hallo Meff,

ich glaub ich hab noch etwas wichtiges verschwiegen.

Die Feldnamen(2. Spalte der Ansicht (kuerzel) befindet sich wiedrum in einer dritten Datenbank. Die muß ich dann doch bestimmt auch noch bekannt geben, oder???
Gruss Arnd

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:Beim verlassen eines Feldes Datensatz lesen
« Antwort #14 am: 10.01.03 - 16:30:08 »
Wann kommt die Fehlermeldung ?

Mache doch mal folgendes : Über File - Tools kannst Du den Script Debuger einschalten. Dann gehst Du in das Feld, trägst einen Wert ein und verlässt das Feld. Sobald Du das Feld verlässt, springt der Debuger an. Schleife dann einfach durch die einzelnen Befehle und schaue, wo der Fehler generiert wird.

Meff
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

Offline aba

  • Aktives Mitglied
  • ***
  • Beiträge: 228
  • i want to be a bigger tigger
Re:Beim verlassen eines Feldes Datensatz lesen
« Antwort #15 am: 10.01.03 - 16:40:31 »
@Meff

Das ist die Zeile die angemeckert wird.

Set searchDoc = searchView.GetDocumentByKey(inText)
Gruss Arnd

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:Beim verlassen eines Feldes Datensatz lesen
« Antwort #16 am: 10.01.03 - 16:53:47 »
Du machst doch in Deiner Formel einen @Dblookup auf den View, d.h. in der ersten indizierten Spalte steht der Suchwert, ergo kann hier nicht der Fehler liegen.

Suchst Du auch in der richtigen Datenbank ? Die Variable "SearchDb" steht für die Datenbank "Adressen.nsf". Ansonsten findet der Lookup einfach das Zieldokument nicht. Du solltest eh ne Fehlerroutine einbauen, falls der Anwender was falsches eingeben hat.
Das ganze sieht dann so aus :

   On Error Goto ScriptError
   Dim session As New NotesSession
   Dim uiWs As New NotesUIWorkspace
   Dim uiDoc As NotesUIDocument
   Dim curDb As NotesDatabase, searchDb As NotesDatabase
   Dim searchView As NotesView  
   Dim searchDoc As NotesDocument
   Dim i As Integer  
   Dim inText As String
   
   Set curDb = session.CurrentDatabase
   Set searchDb = New NotesDatabase(curDb.Server, "names.nsf") <-- Hier einfach den DB Namen einsetzten
   Set searchView = searchDb.GetView("$VIMPeople") <-- Hier kommt der Name des Views rein
   Set uiDoc = uiWs.CurrentDocument
   
   inText = uiDoc.FieldGetText("Test") <-- Name des Feldes mit dem Suchwert
   
   Set searchDoc = searchView.GetDocumentByKey(inText)
   
   Call uiDoc.FieldSetText("Test1", searchDoc.MailFile(0)) <-- Erster Wert ist das Feld, in welches geschrieben werden soll, zweiter Wert ist der zu schreibene Wert. Das musst Du einfach zweimal machen
 Exit Sub

  ScriptError:
  Messagebox"Bitte wiederholen Sie Ihre Eingabe. Bei der Verarbeitung ist ein Fehler aufgetreten.", 0+64, "Fehler"
  call uiDoc.GotoField("Feldname")


Meff ;)
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

Offline aba

  • Aktives Mitglied
  • ***
  • Beiträge: 228
  • i want to be a bigger tigger
Re:Beim verlassen eines Feldes Datensatz lesen
« Antwort #17 am: 10.01.03 - 17:02:23 »
Die SearchDB heißt bei mir nicht "Adressen.nsf" wie kann ich das änder??

Einfach antsatt SearchDB etwas schreiben oder dahinter den richtigen Namen der Datenbank??
Gruss Arnd

Offline aba

  • Aktives Mitglied
  • ***
  • Beiträge: 228
  • i want to be a bigger tigger
Re:Beim verlassen eines Feldes Datensatz lesen
« Antwort #18 am: 10.01.03 - 17:04:18 »
Meine Formel sieht jetzt so aus!!

Sub Exiting(Source As Field)
   On Error Goto ScriptError
   Dim session As New NotesSession
   Dim uiWs As New NotesUIWorkspace
   Dim uiDoc As NotesUIDocument
   Dim curDb As NotesDatabase, searchDb As NotesDatabase
   Dim searchView As NotesView  
   Dim searchDoc As NotesDocument
   Dim i As Integer  
   Dim inText As String
   
   Set curDb = session.CurrentDatabase
   Set searchDb = New NotesDatabase(curDb.Server, "inometav.nsf")
   Set searchDb = New NotesDatabase(curDb.Server, "SIM2 crm 2.0 Adressen.nsf")
   Set searchView = searchDb.GetView("kuerzel")
   Set uiDoc = uiWs.CurrentDocument
   
   inText = uiDoc.FieldGetText("kürzel")
   
   Set searchDoc = searchView.GetDocumentByKey(inText)
   
   Call uiDoc.FieldSetText("name", searchDoc.Kürzel(0))
   
   Call uiDoc.FieldSetText("unit", searchDoc.Kürzel(0))
   
End Sub
Gruss Arnd

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:Beim verlassen eines Feldes Datensatz lesen
« Antwort #19 am: 10.01.03 - 17:10:31 »
Set searchDb = New NotesDatabase(curDb.Server, "inometav.nsf")
Set searchDb = New NotesDatabase(curDb.Server, "SIM2 crm 2.0 Adressen.nsf")

Wie heist den die Datenbank jetzt ? Zuerst belegst Du die Variable "searchDb" mit der Datenbank "inometav.nsf" und anschliessend mit der "SIM2 crm 2.0 Adressen.nsf". Der Syntax ist ganz einfach "Set 'VariablenName' (=in unserem Fall searchDb) = New NotesDatabase('Datenbankserver', 'Datenbankfilename'). SearchDb ist die Datenbank, in welcher Du Suchen willst, also nicht die aktuelle Datenbank in welcher Du arbeitest !!

Call uiDoc.FieldSetText("name", searchDoc.Kürzel(0))
   
Call uiDoc.FieldSetText("unit", searchDoc.Kürzel(0))

Du setzt also sowohl in das Feld 'name' als auch in 'unit' des geöffeten Dokumentes den Wert im Feld 'Kürzel' des Dokumentes aus der Suchdatenbank. Wenn ich mir Deine Formel anschaue, dann verwendest Du aber zwei unterschiedliche Spaltenwerte und in denen dürfte ja eigentlich auch nichts anderes stehen, als zwei verschiedene Feldwerte.

Meff ;)

P.S.: Vielleicht schickst Du mir einfach mal eine Kopie der beiden Datenbanken, ich schaue mir das mal an und baue Dir den Script ein.
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz