[Gelöst] Datenbank identifizieren mit Hilfe einer Form

6. Dezember 2007 13:44

Hallo Timo,

in Mibuso hast du was über automatische Anzeige von kleiner Form aus Hauptmenü geschrieben:

http://www.mibuso.com/forum/viewtopic.php?t=18718
Timo Lässer
Posted: Thu May 31, 2007 1:00 pm
We use a very small Form which we will run from Codeunit 1.
This Form appears always in the upper left corner and shows the Database-Name.
In OnFormat, we change the color of the textbox, so everybody can see, if he/she is on the "Live db", "Test DB" or in "Dev DB".


Nun brauche ich Hilfe von euch (Datenbank 3.10 Technisch 4.0, User arbeiten mit Hauptmenü 330, d.h. nicht mit MenuSuite):
1. Wenn ich versuche Form.RUN(xx) in Codeunit 1 aufzurufen, dann wird das kleine Fenster geöffnet aber leider hinter der Hauptmenü versteckt. Habt Ihr ein Tipps damit der Form in Vordergrund angezeigt wird.

2. Ich möchte auch gerne dass der Form immer im Vordergrund bleibt. Wie der Eingenschaft anderes Programms: "Im vordergrund anzeigen" oder "Always on top". Gibt es die Möglichkeit in Navision?

3. Der Form sollte auch im Standardgrösse bleiben. Mein Problem:
Mit Property Maximizable No, Sizeable Yes: verkleinert Navision sofort andere Fenster auf standard Grösse.
Mit Property Maximizable Yes, Sizeable Yes: sieht der Form so grausam aus.
Gibt es die Möglichkeit dass das kleine Fenster in der ersten Schritt mit standardgrösse aufgemacht wird und andere Fenster (haupmenü) ganz normal wie bisher automatisch vergrössert.

Der Hintergrund ist dass es 3 Datenbanken (Native) gibt: Echtsystem, Testsystem für Entwickler und Testsystem für Anwender. Damit die User immer informiert wird, soll ein Infofenster in die 2 Testsysteme evtl. in alle Datenbanken immer angezeigt werden.

Ich hoffe dass ich mein Problem genug klar beschrieben habe.
Vielen Dank im voraus.

Gruß
Rizal
Zuletzt geändert von navsyst am 25. Februar 2008 14:32, insgesamt 1-mal geändert.

6. Dezember 2007 13:55

Da es 3 Datenbanken sind, kannst du doch auch direkt das Hauptmenü anpassen, indem du dort an geeigneter Stellt den Hinweis auf die Art der Datenbank platzierst.
Timos Trick ist ja nur erforderlich, wenn es ein solches Hauptmenü eben nicht gibt, weil die Navigation Pane verwendet wird.

6. Dezember 2007 14:02

Danke Michael für das schnelle Antwort.
Die Lösung habe ich auch schon umgesetzt.
Nachteil ist das die Hauptmenü in Hintergrund angeordnet wird, wenn weitere Form aufgerufen ist.
Mittlerweile ist die Lösung nicht mehr befriedigent. Es sollte ein kleiner Form im Vordergrund immer angezeigt werden.

6. Dezember 2007 15:00

Es ist leider nicht möglich, ein bestimmtes Fenster in Navision immer im Vordergrund zu bewahren.
Dies gilt - wie du festgestellt hast - auch für das gute alte Hauptmenü (Form 330).

Hier gibt es nur zwei Möglichkeiten, dieses Problem zu "umschiffen":
1. Arbeitet niemals mit maximierten Fenster -> die MiniForm bleibt sichtbar
oder
2. Benennt die Mandanten in den "Nicht-Live-DBs" um:
Beispiel für CRONUS AG:
Live: CRONUS AG
Test: CRONUS TEST
Entwicklung: CRONUS DEV

wenn das nicht auffällig genug ist, dann
Live: CRONUS AG
Test: TEST-Datenbank
Entwicklung: ENTWICKLUNGS-Datenbank

6. Dezember 2007 15:11

Mandant umbenennen???? :shock:
Gibt es noch andere Möglichkeit? Bitte.. :-?

Die Testdatenbanken wird Monatlich evtl. 2 mal im Monat aktualisiert. Von daher Mandant umbenennen ist nicht die gute Lösung.

Ein verrückte Ideee noch:
kann man den Farbschema von Navision Windows beeinflussen? Ihr weis was ich meine, Windows Darstellung. d.h. je nach Datenbank sollte andere Farbe für die Leiste angepasst werden.
Ist es möglich?


Timo Lässer hat geschrieben:Es ist leider nicht möglich, ein bestimmtes Fenster in Navision immer im Vordergrund zu bewahren.
Dies gilt - wie du festgestellt hast - auch für das gute alte Hauptmenü (Form 330).

Hier gibt es nur zwei Möglichkeiten, dieses Problem zu "umschiffen":
1. Arbeitet niemals mit maximierten Fenster -> die MiniForm bleibt sichtbar
oder
2. Benennt die Mandanten in den "Nicht-Live-DBs" um:
Beispiel für CRONUS AG:
Live: CRONUS AG
Test: CRONUS TEST
Entwicklung: CRONUS DEV

wenn das nicht auffällig genug ist, dann
Live: CRONUS AG
Test: TEST-Datenbank
Entwicklung: ENTWICKLUNGS-Datenbank

6. Dezember 2007 15:15

Auf die Fenster-Farbgebung (du meinst sicher die blaue Leiste oben) haben wir Navision-Programmierer überhaupt keinen Einfluss. Dieser Teil des Fensters wird von Windows gesteuert.

6. Dezember 2007 15:34

Sofern ihr nicht mit maximierten Fenstern arbeitet (was zumindest für die Programmierer eine Selbstverständlichkeit sein sollte), könntet ihr Schumi's Trick anwenden und das Hauptmenü entsprechend einfärben (z. B. roter Hintergrund für Entwicklung, grün für Test, "Standard" für Live-DB)

6. Dezember 2007 17:25

... oder den Datenbanknamen in der Hauptmenü-Form anzeigen.

Schau dir mal die Systemvariable CONTEXTURL an.

6. Dezember 2007 17:43

Vielen Dank für die Vorschläge.
Im moment lasse ich die Datenbanksinformationen in der Hauptmenü anzeigen. Aber es reicht leider nicht mehr aus. Die verwechslungsrisiko ist ziemlich gross.

2 verrückte Idee habe ich noch:
1. den blaue Knopf auf rechts oben in Navisionsfenster (Aufruf zur Hauptmenü oder F12) manipulieren. Andere Farbe definieren. Aber ich denke dass es schwierig wird. :)

2. ein ähnliche Technick wie MenuSuite schöpfen, wo dort die Datenbankinfo anzeigen lässt. Der Vorteil ist dass die Form immer offen lassen kann und die andere Fenster neben den "MenuSuite" öffnen.

Im Moment probiere ich mit der zweiten Idee.

6. Dezember 2007 18:15

Zu 1) Das Symbol ist in der fin.exe definiert und wäre somit nicht DB-abhängig, sondern Client-abhängig

Zu 2) Da Runtime 4.x eingesetzt wird, könntest du tatsächlich eine MenuSuite 90 anlegen mit einem einzigen Menü, welches entsprechend (TEST bzw. ENTWICKLUNG) benannt wird.
Natürlich könnte die Navigation Pane ausgeblendet werden, jedoch könnt ihr so auch mit maximierten Fenstern arbeiten und seht (bei eingeblendeter Navigation Pane) immer noch, auf welcher Datenbank ihr euch befindet.

Re: Datenbank identifizieren mit Hilfe einer Form

6. Dezember 2007 18:39

navsyst hat geschrieben:http://www.mibuso.com/forum/viewtopic.php?t=18718
Timo Lässer
Posted: Thu May 31, 2007 1:00 pm
We use a very small Form which we will run from Codeunit 1.
This Form appears always in the upper left corner and shows the Database-Name.
In OnFormat, we change the color of the textbox, so everybody can see, if he/she is on the "Live db", "Test DB" or in "Dev DB".


Timo, hast du dort mit Navigation Pane gemeint? Was hast du mit dem kleinen Form gemeint?

7. Dezember 2007 09:48

In dem Beitrag auf mibuso meinte ich keine Navigation Pane, sondern tatsächlich eine kleine Form, welche gerade mal so groß ist, dass eine Textbox (ohne Label) auf ihr Platz findet. (440 x 5500)
Zusätzlich das Property Borders auf None gesetzt und die X- und Y-Position auf Werte nahe 0 (bei 0 würde die Form - aufgrund der fehlenden Titelleiste - nach oben aus dem sichtbaren Bereich rutschen).
Diese Form (nennen wir sie mal "DB-Info") rufst du dann aus der Codeunit 1 - LoginStart auf.