Autor Thema: Welches ist der erste Event beim DB-Öffnen per Doppelklick ?  (Gelesen 2907 mal)

Offline RKuehle

  • Junior Mitglied
  • **
  • Beiträge: 80
  • Geschlecht: Männlich
Hallo Forum,
ich habe folgendes Problem:
eine Datenbank soll folgendes beim Öffnen abarbeiten:

- im Db-Script / Postopen fragt ein Script die Rolle eines Nutzers ab und setzt entsprechend der Rolle die Variable InfoView in der Notes.ini
- die DB öffnet standardmäßig ein Frameset, im Frameset steht eine berechnete Ansicht. Formel: @Environment("InfoView")

Das klappt meistens auch , aber halt nicht immer.
Offensichtlich braucht Notes eine, wenn auch kurze, Zeit um die Variable zu schreiben. Erfolgt das Öffnen der DB zu schnell, wird unter Umständen die falsche Ansicht geöffnet.

Mit ist das aufgefallen, als ich zum Test die Rollen mal zugewiesen / weggenommen / getauscht habe.
Meine Frage(n):
Ist das setzen der Variable im Postopen-Event der DB richtig untergebracht oder gibts noch einen früheren Event den man dafür nutzen könnte ?
Ist der Ansatz vielleicht eher doof, gibts eine bessere Methode ?

Bin, wie immer, für jeden Hinweis dankbar !

Beste Grüße

RK

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Je nach dem wie dein Code aussieht, könntest du es evt. im Initialize - Event des DatabaseScriptes versuchen.

Eine andere Alternative könnten aber auch evt. Profildokumente sein.

Nächste Alternative könnten auch Konfig-Dokumente sein, in denen festgelegt wird, bei welcher Rolle welche Ansicht geöffnet werrden soll.


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

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... es ist schon einige Zeit her, da habe ich das mal in einer 5er-DB protokolliert. Hier der Auszug für das Öffnen einer Datenbank:

ÖFFNEN EINER DATENBANK

Ereignisse: 16.09.2001 22:06:38: Script-Bibliothek DefVw-Libary in Default-Ansicht Alle Dokumente: Initialize
Ereignisse: 16.09.2001 22:06:39: Default-Ansicht Alle Dokumente - Globals: Initialize
Ereignisse: 16.09.2001 22:06:39: Default-Ansicht Alle Dokumente: Initialize
Ereignisse: 16.09.2001 22:06:39: Default-Ansicht Alle Dokumente: QueryOpen
Ereignisse: 16.09.2001 22:06:40: Script-Bibliothek DB-Libary: Initialize
Ereignisse: 16.09.2001 22:06:40: Default-Ansicht Alle Dokumente: PostOpen
Ereignisse: 16.09.2001 22:06:40: Datenbank-Script: Initialize
Ereignisse: 16.09.2001 22:06:40: Datenbank-Script: PostOpen

... das könnte deine Frage beantworten. Am sichersten bist du, wenn du selbst Print-Befehle absetzt - oder meine alte 5er-DB dafür verwendest - falls du Interesse hast

Toni

*** edit ***
- oder dir das Protokoll von meiner Homepage holst => hier

« Letzte Änderung: 23.04.08 - 19:55:05 von ata »
Grüßle Toni :)

Offline RKuehle

  • Junior Mitglied
  • **
  • Beiträge: 80
  • Geschlecht: Männlich
@Axel
den Initialize Event werde ich mal testen. Noch eher dürfte es kaum gehen.
Profildoks müssten ja erst durch den Nutzer (unbemerkt) angelegt werden um sie dann auszulesen und die View festzulegen. Ich glaube die Anzeige der View wird auch hier nicht wirklich warten bis das Profil-Dok ausgelesen ist.
Konfig-Doks verstehe ich mal als bereits vorhanen !(so gemeint ? ) Dann müsste mal diese auslesen und je nach Rolle die passende View aufmachen.
Beides hätte natürlich Vorteile gegenüber meinen Ansatz, da sie Teil der DB wären !
@Toni
Ich finde das gut, wenn man an alte Debug-Methoden erinnert wird. Ist ein guter Tipp mit den print-Befehlen.
Als ich noch xBase-Progs geschrieben habe, gabs kaum andere Möglichkeiten. Warum komme ich nicht selbst auf sowas ?

Nochmal anke an euch beide !

Grüße RK

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Ich bezweifele stark, dass Dein Problem an einer parallelen Abarbeitung von Events liegt - dies ist so nämlich hier eigentlich nicht möglich.
Du kannst das simpel überprüfen, indem Du per Messagebox die weitere Abarbeitung des Events unterbrichst. Wenn es dann klappt ... dann hast Du Recht.

Dir ist aber sicherlich klar, dass das DatabaseScript nicht unter allen Umständen ausgeführt wird?

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz