Domino 9 und frühere Versionen > ND7: Entwicklung
@Command([RefreshFrame];"xxx") funktioniert nicht...
gstueb:
Hallo,
ich schreibe hier nochmal wegen meiner Kundenauftags-Datenbank. Markt-Mitarbeiter erfassen darin Aufträge, ein Service-Center arbeitet diese eingehenden Aufträge ab. Neben normal priorisierten Aufträgen gibt es auch "Just in Time" Aufträge, die möglichst schnell abgearbeitet werden müssen. Den Service-Mitarbeitern möchte ich in der DB irgendwie signalisieren, dass solche eiligen Aufträge vorliegen.
In meiner Anwendung habe ich nun sowieso eine Rahmengruppe mit 3 Rahmen: Oben einen Rahmen Namens "Kopf", der nur den Namen der Anwendung anzeigt, links eine Gliederung und rechts eine Ansicht.
Meine Idee war nun, die angezeigte Seite im Rahmen "Kopf" durch eine andere (rot hinterlegte) Seite auszutauschen, wenn bestimmte (eilige) Dokumente in der Datenbank vorhanden sind. Ob dringend zu bearbeitende Dokumente vorhanden sind, wird durch einen @dblookup festgestellt.
Um das zu testen, habe ich einfach mal eine Ansicht "jit" (Just in time) angelegt, in dieser befindet sich genau ein Dokument mit einer "1" in der ersten Spalte. Wenn
Erg:=@DbLookup("":"Nocache";"";"jit";"1";2);
="test" ist soll ein anderer Kopf angezeigt werden, als wenn etwas anderes zurückgegeben wird.
------------
Im ersten Versuch habe ich 2 Kopf-Seiten erstellt ("Kopf normal" und "Kopf dringend") und habe eine Formel für den Namen des benannten Elementes angegeben, also obige Zeile und dann z.B.
@If(Erg="test";"Kopf dringend";"Kopf normal")
Leider wird mir das erst aktualisiert, wenn ich die Datenbank verlasse und sie dann neu öffne. Ein Agent mit einem @Command([RefreshFrame];"Kopf"), den ich manuell testweise aufrufe, bewirkt nichts. Erst wenn ich die DB schließe und neu öffne, wird die richtige Seite angezeigt.
Ich habe dann versucht, anstelle des berechneten Elementes für den Kopfrahmen eine Maske im Frame "Kopf" anzuzeigen. In der Maske habe ich dann zwei Überschriften (einmal rot, einmal normal) hinterlegt und je nach @dblookup-Ergebnis die eine oder andere Überschrift versteckt.
Auch diese Anzeige wird mir erst aktualisiert, wenn ich die DB beende und neu starte.
Mache ich irgendwas falsch? Warum funktioniert der @command([RefreshFrame];"Kopf") nicht?
Nochmal zusammengefasst:
Ich habe eine Rahmengruppe "Standard". Diese beinhaltet 3 Rahmen. Für mich interessant ist der obere Rahmen Namens "Kopf". In diesem Rahmen möchte ich variable Inhalte haben... Die dort hinterlegten Formeln werden durch einen @command([RefreshFrame];"Kopf") jedoch scheinbar nicht ausgeführt.
Danke schonmal,
Gregor
BigWim:
Hallo Gregor,
--- Zitat ---Meine Idee war nun, die angezeigte Seite im Rahmen "Kopf" durch eine andere (rot hinterlegte) Seite auszutauschen, wenn bestimmte (eilige) Dokumente in der Datenbank vorhanden sind. Ob dringend zu bearbeitende Dokumente vorhanden sind, wird durch einen @dblookup festgestellt.
--- Ende Zitat ---
Ob so etwas funktioniert, kann ich Dir nicht sagen. Ich habe mir etwas ähnliches gebaut, nur tausche ich nicht die Seite, sondern "ändere" den Inhalt der Seite über die Zeileneigenschaften "Absatz verbergen wenn". Wenn Du also "nur" anzeigen möchtest, das "just in time"-Aufträge vorliegen, hört sich das so an, dass das über berechneten Text gelöst werden kann.
Viel Erfolg
Markus
gstueb:
--- Zitat von: BigWim am 25.03.09 - 08:28:41 ---Hallo Gregor,
--- Zitat ---Meine Idee war nun, die angezeigte Seite im Rahmen "Kopf" durch eine andere (rot hinterlegte) Seite auszutauschen, wenn bestimmte (eilige) Dokumente in der Datenbank vorhanden sind. Ob dringend zu bearbeitende Dokumente vorhanden sind, wird durch einen @dblookup festgestellt.
--- Ende Zitat ---
Ob so etwas funktioniert, kann ich Dir nicht sagen. Ich habe mir etwas ähnliches gebaut, nur tausche ich nicht die Seite, sondern "ändere" den Inhalt der Seite über die Zeileneigenschaften "Absatz verbergen wenn". Wenn Du also "nur" anzeigen möchtest, das "just in time"-Aufträge vorliegen, hört sich das so an, dass das über berechneten Text gelöst werden kann.
Viel Erfolg
Markus
--- Ende Zitat ---
Das habe ich auch probiert... es hat aber nicht geklappt. Wie komplex war denn Deine Formel bei "Absatz verbergen wenn"? Bei mir ist wie gesagt ein @dblookup dahinter.
Gruß,
Gregor
BigWim:
Hallo Gregor,
ich denke mal, dass die nicht wirklich komplex ist. Urteile selbst:
--- Code: ---_Server := "i350db1";
_Datenbank := "info\\konfiguration.nsf";
_View := "keylist\\einstellungen";
_Key := "Institut~NameEntwicklungsserver";
_Feldname := "Einstellung_Wert";
_Entwicklungsserver := @LowerCase(@DbLookup("":"NoCache";_Server : _Datenbank; _View; _Key; _Feldname));
!@LowerCase(@Name([CN];@DbName)) = _Entwicklungsserver
--- Ende Code ---
Zur Erklärung. Ich habe angefangen, eine "zentrale Unternehmensdatenbank" aufzubauen, in der ich allgemeingültige Parameter oder Logs ablegen kann.
U. a. habe ich hier hinterlegt, wie mein Entwicklungsserver heißt. Auf der Seite, die im Rahmen angezeigt wird, habe ich jetzt einen Hinweis "!!! ENTWICKLUNG !!!", der nur dann angezeigt wird, wenn die Datenbank auf dem Entwicklungsserver aufgerufen wird. Startet die Datenbank vom einem Produktivserver, wird der Hinweis nicht angezeigt.
Gesteuert wird das durch die obige Formel.
Markus
gstueb:
--- Zitat von: BigWim am 25.03.09 - 12:34:06 ---U. a. habe ich hier hinterlegt, wie mein Entwicklungsserver heißt. Auf der Seite, die im Rahmen angezeigt wird, habe ich jetzt einen Hinweis "!!! ENTWICKLUNG !!!", der nur dann angezeigt wird, wenn die Datenbank auf dem Entwicklungsserver aufgerufen wird. Startet die Datenbank vom einem Produktivserver, wird der Hinweis nicht angezeigt.
--- Ende Zitat ---
So wie es aussieht, ändern sich aber bei Deiner DB die Werte zur Laufzeit nicht... oder änderst Du irgendwo wie ich dynamisch etwas und aktualisierst den Frame dann mit @Command([RefreshFrame];"xxx") ? Weil genau das ja nicht funktioniert...
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln